{
  "contracts": {
    "contracts/Niki.sol:Niki": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "minter_",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "mintingAllowedAfter_",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "delegator",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "fromDelegate",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "toDelegate",
              "type": "address"
            }
          ],
          "name": "DelegateChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "delegate",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "previousBalance",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "newBalance",
              "type": "uint256"
            }
          ],
          "name": "DelegateVotesChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "minter",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "address",
              "name": "newMinter",
              "type": "address"
            }
          ],
          "name": "MinterChanged",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "DELEGATION_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "DOMAIN_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "PERMIT_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            }
          ],
          "name": "allowance",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            }
          ],
          "name": "approve",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "",
              "type": "uint32"
            }
          ],
          "name": "checkpoints",
          "outputs": [
            {
              "internalType": "uint32",
              "name": "fromBlock",
              "type": "uint32"
            },
            {
              "internalType": "uint96",
              "name": "votes",
              "type": "uint96"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "decimals",
          "outputs": [
            {
              "internalType": "uint8",
              "name": "",
              "type": "uint8"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "delegatee",
              "type": "address"
            }
          ],
          "name": "delegate",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "delegatee",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "expiry",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "name": "delegateBySig",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "delegates",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "getCurrentVotes",
          "outputs": [
            {
              "internalType": "uint96",
              "name": "",
              "type": "uint96"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "blockNumber",
              "type": "uint256"
            }
          ],
          "name": "getPriorVotes",
          "outputs": [
            {
              "internalType": "uint96",
              "name": "",
              "type": "uint96"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "minimumTimeBetweenMints",
          "outputs": [
            {
              "internalType": "uint32",
              "name": "",
              "type": "uint32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "dst",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            }
          ],
          "name": "mint",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "mintCap",
          "outputs": [
            {
              "internalType": "uint8",
              "name": "",
              "type": "uint8"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "minter",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "mintingAllowedAfter",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "name",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "nonces",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "numCheckpoints",
          "outputs": [
            {
              "internalType": "uint32",
              "name": "",
              "type": "uint32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "name": "permit",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "minter_",
              "type": "address"
            }
          ],
          "name": "setMinter",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "symbol",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "totalSupply",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "dst",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            }
          ],
          "name": "transfer",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "src",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "dst",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            }
          ],
          "name": "transferFrom",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405269152d02c7e14af68000006000553480156200001f57600080fd5b506040516200341d3803806200341d83398101604081905262000042916200016f565b428110156200006e5760405162461bcd60e51b8152600401620000659062000271565b60405180910390fd5b600080546001600160a01b0385168083526004602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000dc919062000283565b60405180910390a3600180546001600160a01b0319166001600160a01b0384811691909117918290556040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6926200013b926000929116906200024b565b60405180910390a160025550620002ea9050565b80516200015c81620002c5565b92915050565b80516200015c81620002df565b6000806000606084860312156200018557600080fd5b60006200019386866200014f565b9350506020620001a6868287016200014f565b9250506040620001b98682870162000162565b9150509250925092565b620001ce81620002b1565b82525050565b620001ce816200029c565b6000620001ee603a8362000293565b7f4e696b693a3a636f6e7374727563746f723a206d696e74696e672063616e206f81527f6e6c7920626567696e206166746572206465706c6f796d656e74000000000000602082015260400192915050565b620001ce81620002ae565b604081016200025b8285620001c3565b6200026a6020830184620001d4565b9392505050565b602080825281016200015c81620001df565b602081016200015c828462000240565b90815260200190565b60006001600160a01b0382166200015c565b90565b60006200015c8260006200015c826200029c565b620002d0816200029c565b8114620002dc57600080fd5b50565b620002d081620002ae565b61312380620002fa6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600981526020017f4e696b692053776170000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060258152602001612f05602591396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602580845291936bffffffffffffffffffffffff9091169285926105bb9288929190612f05908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603d8152602001612f2a603d9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060228152602001613089602291396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060278152602001612ede602791396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260258084526109299491909116928592909190612fe190830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600481526020017f4e494b490000000000000000000000000000000000000000000000000000000081525081565b600080610dde83604051806060016040528060268152602001612fbb602691396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060248152602001612f97602491396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526036808452611882936bffffffffffffffffffffffff90921692859291906130ab90830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9687161790559286168252908290205482516060810190935260308084526119149491909116928592909190612f6790830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806028815260200161303a60289139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b828560405180606001604052806027815260200161306260279139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060348152602001613006603491396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602f83612df5565b7f4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f207481527f6865207a65726f20616464726573730000000000000000000000000000000000602082015260400192915050565b6000612467603c83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006124c6600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124ff601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612538603a83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b6000612597601f83612df5565b7f4e696b693a3a7065726d69743a20696e76616c6964207369676e617475726500815260200192915050565b60006125d0602783612df5565b7f4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657481527f65726d696e656400000000000000000000000000000000000000000000000000602082015260400192915050565b600061262f602283612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e81527f6365000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061268e601f83612df5565b7f4e696b693a3a7065726d69743a207369676e6174757265206578706972656400815260200192915050565b60006126c7605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061274c604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b60006127d1602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612830602683612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c69642073696781527f6e61747572650000000000000000000000000000000000000000000000000000602082015260400192915050565b600061288f601d83612df5565b7f4e696b693a3a6d696e743a206578636565646564206d696e7420636170000000815260200192915050565b60006128c8602383612df5565b7f4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f7765642081527f7965740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612927601a83612df5565b7f4e696b693a3a7065726d69743a20756e617574686f72697a6564000000000000815260200192915050565b6000612960603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006129bf603e83612df5565b7f4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e74657281527f2063616e206368616e676520746865206d696e74657220616464726573730000602082015260400192915050565b6000612a1e602683612df5565b7f4e696b693a3a64656c656761746542795369673a207369676e6174757265206581527f7870697265640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612a7d602483612df5565b7f4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e2081527f6d696e7400000000000000000000000000000000000000000000000000000000602082015260400192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe826124b9565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826126ba565b600061052e8261273f565b600061052e82612953565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e8161245a565b6020808252810161052e816124f2565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e816125c3565b6020808252810161052e81612622565b6020808252810161052e81612681565b6020808252810161052e816127c4565b6020808252810161052e81612823565b6020808252810161052e81612882565b6020808252810161052e816128bb565b6020808252810161052e8161291a565b6020808252810161052e816129b2565b6020808252810161052e81612a11565b6020808252810161052e81612a70565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe4e696b693a3a6d696e743a20746f74616c537570706c79206578636565647320393620626974734e696b693a3a617070726f76653a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a7065726d69743a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734e696b693a3a6d696e743a20616d6f756e74206578636565647320393620626974734e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a7231582088bda91c6db807cce5f75c0e9047d3188be9f377966fcc58a61e7855504fd3dc6c6578706572696d656e74616cf564736f6c63430005100040",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH10 0x152D02C7E14AF6800000 PUSH1 0x0 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x341D CODESIZE SUB DUP1 PUSH3 0x341D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x42 SWAP2 PUSH3 0x16F JUMP JUMPDEST TIMESTAMP DUP2 LT ISZERO PUSH3 0x6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x65 SWAP1 PUSH3 0x271 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP4 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE DUP3 SLOAD SWAP2 MLOAD SWAP1 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 PUSH3 0xDC SWAP2 SWAP1 PUSH3 0x283 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x3B0007EB941CF645526CBB3A4FDAECDA9D28CE4843167D9263B536A1F1EDC0F6 SWAP3 PUSH3 0x13B SWAP3 PUSH1 0x0 SWAP3 SWAP2 AND SWAP1 PUSH3 0x24B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE POP PUSH3 0x2EA SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x15C DUP2 PUSH3 0x2C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x15C DUP2 PUSH3 0x2DF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x193 DUP7 DUP7 PUSH3 0x14F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH3 0x1A6 DUP7 DUP3 DUP8 ADD PUSH3 0x14F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0x1B9 DUP7 DUP3 DUP8 ADD PUSH3 0x162 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH3 0x1CE DUP2 PUSH3 0x2B1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x1CE DUP2 PUSH3 0x29C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1EE PUSH1 0x3A DUP4 PUSH3 0x293 JUMP JUMPDEST PUSH32 0x4E696B693A3A636F6E7374727563746F723A206D696E74696E672063616E206F DUP2 MSTORE PUSH32 0x6E6C7920626567696E206166746572206465706C6F796D656E74000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x1CE DUP2 PUSH3 0x2AE JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0x25B DUP3 DUP6 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x26A PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x1D4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x15C DUP2 PUSH3 0x1DF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x15C DUP3 DUP5 PUSH3 0x240 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x15C JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x15C DUP3 PUSH1 0x0 PUSH3 0x15C DUP3 PUSH3 0x29C JUMP JUMPDEST PUSH3 0x2D0 DUP2 PUSH3 0x29C JUMP JUMPDEST DUP2 EQ PUSH3 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0x2D0 DUP2 PUSH3 0x2AE JUMP JUMPDEST PUSH2 0x3123 DUP1 PUSH3 0x2FA 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 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6FCFFF45 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xB4B5EA57 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xFCA3B5AA EQ PUSH2 0x3A7 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x358 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x782D6FE1 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x31F JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x76C71CA1 EQ PUSH2 0x2DC JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x30ADF81F GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x40C10F19 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0x5C11D62F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x2A3 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x30B36CEF EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x251 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x226 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x22E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x7546172 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1F1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C6 PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E4 PUSH2 0x3F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B45 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0x40F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B6E JUMP JUMPDEST PUSH2 0x219 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x53A JUMP JUMPDEST PUSH2 0x204 PUSH2 0x23C CALLDATASIZE PUSH1 0x4 PUSH2 0x21C1 JUMP JUMPDEST PUSH2 0x551 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x6F5 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x259 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2DAC JUMP JUMPDEST PUSH2 0x279 PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0x70C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E4 PUSH2 0x289 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x9FC JUMP JUMPDEST PUSH2 0x296 PUSH2 0xA24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2D83 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA39 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA51 JUMP JUMPDEST PUSH2 0x259 PUSH2 0xA87 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2DC8 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x312 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xD6E JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0xDB9 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xDF5 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DA JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x220E JUMP JUMPDEST PUSH2 0x1128 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x155D JUMP JUMPDEST PUSH2 0x219 PUSH2 0x15A3 JUMP JUMPDEST PUSH2 0x399 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x15AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP3 SWAP2 SWAP1 PUSH2 0x2D91 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 EQ ISZERO PUSH2 0x461 JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x486 JUMP JUMPDEST PUSH2 0x483 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F05 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP1 DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x520 SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x25 DUP1 DUP5 MSTORE SWAP2 SWAP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 PUSH2 0x5BB SWAP3 DUP9 SWAP3 SWAP2 SWAP1 PUSH2 0x2F05 SWAP1 DUP4 ADD CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x607 JUMPI POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x6DB JUMPI PUSH1 0x0 PUSH2 0x631 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F2A PUSH1 0x3D SWAP2 CODECOPY PUSH2 0x1728 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP11 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x6D1 SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMPDEST PUSH2 0x6E6 DUP8 DUP8 DUP4 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x1 SWAP4 POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B24 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x766 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP LT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D33 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2C83 JUMP JUMPDEST PUSH2 0x7FD TIMESTAMP PUSH4 0x1E13380 PUSH2 0x19F2 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH2 0x827 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3089 PUSH1 0x22 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH2 0x843 PUSH2 0x83C PUSH1 0x0 SLOAD PUSH1 0x2 PUSH1 0xFF AND PUSH2 0x1A31 JUMP JUMPDEST PUSH1 0x64 PUSH2 0x1A85 JUMP JUMPDEST DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x88A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH2 0x8C5 PUSH2 0x8A7 PUSH1 0x0 SLOAD DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x19F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2EDE PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x25 DUP1 DUP5 MSTORE PUSH2 0x929 SWAP5 SWAP2 SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2FE1 SWAP1 DUP4 ADD CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x9BD SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x9F7 SWAP3 AND DUP4 PUSH2 0x1B22 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH4 0x1E13380 DUP2 JUMP JUMPDEST PUSH2 0xA36 CALLER DUP3 PUSH2 0x1D69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CD3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 PUSH2 0xB02 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x52E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND DUP4 LT PUSH2 0xBDA JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 ADD PUSH4 0xFFFFFFFF AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x52E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP4 LT ISZERO PUSH2 0xC22 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x52E JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 ADD JUMPDEST DUP2 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xD16 JUMPI PUSH1 0x2 DUP3 DUP3 SUB PUSH4 0xFFFFFFFF AND DIV DUP2 SUB PUSH2 0xC72 PUSH2 0x211E JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 DUP2 AND DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD SWAP3 DUP4 AND DUP1 DUP3 MSTORE PUSH5 0x100000000 SWAP1 SWAP4 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP8 EQ ISZERO PUSH2 0xCF1 JUMPI PUSH1 0x20 ADD MLOAD SWAP5 POP PUSH2 0x52E SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP8 GT ISZERO PUSH2 0xD08 JUMPI DUP2 SWAP4 POP PUSH2 0xD0F JUMP JUMPDEST PUSH1 0x1 DUP3 SUB SWAP3 POP JUMPDEST POP POP PUSH2 0xC48 JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E494B4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDDE DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FBB PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH2 0xDEB CALLER DUP6 DUP4 PUSH2 0x178B JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 PUSH2 0xE2D JUMPI PUSH1 0x0 PUSH2 0x6EE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB1 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE6C22F4F658CC898C94575FAE454BD0639A34409923A47D9B2BFAB0F349C8213 PUSH2 0xF18 PUSH2 0x1E1D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xF52 SWAP1 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xF6D SWAP2 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x20 ADD PUSH2 0x2BE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C57 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D13 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP10 EQ PUSH2 0x10D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CE3 JUMP JUMPDEST DUP8 TIMESTAMP GT ISZERO PUSH2 0x1111 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH2 0x111B DUP2 DUP12 PUSH2 0x1D69 JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 EQ ISZERO PUSH2 0x1179 JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x119E JUMP JUMPDEST PUSH2 0x119B DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F97 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x11AC SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE6C22F4F658CC898C94575FAE454BD0639A34409923A47D9B2BFAB0F349C8213 PUSH2 0x1213 PUSH2 0x1E1D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1227 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x124D SWAP1 PUSH2 0x2B24 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH2 0x129C SWAP4 SWAP2 SWAP3 DUP15 SWAP3 DUP15 SWAP3 DUP15 SWAP3 SWAP1 SWAP2 DUP15 SWAP2 ADD PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12C9 SWAP3 SWAP2 SWAP1 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1306 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C57 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1328 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x13A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CC3 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D43 JUMP JUMPDEST DUP9 TIMESTAMP GT ISZERO PUSH2 0x143F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CF3 JUMP JUMPDEST DUP5 PUSH1 0x3 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1547 SWAP2 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x163B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x3B0007EB941CF645526CBB3A4FDAECDA9D28CE4843167D9263B536A1F1EDC0F6 SWAP2 PUSH2 0x1687 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x2B53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH13 0x1000000000000000000000000 DUP5 LT PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO DUP3 SWAP1 PUSH2 0x1783 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP POP POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2C93 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CB3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x36 DUP1 DUP5 MSTORE PUSH2 0x1882 SWAP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 DUP6 SWAP3 SWAP2 SWAP1 PUSH2 0x30AB SWAP1 DUP4 ADD CODECOPY PUSH2 0x1728 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND OR SWAP1 SSTORE SWAP3 DUP7 AND DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x30 DUP1 DUP5 MSTORE PUSH2 0x1914 SWAP5 SWAP2 SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2F67 SWAP1 DUP4 ADD CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP6 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x19AB SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP6 DUP5 AND DUP4 MSTORE SWAP2 KECCAK256 SLOAD PUSH2 0x9F7 SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1B22 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x6EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CA3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A40 JUMPI POP PUSH1 0x0 PUSH2 0x52E JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1A4D JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D03 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6EE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x1E21 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 ADD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND SWAP1 DUP4 AND LT ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI POP PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT JUMPDEST ISZERO PUSH2 0x9F7 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO PUSH2 0x1C6F JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP2 PUSH2 0x1BC6 JUMPI PUSH1 0x0 PUSH2 0x1C36 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5D DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x303A PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x1728 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C6B DUP7 DUP5 DUP5 DUP5 PUSH2 0x1E72 JUMP JUMPDEST POP POP POP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO PUSH2 0x9F7 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP2 PUSH2 0x1CC4 JUMPI PUSH1 0x0 PUSH2 0x1D34 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D5B DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3062 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST SWAP1 POP PUSH2 0x1120 DUP6 DUP5 DUP5 DUP5 PUSH2 0x1E72 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x4 DUP5 MSTORE DUP3 DUP7 KECCAK256 SLOAD SWAP5 SWAP1 SWAP4 MSTORE DUP8 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP5 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP6 AND SWAP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP2 SWAP3 DUP6 SWAP3 SWAP2 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0x1E17 DUP3 DUP5 DUP4 PUSH2 0x1B22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x1E5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x1E68 JUMPI INVALID JUMPDEST DIV SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E96 NUMBER PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3006 PUSH1 0x34 SWAP2 CODECOPY PUSH2 0x20DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x1F0A JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 ADD DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP3 DUP3 AND SWAP2 AND EQ JUMPDEST ISZERO PUSH2 0x1FA9 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF AND PUSH5 0x100000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2085 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP5 AND DUP3 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 DUP4 MSTORE DUP8 DUP2 KECCAK256 DUP13 DUP8 AND DUP3 MSTORE DUP4 MSTORE DUP8 DUP2 KECCAK256 SWAP7 MLOAD DUP8 SLOAD SWAP5 MLOAD SWAP1 SWAP6 AND PUSH5 0x100000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF SWAP6 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP6 DUP7 AND OR SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP6 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x7 SWAP1 SWAP4 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP9 ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x20CD SWAP3 SWAP2 SWAP1 PUSH2 0x2DD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH5 0x100000000 DUP5 LT PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2EAE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2EC2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2ECB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2ED4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x217F DUP5 DUP5 PUSH2 0x2135 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21A6 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21E2 DUP7 DUP7 PUSH2 0x2135 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21F3 DUP7 DUP3 DUP8 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2204 DUP7 DUP3 DUP8 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2235 DUP11 DUP11 PUSH2 0x2135 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x2246 DUP11 DUP3 DUP12 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x2257 DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x2268 DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x2279 DUP11 DUP3 DUP12 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x228A DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x229B DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22C9 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22FF DUP10 DUP10 PUSH2 0x2135 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2310 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2321 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2332 DUP10 DUP3 DUP11 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2343 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2354 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2380 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x214B JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E03 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E0E JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x239A PUSH2 0x23BE DUP3 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x2E13 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23CE DUP3 PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x23D8 DUP2 DUP6 PUSH2 0x2DF5 JUMP JUMPDEST SWAP4 POP PUSH2 0x23E8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2E5A JUMP JUMPDEST PUSH2 0x23F1 DUP2 PUSH2 0x2E86 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2408 PUSH1 0x2F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A2063616E6E6F74207472616E7366657220746F2074 DUP2 MSTORE PUSH32 0x6865207A65726F20616464726573730000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2467 PUSH1 0x3C DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A5F7472616E73666572546F6B656E733A2063616E6E6F74207472 DUP2 MSTORE PUSH32 0x616E736665722066726F6D20746865207A65726F206164647265737300000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C6 PUSH1 0x2 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24FF PUSH1 0x1B DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2538 PUSH1 0x3A DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A5F7472616E73666572546F6B656E733A2063616E6E6F74207472 DUP2 MSTORE PUSH32 0x616E7366657220746F20746865207A65726F2061646472657373000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2597 PUSH1 0x1F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A20696E76616C6964207369676E617475726500 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D0 PUSH1 0x27 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6765745072696F72566F7465733A206E6F742079657420646574 DUP2 MSTORE PUSH32 0x65726D696E656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x262F PUSH1 0x22 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A20696E76616C6964206E6F6E DUP2 MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268E PUSH1 0x1F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A207369676E6174757265206578706972656400 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26C7 PUSH1 0x52 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x5065726D69742861646472657373206F776E65722C6164647265737320737065 DUP2 MSTORE PUSH32 0x6E6465722C75696E743235362076616C75652C75696E74323536206E6F6E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2C75696E7432353620646561646C696E65290000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x52 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x274C PUSH1 0x43 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6374290000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27D1 PUSH1 0x21 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F DUP2 MSTORE PUSH32 0x7700000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2830 PUSH1 0x26 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A20696E76616C696420736967 DUP2 MSTORE PUSH32 0x6E61747572650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288F PUSH1 0x1D DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206578636565646564206D696E7420636170000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C8 PUSH1 0x23 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206D696E74696E67206E6F7420616C6C6F77656420 DUP2 MSTORE PUSH32 0x7965740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2927 PUSH1 0x1A DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A20756E617574686F72697A6564000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2960 PUSH1 0x3A DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x44656C65676174696F6E28616464726573732064656C6567617465652C75696E DUP2 MSTORE PUSH32 0x74323536206E6F6E63652C75696E743235362065787069727929000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3A ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29BF PUSH1 0x3E DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7365744D696E7465723A206F6E6C7920746865206D696E746572 DUP2 MSTORE PUSH32 0x2063616E206368616E676520746865206D696E74657220616464726573730000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A1E PUSH1 0x26 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A207369676E61747572652065 DUP2 MSTORE PUSH32 0x7870697265640000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A7D PUSH1 0x24 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206F6E6C7920746865206D696E7465722063616E20 DUP2 MSTORE PUSH32 0x6D696E7400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E2F JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E38 JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E4F JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AFE DUP3 PUSH2 0x24B9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B0A DUP3 DUP6 PUSH2 0x23B2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x2B1A DUP3 DUP5 PUSH2 0x23B2 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x26BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x273F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2953 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2B61 DUP3 DUP6 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2B98 DUP3 DUP10 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BA5 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2BB2 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2BBF PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BCC PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BD9 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x23A9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2BF2 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BFF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2C0C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C19 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x23A9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2C30 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C19 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2C65 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BFF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2AD8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6EE DUP2 DUP5 PUSH2 0x23C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x23FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x245A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x24F2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x252B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x258A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x25C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2622 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2681 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x27C4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2823 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2882 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x291A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x29B2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2A70 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2ACF JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2D9F DUP3 DUP6 PUSH2 0x2ACF JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2AEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AD8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AE1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AEA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2DE4 DUP3 DUP6 PUSH2 0x2AE1 JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2AE1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2E16 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E5D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E17 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E03 JUMP JUMPDEST DUP2 EQ PUSH2 0xA36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E2F JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E38 JUMP INVALID 0x4E PUSH10 0x6B693A3A6D696E743A20 PUSH21 0x6F74616C537570706C792065786365656473203936 KECCAK256 PUSH3 0x697473 0x4E PUSH10 0x6B693A3A617070726F76 PUSH6 0x3A20616D6F75 PUSH15 0x742065786365656473203936206269 PUSH21 0x734E696B693A3A7472616E7366657246726F6D3A20 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x207370656E64657220616C6C6F77616E63654E69 PUSH12 0x693A3A5F7472616E73666572 SLOAD PUSH16 0x6B656E733A207472616E736665722061 PUSH14 0x6F756E74206F766572666C6F7773 0x4E PUSH10 0x6B693A3A7065726D6974 GASPRICE KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206578636565647320393620626974734E696B69 GASPRICE GASPRICE PUSH21 0x72616E736665723A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 0x4E PUSH10 0x6B693A3A6D696E743A20 PUSH21 0x72616E7366657220616D6F756E74206F766572666C PUSH16 0x77734E696B693A3A5F77726974654368 PUSH6 0x636B706F696E PUSH21 0x3A20626C6F636B206E756D62657220657863656564 PUSH20 0x20333220626974734E696B693A3A5F6D6F766556 PUSH16 0x7465733A20766F746520616D6F756E74 KECCAK256 PUSH22 0x6E646572666C6F77734E696B693A3A5F6D6F7665566F PUSH21 0x65733A20766F746520616D6F756E74206F76657266 PUSH13 0x6F77734E696B693A3A6D696E74 GASPRICE KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206578636565647320393620626974734E696B69 GASPRICE GASPRICE 0x5F PUSH21 0x72616E73666572546F6B656E733A207472616E7366 PUSH6 0x7220616D6F75 PUSH15 0x7420657863656564732062616C616E PUSH4 0x65A36562 PUSH27 0x7A7231582088BDA91C6DB807CCE5F75C0E9047D3188BE9F377966F 0xCC PC 0xA6 0x1E PUSH25 0x55504FD3DC6C6578706572696D656E74616CF564736F6C6343 STOP SDIV LT STOP BLOCKHASH ",
          "sourceMap": "91:17182:0:-;;;490:10;464:36;;3551:448;8:9:-1;5:2;;;30:1;27;20:12;5:2;3551:448:0;;;;;;;;;;;;;;;;;;;;;3674:15;3650:20;:39;;3642:110;;;;-1:-1:-1;;;3642:110:0;;;;;;;;;;;;;;;;;3792:11;;;-1:-1:-1;;;;;3765:17:0;;;;;:8;:17;;;;;;:39;;-1:-1:-1;;;;;;3765:39:0;-1:-1:-1;;;;;3765:39:0;;;;;;;;;;3850:11;;3820:42;;3765:17;;3792:11;3820:42;;;;3850:11;3820:42;;;;;;;;;;3873:6;:16;;-1:-1:-1;;;;;;3873:16:0;-1:-1:-1;;;;;3873:16:0;;;;;;;;;;;3905:33;;;;;;-1:-1:-1;;3931:6:0;;;3905:33;;;;;;;;;;3949:19;:42;-1:-1:-1;91:17182:0;;-1:-1:-1;91:17182:0;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:134;224:13;;242:33;224:13;242:33;;287:535;;;;436:2;424:9;415:7;411:23;407:32;404:2;;;452:1;449;442:12;404:2;487:1;504:64;560:7;540:9;504:64;;;494:74;;466:108;605:2;623:64;679:7;670:6;659:9;655:22;623:64;;;613:74;;584:109;724:2;742:64;798:7;789:6;778:9;774:22;742:64;;;732:74;;703:109;398:424;;;;;;829:142;920:45;959:5;920:45;;;915:3;908:58;902:69;;;978:113;1061:24;1079:5;1061:24;;1099:395;;1259:67;1323:2;1318:3;1259:67;;;1359:34;1339:55;;1428:28;1423:2;1414:12;;1407:50;1485:2;1476:12;;1245:249;-1:-1;;1245:249;1502:113;1585:24;1603:5;1585:24;;1622:340;1776:2;1761:18;;1790:79;1765:9;1842:6;1790:79;;;1880:72;1948:2;1937:9;1933:18;1924:6;1880:72;;;1747:215;;;;;;1969:407;2160:2;2174:47;;;2145:18;;2235:131;2145:18;2235:131;;2383:213;2501:2;2486:18;;2515:71;2490:9;2559:6;2515:71;;2604:163;2707:19;;;2756:4;2747:14;;2700:67;2775:91;;-1:-1;;;;;2935:54;;2837:24;2918:76;3001:72;3063:5;3046:27;3080:129;;3167:37;3198:5;3216:121;3295:37;3326:5;3295:37;;3459:117;3528:24;3546:5;3528:24;;;3521:5;3518:35;3508:2;;3567:1;3564;3557:12;3508:2;3502:74;;3583:117;3652:24;3670:5;3652:24;;3626:74;91:17182:0;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600981526020017f4e696b692053776170000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060258152602001612f05602591396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602580845291936bffffffffffffffffffffffff9091169285926105bb9288929190612f05908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603d8152602001612f2a603d9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060228152602001613089602291396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060278152602001612ede602791396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260258084526109299491909116928592909190612fe190830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600481526020017f4e494b490000000000000000000000000000000000000000000000000000000081525081565b600080610dde83604051806060016040528060268152602001612fbb602691396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060248152602001612f97602491396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526036808452611882936bffffffffffffffffffffffff90921692859291906130ab90830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9687161790559286168252908290205482516060810190935260308084526119149491909116928592909190612f6790830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806028815260200161303a60289139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b828560405180606001604052806027815260200161306260279139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060348152602001613006603491396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602f83612df5565b7f4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f207481527f6865207a65726f20616464726573730000000000000000000000000000000000602082015260400192915050565b6000612467603c83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006124c6600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124ff601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612538603a83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b6000612597601f83612df5565b7f4e696b693a3a7065726d69743a20696e76616c6964207369676e617475726500815260200192915050565b60006125d0602783612df5565b7f4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657481527f65726d696e656400000000000000000000000000000000000000000000000000602082015260400192915050565b600061262f602283612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e81527f6365000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061268e601f83612df5565b7f4e696b693a3a7065726d69743a207369676e6174757265206578706972656400815260200192915050565b60006126c7605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061274c604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b60006127d1602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612830602683612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c69642073696781527f6e61747572650000000000000000000000000000000000000000000000000000602082015260400192915050565b600061288f601d83612df5565b7f4e696b693a3a6d696e743a206578636565646564206d696e7420636170000000815260200192915050565b60006128c8602383612df5565b7f4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f7765642081527f7965740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612927601a83612df5565b7f4e696b693a3a7065726d69743a20756e617574686f72697a6564000000000000815260200192915050565b6000612960603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006129bf603e83612df5565b7f4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e74657281527f2063616e206368616e676520746865206d696e74657220616464726573730000602082015260400192915050565b6000612a1e602683612df5565b7f4e696b693a3a64656c656761746542795369673a207369676e6174757265206581527f7870697265640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612a7d602483612df5565b7f4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e2081527f6d696e7400000000000000000000000000000000000000000000000000000000602082015260400192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe826124b9565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826126ba565b600061052e8261273f565b600061052e82612953565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e8161245a565b6020808252810161052e816124f2565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e816125c3565b6020808252810161052e81612622565b6020808252810161052e81612681565b6020808252810161052e816127c4565b6020808252810161052e81612823565b6020808252810161052e81612882565b6020808252810161052e816128bb565b6020808252810161052e8161291a565b6020808252810161052e816129b2565b6020808252810161052e81612a11565b6020808252810161052e81612a70565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe4e696b693a3a6d696e743a20746f74616c537570706c79206578636565647320393620626974734e696b693a3a617070726f76653a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a7065726d69743a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734e696b693a3a6d696e743a20616d6f756e74206578636565647320393620626974734e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a7231582088bda91c6db807cce5f75c0e9047d3188be9f377966fcc58a61e7855504fd3dc6c6578706572696d656e74616cf564736f6c63430005100040",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6FCFFF45 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xB4B5EA57 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xFCA3B5AA EQ PUSH2 0x3A7 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x358 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x782D6FE1 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x317 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x31F JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x76C71CA1 EQ PUSH2 0x2DC JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x30ADF81F GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x40C10F19 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0x5C11D62F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x2A3 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x30B36CEF EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x251 JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x226 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x22E JUMPI PUSH2 0x1B9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x7546172 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1F1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C6 PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E4 PUSH2 0x3F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B45 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0x40F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B6E JUMP JUMPDEST PUSH2 0x219 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x53A JUMP JUMPDEST PUSH2 0x204 PUSH2 0x23C CALLDATASIZE PUSH1 0x4 PUSH2 0x21C1 JUMP JUMPDEST PUSH2 0x551 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x6F5 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x259 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2DAC JUMP JUMPDEST PUSH2 0x279 PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0x70C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E4 PUSH2 0x289 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x9FC JUMP JUMPDEST PUSH2 0x296 PUSH2 0xA24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2D83 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH2 0x296 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA39 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xA51 JUMP JUMPDEST PUSH2 0x259 PUSH2 0xA87 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x2F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP2 SWAP1 PUSH2 0x2DC8 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x312 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xD6E JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0xD80 JUMP JUMPDEST PUSH2 0x204 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x22AA JUMP JUMPDEST PUSH2 0xDB9 JUMP JUMPDEST PUSH2 0x2F7 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0xDF5 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DA JUMP JUMPDEST PUSH2 0xEA3 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x220E JUMP JUMPDEST PUSH2 0x1128 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x155D JUMP JUMPDEST PUSH2 0x219 PUSH2 0x15A3 JUMP JUMPDEST PUSH2 0x399 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x15AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D3 SWAP3 SWAP2 SWAP1 PUSH2 0x2D91 JUMP JUMPDEST PUSH2 0x279 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 EQ ISZERO PUSH2 0x461 JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x486 JUMP JUMPDEST PUSH2 0x483 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F05 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP1 DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x520 SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x25 DUP1 DUP5 MSTORE SWAP2 SWAP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 PUSH2 0x5BB SWAP3 DUP9 SWAP3 SWAP2 SWAP1 PUSH2 0x2F05 SWAP1 DUP4 ADD CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x607 JUMPI POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x6DB JUMPI PUSH1 0x0 PUSH2 0x631 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F2A PUSH1 0x3D SWAP2 CODECOPY PUSH2 0x1728 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP11 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x6D1 SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMPDEST PUSH2 0x6E6 DUP8 DUP8 DUP4 PUSH2 0x178B JUMP JUMPDEST PUSH1 0x1 SWAP4 POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B24 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x766 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP LT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D33 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2C83 JUMP JUMPDEST PUSH2 0x7FD TIMESTAMP PUSH4 0x1E13380 PUSH2 0x19F2 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH2 0x827 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3089 PUSH1 0x22 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH2 0x843 PUSH2 0x83C PUSH1 0x0 SLOAD PUSH1 0x2 PUSH1 0xFF AND PUSH2 0x1A31 JUMP JUMPDEST PUSH1 0x64 PUSH2 0x1A85 JUMP JUMPDEST DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x88A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH2 0x8C5 PUSH2 0x8A7 PUSH1 0x0 SLOAD DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x19F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2EDE PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x25 DUP1 DUP5 MSTORE PUSH2 0x929 SWAP5 SWAP2 SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2FE1 SWAP1 DUP4 ADD CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x9BD SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x9F7 SWAP3 AND DUP4 PUSH2 0x1B22 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH4 0x1E13380 DUP2 JUMP JUMPDEST PUSH2 0xA36 CALLER DUP3 PUSH2 0x1D69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xAC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CD3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 PUSH2 0xB02 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x52E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND DUP4 LT PUSH2 0xBDA JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 ADD PUSH4 0xFFFFFFFF AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x52E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP1 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP4 LT ISZERO PUSH2 0xC22 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x52E JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 ADD JUMPDEST DUP2 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xD16 JUMPI PUSH1 0x2 DUP3 DUP3 SUB PUSH4 0xFFFFFFFF AND DIV DUP2 SUB PUSH2 0xC72 PUSH2 0x211E JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 DUP2 AND DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD SWAP3 DUP4 AND DUP1 DUP3 MSTORE PUSH5 0x100000000 SWAP1 SWAP4 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP8 EQ ISZERO PUSH2 0xCF1 JUMPI PUSH1 0x20 ADD MLOAD SWAP5 POP PUSH2 0x52E SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP8 GT ISZERO PUSH2 0xD08 JUMPI DUP2 SWAP4 POP PUSH2 0xD0F JUMP JUMPDEST PUSH1 0x1 DUP3 SUB SWAP3 POP JUMPDEST POP POP PUSH2 0xC48 JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E494B4900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDDE DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FBB PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP PUSH2 0xDEB CALLER DUP6 DUP4 PUSH2 0x178B JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 PUSH2 0xE2D JUMPI PUSH1 0x0 PUSH2 0x6EE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB1 SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE6C22F4F658CC898C94575FAE454BD0639A34409923A47D9B2BFAB0F349C8213 PUSH2 0xF18 PUSH2 0x1E1D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF2C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xF52 SWAP1 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xF6D SWAP2 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x20 ADD PUSH2 0x2BE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C57 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D13 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP10 EQ PUSH2 0x10D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CE3 JUMP JUMPDEST DUP8 TIMESTAMP GT ISZERO PUSH2 0x1111 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH2 0x111B DUP2 DUP12 PUSH2 0x1D69 JUMP JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 EQ ISZERO PUSH2 0x1179 JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x119E JUMP JUMPDEST PUSH2 0x119B DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2F97 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x16D6 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x11AC SWAP1 PUSH2 0x2B2F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP3 MSTORE PUSH32 0x4E696B6920537761700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE6C22F4F658CC898C94575FAE454BD0639A34409923A47D9B2BFAB0F349C8213 PUSH2 0x1213 PUSH2 0x1E1D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1227 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x124D SWAP1 PUSH2 0x2B24 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH2 0x129C SWAP4 SWAP2 SWAP3 DUP15 SWAP3 DUP15 SWAP3 DUP15 SWAP3 SWAP1 SWAP2 DUP15 SWAP2 ADD PUSH2 0x2B8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12C9 SWAP3 SWAP2 SWAP1 PUSH2 0x2AF3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1306 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C57 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1328 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x13A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CC3 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D43 JUMP JUMPDEST DUP9 TIMESTAMP GT ISZERO PUSH2 0x143F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CF3 JUMP JUMPDEST DUP5 PUSH1 0x3 PUSH1 0x0 DUP15 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1547 SWAP2 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP1 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x163B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x3B0007EB941CF645526CBB3A4FDAECDA9D28CE4843167D9263B536A1F1EDC0F6 SWAP2 PUSH2 0x1687 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x2B53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH13 0x1000000000000000000000000 DUP5 LT PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO DUP3 SWAP1 PUSH2 0x1783 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP POP POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0x17D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2C93 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CB3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x36 DUP1 DUP5 MSTORE PUSH2 0x1882 SWAP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP3 DUP6 SWAP3 SWAP2 SWAP1 PUSH2 0x30AB SWAP1 DUP4 ADD CODECOPY PUSH2 0x1728 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND OR SWAP1 SSTORE SWAP3 DUP7 AND DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP4 MSTORE PUSH1 0x30 DUP1 DUP5 MSTORE PUSH2 0x1914 SWAP5 SWAP2 SWAP1 SWAP2 AND SWAP3 DUP6 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x2F67 SWAP1 DUP4 ADD CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP6 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x19AB SWAP1 DUP6 SWAP1 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP6 DUP5 AND DUP4 MSTORE SWAP2 KECCAK256 SLOAD PUSH2 0x9F7 SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1B22 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x6EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2CA3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A40 JUMPI POP PUSH1 0x0 PUSH2 0x52E JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1A4D JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x6EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP1 PUSH2 0x2D03 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6EE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x1E21 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 ADD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND SWAP1 DUP4 AND LT ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI POP PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT JUMPDEST ISZERO PUSH2 0x9F7 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO PUSH2 0x1C6F JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP2 PUSH2 0x1BC6 JUMPI PUSH1 0x0 PUSH2 0x1C36 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5D DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x303A PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x1728 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C6B DUP7 DUP5 DUP5 DUP5 PUSH2 0x1E72 JUMP JUMPDEST POP POP POP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO PUSH2 0x9F7 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP2 PUSH2 0x1CC4 JUMPI PUSH1 0x0 PUSH2 0x1D34 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D5B DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3062 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1AC7 JUMP JUMPDEST SWAP1 POP PUSH2 0x1120 DUP6 DUP5 DUP5 DUP5 PUSH2 0x1E72 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x4 DUP5 MSTORE DUP3 DUP7 KECCAK256 SLOAD SWAP5 SWAP1 SWAP4 MSTORE DUP8 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP5 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP6 AND SWAP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP2 SWAP3 DUP6 SWAP3 SWAP2 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0x1E17 DUP3 DUP5 DUP4 PUSH2 0x1B22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x1E5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x1E68 JUMPI INVALID JUMPDEST DIV SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E96 NUMBER PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3006 PUSH1 0x34 SWAP2 CODECOPY PUSH2 0x20DC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x1F0A JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 ADD DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD DUP3 DUP3 AND SWAP2 AND EQ JUMPDEST ISZERO PUSH2 0x1FA9 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 ADD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF AND PUSH5 0x100000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2085 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP5 AND DUP3 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 DUP4 MSTORE DUP8 DUP2 KECCAK256 DUP13 DUP8 AND DUP3 MSTORE DUP4 MSTORE DUP8 DUP2 KECCAK256 SWAP7 MLOAD DUP8 SLOAD SWAP5 MLOAD SWAP1 SWAP6 AND PUSH5 0x100000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF SWAP6 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP6 DUP7 AND OR SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP6 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x7 SWAP1 SWAP4 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP9 ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x20CD SWAP3 SWAP2 SWAP1 PUSH2 0x2DD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH5 0x100000000 DUP5 LT PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP2 SWAP1 PUSH2 0x2C72 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2EAE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2EC2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2ECB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x52E DUP2 PUSH2 0x2ED4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x217F DUP5 DUP5 PUSH2 0x2135 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x219A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21A6 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x21D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21E2 DUP7 DUP7 PUSH2 0x2135 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21F3 DUP7 DUP3 DUP8 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2204 DUP7 DUP3 DUP8 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2235 DUP11 DUP11 PUSH2 0x2135 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x2246 DUP11 DUP3 DUP12 ADD PUSH2 0x2135 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x2257 DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x2268 DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x2279 DUP11 DUP3 DUP12 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x228A DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x229B DUP11 DUP3 DUP12 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22C9 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22FF DUP10 DUP10 PUSH2 0x2135 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x2310 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x2321 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2332 DUP10 DUP3 DUP11 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2343 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2354 DUP10 DUP3 DUP11 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2380 DUP6 DUP6 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21B7 DUP6 DUP3 DUP7 ADD PUSH2 0x214B JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E03 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E0E JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x239A PUSH2 0x23BE DUP3 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x2E13 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23CE DUP3 PUSH2 0x2DF1 JUMP JUMPDEST PUSH2 0x23D8 DUP2 DUP6 PUSH2 0x2DF5 JUMP JUMPDEST SWAP4 POP PUSH2 0x23E8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2E5A JUMP JUMPDEST PUSH2 0x23F1 DUP2 PUSH2 0x2E86 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2408 PUSH1 0x2F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A2063616E6E6F74207472616E7366657220746F2074 DUP2 MSTORE PUSH32 0x6865207A65726F20616464726573730000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2467 PUSH1 0x3C DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A5F7472616E73666572546F6B656E733A2063616E6E6F74207472 DUP2 MSTORE PUSH32 0x616E736665722066726F6D20746865207A65726F206164647265737300000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C6 PUSH1 0x2 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24FF PUSH1 0x1B DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2538 PUSH1 0x3A DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A5F7472616E73666572546F6B656E733A2063616E6E6F74207472 DUP2 MSTORE PUSH32 0x616E7366657220746F20746865207A65726F2061646472657373000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2597 PUSH1 0x1F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A20696E76616C6964207369676E617475726500 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D0 PUSH1 0x27 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6765745072696F72566F7465733A206E6F742079657420646574 DUP2 MSTORE PUSH32 0x65726D696E656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x262F PUSH1 0x22 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A20696E76616C6964206E6F6E DUP2 MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268E PUSH1 0x1F DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A207369676E6174757265206578706972656400 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26C7 PUSH1 0x52 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x5065726D69742861646472657373206F776E65722C6164647265737320737065 DUP2 MSTORE PUSH32 0x6E6465722C75696E743235362076616C75652C75696E74323536206E6F6E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2C75696E7432353620646561646C696E65290000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x52 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x274C PUSH1 0x43 DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6374290000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27D1 PUSH1 0x21 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F DUP2 MSTORE PUSH32 0x7700000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2830 PUSH1 0x26 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A20696E76616C696420736967 DUP2 MSTORE PUSH32 0x6E61747572650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288F PUSH1 0x1D DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206578636565646564206D696E7420636170000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C8 PUSH1 0x23 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206D696E74696E67206E6F7420616C6C6F77656420 DUP2 MSTORE PUSH32 0x7965740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2927 PUSH1 0x1A DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7065726D69743A20756E617574686F72697A6564000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2960 PUSH1 0x3A DUP4 PUSH2 0x2DFE JUMP JUMPDEST PUSH32 0x44656C65676174696F6E28616464726573732064656C6567617465652C75696E DUP2 MSTORE PUSH32 0x74323536206E6F6E63652C75696E743235362065787069727929000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3A ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29BF PUSH1 0x3E DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A7365744D696E7465723A206F6E6C7920746865206D696E746572 DUP2 MSTORE PUSH32 0x2063616E206368616E676520746865206D696E74657220616464726573730000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A1E PUSH1 0x26 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A64656C656761746542795369673A207369676E61747572652065 DUP2 MSTORE PUSH32 0x7870697265640000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A7D PUSH1 0x24 DUP4 PUSH2 0x2DF5 JUMP JUMPDEST PUSH32 0x4E696B693A3A6D696E743A206F6E6C7920746865206D696E7465722063616E20 DUP2 MSTORE PUSH32 0x6D696E7400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E2F JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E38 JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E4F JUMP JUMPDEST PUSH2 0x239A DUP2 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AFE DUP3 PUSH2 0x24B9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B0A DUP3 DUP6 PUSH2 0x23B2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x2B1A DUP3 DUP5 PUSH2 0x23B2 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x26BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x273F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2953 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2B61 DUP3 DUP6 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2B98 DUP3 DUP10 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BA5 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2BB2 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2BBF PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BCC PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BD9 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x23A9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2BF2 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BFF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2391 JUMP JUMPDEST PUSH2 0x2C0C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C19 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x23A9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2C30 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2C19 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2C65 DUP3 DUP8 PUSH2 0x23A9 JUMP JUMPDEST PUSH2 0x2BFF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2AD8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6EE DUP2 DUP5 PUSH2 0x23C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x23FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x245A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x24F2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x252B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x258A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x25C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2622 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2681 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x27C4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2823 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2882 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x291A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x29B2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x52E DUP2 PUSH2 0x2A70 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2ACF JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2D9F DUP3 DUP6 PUSH2 0x2ACF JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2AEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AD8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AE1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x52E DUP3 DUP5 PUSH2 0x2AEA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x2DE4 DUP3 DUP6 PUSH2 0x2AE1 JUMP JUMPDEST PUSH2 0x6EE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2AE1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2E16 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP3 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E75 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E5D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E17 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E03 JUMP JUMPDEST DUP2 EQ PUSH2 0xA36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E13 JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E2F JUMP JUMPDEST PUSH2 0x2EB7 DUP2 PUSH2 0x2E38 JUMP INVALID 0x4E PUSH10 0x6B693A3A6D696E743A20 PUSH21 0x6F74616C537570706C792065786365656473203936 KECCAK256 PUSH3 0x697473 0x4E PUSH10 0x6B693A3A617070726F76 PUSH6 0x3A20616D6F75 PUSH15 0x742065786365656473203936206269 PUSH21 0x734E696B693A3A7472616E7366657246726F6D3A20 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x207370656E64657220616C6C6F77616E63654E69 PUSH12 0x693A3A5F7472616E73666572 SLOAD PUSH16 0x6B656E733A207472616E736665722061 PUSH14 0x6F756E74206F766572666C6F7773 0x4E PUSH10 0x6B693A3A7065726D6974 GASPRICE KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206578636565647320393620626974734E696B69 GASPRICE GASPRICE PUSH21 0x72616E736665723A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 0x4E PUSH10 0x6B693A3A6D696E743A20 PUSH21 0x72616E7366657220616D6F756E74206F766572666C PUSH16 0x77734E696B693A3A5F77726974654368 PUSH6 0x636B706F696E PUSH21 0x3A20626C6F636B206E756D62657220657863656564 PUSH20 0x20333220626974734E696B693A3A5F6D6F766556 PUSH16 0x7465733A20766F746520616D6F756E74 KECCAK256 PUSH22 0x6E646572666C6F77734E696B693A3A5F6D6F7665566F PUSH21 0x65733A20766F746520616D6F756E74206F76657266 PUSH13 0x6F77734E696B693A3A6D696E74 GASPRICE KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206578636565647320393620626974734E696B69 GASPRICE GASPRICE 0x5F PUSH21 0x72616E73666572546F6B656E733A207472616E7366 PUSH6 0x7220616D6F75 PUSH15 0x7420657863656564732062616C616E PUSH4 0x65A36562 PUSH27 0x7A7231582088BDA91C6DB807CCE5F75C0E9047D3188BE9F377966F 0xCC PC 0xA6 0x1E PUSH25 0x55504FD3DC6C6578706572696D656E74616CF564736F6C6343 STOP SDIV LT STOP BLOCKHASH ",
          "sourceMap": "91:17182:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;91:17182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;162:41;;;:::i;:::-;;;;;;;;;;;;;;;;580:21;;;:::i;:::-;;;;;;;;6510:419;;;;;;;;;:::i;:::-;;;;;;;;464:36;;;:::i;:::-;;;;;;;;1809:122;;;:::i;9596:672::-;;;;;;;;;:::i;2232:137::-;;;:::i;671:31::-;;;:::i;365:35::-;;;:::i;:::-;;;;;;;;4527:1065;;;;;;;;;:::i;:::-;;1259:45;;;;;;;;;:::i;755:61::-;;;:::i;:::-;;;;;;;;10416:102;;;;;;;;;:::i;1687:49::-;;;;;;;;;:::i;8676:108::-;;;;;;;;;:::i;911:33::-;;;:::i;12595:1218::-;;;;;;;;;:::i;:::-;;;;;;;;2450:39;;;;;;;;;:::i;264:38::-;;;:::i;9048:238::-;;;;;;;;;:::i;11942:222::-;;;;;;;;;:::i;10952:789::-;;;;;;;;;:::i;7419:1054::-;;;;;;;;;:::i;5896:136::-;;;;;;;;;:::i;2025:117::-;;;:::i;1548:70::-;;;;;;;;;:::i;:::-;;;;;;;;;4120:232;;;;;;;;;:::i;162:41::-;;;;;;;;;;;;;;;;;;;:::o;580:21::-;;;;;;:::o;6510:419::-;6578:4;6595:13;6641:2;6623:9;:21;6619:173;;;-1:-1:-1;6677:2:0;6619:173;;;6722:58;6729:9;6722:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;6713:67;;6619:173;6815:10;6804:22;;;;:10;:22;;;;;;;;;:31;;;;;;;;;;;:40;;;;;;;;;;6862:37;;6804:31;;6815:10;6862:37;;;;6804:40;;6862:37;;;;;;;;;;6917:4;6910:11;;;6510:419;;;;;:::o;464:36::-;;;;:::o;1809:122::-;1851:80;;;;;;;;;;;;;;1809:122;:::o;9596:672::-;9760:15;;;9678:4;9760:15;;;:10;:15;;;;;;;;9713:10;9760:24;;;;;;;;;;9811:58;;;;;;;;;;;;9713:10;;9760:24;;;;;9678:4;;9811:58;;9818:9;;9811:58;;;;;;;:6;:58::i;:::-;9795:74;;9897:3;9886:14;;:7;:14;;;;:48;;;;-1:-1:-1;9904:30:0;;;;;;9886:48;9882:311;;;9951:19;9973:96;9979:16;9997:6;9973:96;;;;;;;;;;;;;;;;;:5;:96::i;:::-;10084:15;;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;;;;;;;;;10145:36;10084:39;;-1:-1:-1;10084:24:0;;10145:36;;;;10084:39;;10145:36;;;;;;;;;;9882:311;;10205:33;10221:3;10226;10231:6;10205:15;:33::i;:::-;10256:4;10249:11;;;;;9596:672;;;;;;:::o;2232:137::-;2274:95;;;;;;671:31;;;;:::o;365:35::-;398:2;365:35;:::o;4527:1065::-;4612:6;;;;4598:10;:20;4590:69;;;;;;;;;;;;;;;;;;;;;;4697:19;;4678:15;:38;;4670:86;;;;;;;;;;;;;;4775:17;;;4767:77;;;;;;;;;;;;;;4907:54;4920:15;804:12;4907;:54::i;:::-;4885:19;:76;;;;5002:13;5018:55;5025:9;5018:55;;;;;;;;;;;;;;;;;:6;:55::i;:::-;5002:71;;5102:53;5115:34;5128:11;;943:1;5115:34;;:12;:34::i;:::-;5151:3;5102:12;:53::i;:::-;5092:6;:63;;;;5084:105;;;;;;;;;;;;;;5214:84;5221:33;5234:11;;5247:6;5221:33;;:12;:33::i;:::-;5214:84;;;;;;;;;;;;;;;;;:6;:84::i;:::-;5200:98;;;;:11;:98;;;5382:13;;;;;:8;:13;;;;;;;;;;5376:69;;;;;;;;;;;;;;5382:13;;;;;5397:6;;5376:69;;;;;;;;:5;:69::i;:::-;5360:13;;;;;;;:8;:13;;;;;;:85;;;;;;;;;;;;;;;;5461:33;;5360:13;;;5461:33;;;;5487:6;;5461:33;;;;;;;;;;5561:14;;;;5557:1;5561:14;;;:9;:14;;;;;;5534:50;;5561:14;5577:6;5534:14;:50::i;:::-;4527:1065;;;:::o;1259:45::-;;;;;;;;;;;;;;;:::o;755:61::-;804:12;755:61;:::o;10416:102::-;10478:32;10488:10;10500:9;10478;:32::i;:::-;10416:102;:::o;1687:49::-;;;;;;;;;;;;;;;:::o;8676:108::-;8759:17;;8735:4;8759:17;;;:8;:17;;;;;;;;;8676:108::o;911:33::-;943:1;911:33;:::o;12595:1218::-;12674:6;12715:12;12701:11;:26;12693:78;;;;;;;;;;;;;;12806:23;;;12784:19;12806:23;;;:14;:23;;;;;;;;12844:17;12840:58;;12885:1;12878:8;;;;;12840:58;12958:20;;;;;;;:11;:20;;;;;;;;:38;12979:16;;;12958:38;;;;;;;;;:48;;:63;-1:-1:-1;12954:147:0;;13045:20;;;;;;;:11;:20;;;;;;;;13066:16;;;;;13045:38;;;;;;;;:44;;;;;;;-1:-1:-1;13038:51:0;;12954:147;13162:20;;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;13158:88:0;;;13233:1;13226:8;;;;;13158:88;13258:12;13300:16;;;13327:428;13342:5;13334:13;;:5;:13;;;13327:428;;;13406:1;13389:13;;;13388:19;;;13380:27;;13449:20;;:::i;:::-;-1:-1:-1;13472:20:0;;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;13449:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13519:27;;13515:229;;;13574:8;;;;-1:-1:-1;13567:15:0;;-1:-1:-1;;;;13567:15:0;13515:229;13608:12;;:26;;;-1:-1:-1;13604:140:0;;;13663:6;13655:14;;13604:140;;;13727:1;13718:6;:10;13710:18;;13604:140;13327:428;;;;;-1:-1:-1;13772:20:0;;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;;;;;-1:-1:-1;;12595:1218:0;;;;:::o;2450:39::-;;;;;;;;;;;;;:::o;264:38::-;;;;;;;;;;;;;;;;;;;:::o;9048:238::-;9113:4;9130:13;9146:59;9153:9;9146:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;9130:75;;9216:40;9232:10;9244:3;9249:6;9216:15;:40::i;:::-;-1:-1:-1;9274:4:0;;9048:238;-1:-1:-1;;;9048:238:0:o;11942:222::-;12048:23;;;12007:6;12048:23;;;:14;:23;;;;;;;;12089:16;:67;;12155:1;12089:67;;;12108:20;;;;;;;:11;:20;;;;;;;;12129:16;;;12108:38;;;;;;;;;:44;;;;;;12082:74;11942:222;-1:-1:-1;;;11942:222:0:o;10952:789::-;11068:23;1851:80;;;;;;;;;;;;;;;;11148:4;;;;;;;;;;;;;;;;;;11132:22;11156:12;:10;:12::i;:::-;11178:4;11104:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11104:80:0;;;11094:91;;;;;;11068:117;;11196:18;2071:71;;;;;;;;;;;;;;;11227:57;;11259:9;;11270:5;;11277:6;;11227:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11227:57:0;;;11217:68;;;;;;11196:89;;11296:14;11352:15;11369:10;11323:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11323:57:0;;;11313:68;;;;;;11296:85;;11392:17;11412:26;11422:6;11430:1;11433;11436;11412:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11412:26:0;;;;;;-1:-1:-1;;11457:23:0;;;11449:74;;;;;;;;;;;;;;11551:17;;;;;;;:6;:17;;;;;:19;;;;;;;;11542:28;;11534:75;;;;;;;;;;;;;;11635:6;11628:3;:13;;11620:64;;;;;;;;;;;;;;11702:31;11712:9;11723;11702;:31::i;:::-;11695:38;;;;10952:789;;;;;;;:::o;7419:1054::-;7549:13;7595:2;7577:9;:21;7573:172;;;-1:-1:-1;7631:2:0;7573:172;;;7676:57;7683:9;7676:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;7667:66;;7573:172;7757:23;1851:80;;;;;;;;;;;;;;;;7837:4;;;;;;;;;;;;;;;;;;7821:22;7845:12;:10;:12::i;:::-;7867:4;7793:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7793:80:0;;;7783:91;;;;;;7757:117;;7885:18;2274:95;;;;;;;;;;;;;;;;7971:13;;;;;;;:6;:13;;;;;;;:15;;;;;;;;7916:81;;2274:95;;7944:5;;7951:7;;7960:9;;7971:15;;7988:8;;7916:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7916:81:0;;;7906:92;;;;;;7885:113;;8009:14;8065:15;8082:10;8036:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8036:57:0;;;8026:68;;;;;;8009:85;;8105:17;8125:26;8135:6;8143:1;8146;8149;8125:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8125:26:0;;;;;;-1:-1:-1;;8170:23:0;;;8162:67;;;;;;;;;;;;;;8261:5;8248:18;;:9;:18;;;8240:57;;;;;;;;;;;;;;8323:8;8316:3;:15;;8308:59;;;;;;;;;;;;;;8409:6;8380:10;:17;8391:5;8380:17;;;;;;;;;;;;;;;:26;8398:7;8380:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8449:7;8433:32;;8442:5;8433:32;;;8458:6;8433:32;;;;;;;;;;;;;;;7419:1054;;;;;;;;;;;;:::o;5896:136::-;5996:19;;;;5972:4;5996:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;;;5896:136::o;2025:117::-;2071:71;;;;;;1548:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4120:232::-;4198:6;;;;4184:10;:20;4176:95;;;;;;;;;;;;;;4301:6;;4287:30;;;;;;4301:6;;;;;4309:7;;4287:30;;;;;;;;;;4328:6;:16;;;;;;;;;;;;;;;4120:232::o;16579:161::-;16654:6;16692:12;16685:5;16681:9;;16673:32;;;;;;;;;;;;;;;-1:-1:-1;16730:1:0;;16579:161;-1:-1:-1;;16579:161:0:o;16944:165::-;17030:6;17062:1;17057:6;;:1;:6;;;;17065:12;17049:29;;;;;;;;;;;;;;;;-1:-1:-1;;;17096:5:0;;;16944:165::o;14204:614::-;14298:17;;;14290:90;;;;;;;;;;;;;;14399:17;;;14391:88;;;;;;;;;;;;;;14514:13;;;;;;;:8;:13;;;;;;;;;;14508:86;;;;;;;;;;;;;;14514:13;;;;;14529:6;;14508:86;;;;;;;:5;:86::i;:::-;14492:13;;;;;;;;:8;:13;;;;;;;;:102;;;;;;;;;;;14627:13;;;;;;;;;;14621:80;;;;;;;;;;;;;;14627:13;;;;;14642:6;;14621:80;;;;;;;;:5;:80::i;:::-;14605:13;;;;;;;;:8;:13;;;;;;;:96;;;;;;;;;;;;;;;;14717:26;;;;;;;;;;14736:6;;14717:26;;;;;;;;;;14771:14;;;;;;;;:9;:14;;;;;;;14787;;;;;;;;14756:54;;14771:14;;;;14787;14803:6;14756:14;:54::i;986:181:7:-;1044:7;1076:5;;;1100:6;;;;1092:46;;;;;;;;;;;;;2740:471;2798:7;3043:6;3039:47;;-1:-1:-1;3073:1:7;3066:8;;3039:47;3110:5;;;3114:1;3110;:5;:1;3134:5;;;;;:10;3126:56;;;;;;;;;;;;;4398:132;4456:7;4483:39;4487:1;4490;4483:39;;;;;;;;;;;;;;;;;:3;:39::i;16748:188:0:-;16834:6;16864:5;;;16896:12;16888:6;;;;;;;;;16880:29;;;;;;;;;;;;;;;-1:-1:-1;16927:1:0;16748:188;-1:-1:-1;;;;16748:188:0:o;14826:939::-;14931:6;14921:16;;:6;:16;;;;:30;;;;;14950:1;14941:6;:10;;;14921:30;14917:841;;;14972:20;;;;14968:382;;15032:22;;;15013:16;15032:22;;;:14;:22;;;;;;;;;15092:13;:60;;15151:1;15092:60;;;15108:19;;;;;;;:11;:19;;;;;;;;15128:13;;;15108:34;;;;;;;;;:40;;;;;;15092:60;15073:79;;15171:16;15190:68;15196:9;15207:6;15190:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;15171:87;;15277:57;15294:6;15302:9;15313;15324;15277:16;:57::i;:::-;14968:382;;;;15370:20;;;;15366:381;;15430:22;;;15411:16;15430:22;;;:14;:22;;;;;;;;;15490:13;:60;;15549:1;15490:60;;;15506:19;;;;;;;:11;:19;;;;;;;;15526:13;;;15506:34;;;;;;;;;:40;;;;;;15490:60;15471:79;;15569:16;15588:67;15594:9;15605:6;15588:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;15569:86;;15674:57;15691:6;15699:9;15710;15721;15674:16;:57::i;13821:375::-;13924:20;;;;13898:23;13924:20;;;:9;:20;;;;;;;;;;13981:8;:19;;;;;;14011:20;;;;:32;;;;;;;;;;;14061:54;;13924:20;;;;;13981:19;;;;;14011:32;;13924:20;;;14061:54;;13898:23;14061:54;14128:60;14143:15;14160:9;14171:16;14128:14;:60::i;:::-;13821:375;;;;:::o;17117:153::-;17227:9;17117:153;:::o;5018:345:7:-;5104:7;5206:12;5199:5;5191:28;;;;;;;;;;;;;;;;5230:9;5246:1;5242;:5;;;;;;;5018:345;-1:-1:-1;;;;;5018:345:7:o;15773:629:0:-;15891:18;15912:76;15919:12;15912:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;15891:97;;16018:1;16003:12;:16;;;:85;;;;-1:-1:-1;16023:22:0;;;;;;;:11;:22;;;;;;;;:65;16046:16;;;16023:40;;;;;;;;;:50;:65;;;:50;;:65;16003:85;15999:329;;;16103:22;;;;;;;:11;:22;;;;;;;;16126:16;;;16103:40;;;;;;;;;:57;;;;;;;;;;;;15999:329;;;16228:33;;;;;;;;;;;;;;;;;;;;;;;;;16189:22;;;-1:-1:-1;16189:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16274:25;;;:14;:25;;;;;;;:44;;16189:72;16302:16;;16274:44;;;;;;;;;;;;;15999:329;16364:9;16343:51;;;16375:8;16385;16343:51;;;;;;;;;;;;;;;;15773:629;;;;;:::o;16410:161::-;16485:6;16523:12;16516:5;16512:9;;16504:32;;;;;;;;;;;;;;91:17182;;;;;;;;;;-1:-1:-1;91:17182:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2101:9;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3015:9;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3455:9;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4259:9;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;4648:113;4731:24;4749:5;4731:24;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5230:39;;;;5019:255;-1:-1;;;5019:255;5628:384;;5788:67;5852:2;5847:3;5788:67;;;5888:34;5868:55;;5957:17;5952:2;5943:12;;5936:39;6003:2;5994:12;;5774:238;-1:-1;;5774:238;6021:397;;6181:67;6245:2;6240:3;6181:67;;;6281:34;6261:55;;6350:30;6345:2;6336:12;;6329:52;6409:2;6400:12;;6167:251;-1:-1;;6167:251;6427:398;;6605:84;6687:1;6682:3;6605:84;;;6722:66;6702:87;;6817:1;6808:11;;6591:234;-1:-1;;6591:234;6834:327;;6994:67;7058:2;7053:3;6994:67;;;7094:29;7074:50;;7152:2;7143:12;;6980:181;-1:-1;;6980:181;7170:395;;7330:67;7394:2;7389:3;7330:67;;;7430:34;7410:55;;7499:28;7494:2;7485:12;;7478:50;7556:2;7547:12;;7316:249;-1:-1;;7316:249;7574:331;;7734:67;7798:2;7793:3;7734:67;;;7834:33;7814:54;;7896:2;7887:12;;7720:185;-1:-1;;7720:185;7914:376;;8074:67;8138:2;8133:3;8074:67;;;8174:34;8154:55;;8243:9;8238:2;8229:12;;8222:31;8281:2;8272:12;;8060:230;-1:-1;;8060:230;8299:371;;8459:67;8523:2;8518:3;8459:67;;;8559:34;8539:55;;8628:4;8623:2;8614:12;;8607:26;8661:2;8652:12;;8445:225;-1:-1;;8445:225;8679:331;;8839:67;8903:2;8898:3;8839:67;;;8939:33;8919:54;;9001:2;8992:12;;8825:185;-1:-1;;8825:185;9019:492;;9197:85;9279:2;9274:3;9197:85;;;9315:34;9295:55;;9384:34;9379:2;9370:12;;9363:56;9453:20;9448:2;9439:12;;9432:42;9502:2;9493:12;;9183:328;-1:-1;;9183:328;9520:477;;9698:85;9780:2;9775:3;9698:85;;;9816:34;9796:55;;9885:34;9880:2;9871:12;;9864:56;9954:5;9949:2;9940:12;;9933:27;9988:2;9979:12;;9684:313;-1:-1;;9684:313;10006:370;;10166:67;10230:2;10225:3;10166:67;;;10266:34;10246:55;;10335:3;10330:2;10321:12;;10314:25;10367:2;10358:12;;10152:224;-1:-1;;10152:224;10385:375;;10545:67;10609:2;10604:3;10545:67;;;10645:34;10625:55;;10714:8;10709:2;10700:12;;10693:30;10751:2;10742:12;;10531:229;-1:-1;;10531:229;10769:329;;10929:67;10993:2;10988:3;10929:67;;;11029:31;11009:52;;11089:2;11080:12;;10915:183;-1:-1;;10915:183;11107:372;;11267:67;11331:2;11326:3;11267:67;;;11367:34;11347:55;;11436:5;11431:2;11422:12;;11415:27;11470:2;11461:12;;11253:226;-1:-1;;11253:226;11488:326;;11648:67;11712:2;11707:3;11648:67;;;11748:28;11728:49;;11805:2;11796:12;;11634:180;-1:-1;;11634:180;11823:431;;12001:85;12083:2;12078:3;12001:85;;;12119:34;12099:55;;12188:28;12183:2;12174:12;;12167:50;12245:2;12236:12;;11987:267;-1:-1;;11987:267;12263:399;;12423:67;12487:2;12482:3;12423:67;;;12523:34;12503:55;;12592:32;12587:2;12578:12;;12571:54;12653:2;12644:12;;12409:253;-1:-1;;12409:253;12671:375;;12831:67;12895:2;12890:3;12831:67;;;12931:34;12911:55;;13000:8;12995:2;12986:12;;12979:30;13037:2;13028:12;;12817:229;-1:-1;;12817:229;13055:373;;13215:67;13279:2;13274:3;13215:67;;;13315:34;13295:55;;13384:6;13379:2;13370:12;;13363:28;13419:2;13410:12;;13201:227;-1:-1;;13201:227;13556:110;13637:23;13654:5;13637:23;;13673:107;13752:22;13768:5;13752:22;;13787:124;13869:36;13899:5;13869:36;;13918:110;13999:23;14016:5;13999:23;;14035:650;;14290:148;14434:3;14290:148;;;14283:155;;14449:75;14520:3;14511:6;14449:75;;;14546:2;14541:3;14537:12;14530:19;;14560:75;14631:3;14622:6;14560:75;;;-1:-1;14657:2;14648:12;;14271:414;-1:-1;;14271:414;14692:372;;14891:148;15035:3;14891:148;;15071:372;;15270:148;15414:3;15270:148;;15450:372;;15649:148;15793:3;15649:148;;15829:213;15947:2;15932:18;;15961:71;15936:9;16005:6;15961:71;;16049:324;16195:2;16180:18;;16209:71;16184:9;16253:6;16209:71;;;16291:72;16359:2;16348:9;16344:18;16335:6;16291:72;;16380:201;16492:2;16477:18;;16506:65;16481:9;16544:6;16506:65;;16588:213;16706:2;16691:18;;16720:71;16695:9;16764:6;16720:71;;16808:771;17066:3;17051:19;;17081:71;17055:9;17125:6;17081:71;;;17163:72;17231:2;17220:9;17216:18;17207:6;17163:72;;;17246;17314:2;17303:9;17299:18;17290:6;17246:72;;;17329;17397:2;17386:9;17382:18;17373:6;17329:72;;;17412:73;17480:3;17469:9;17465:19;17456:6;17412:73;;;17496;17564:3;17553:9;17549:19;17540:6;17496:73;;;17037:542;;;;;;;;;;17586:547;17788:3;17773:19;;17803:71;17777:9;17847:6;17803:71;;;17885:72;17953:2;17942:9;17938:18;17929:6;17885:72;;;17968;18036:2;18025:9;18021:18;18012:6;17968:72;;;18051;18119:2;18108:9;18104:18;18095:6;18051:72;;;17759:374;;;;;;;;18140:547;18342:3;18327:19;;18357:71;18331:9;18401:6;18357:71;;;18439:72;18507:2;18496:9;18492:18;18483:6;18439:72;;;18522;18590:2;18579:9;18575:18;18566:6;18522:72;;;18605;18673:2;18662:9;18658:18;18649:6;18605:72;;18694:539;18892:3;18877:19;;18907:71;18881:9;18951:6;18907:71;;;18989:68;19053:2;19042:9;19038:18;19029:6;18989:68;;19240:293;19374:2;19388:47;;;19359:18;;19449:74;19359:18;19509:6;19449:74;;19848:407;20039:2;20053:47;;;20024:18;;20114:131;20024:18;20114:131;;20262:407;20453:2;20467:47;;;20438:18;;20528:131;20438:18;20528:131;;20676:407;20867:2;20881:47;;;20852:18;;20942:131;20852:18;20942:131;;21090:407;21281:2;21295:47;;;21266:18;;21356:131;21266:18;21356:131;;21504:407;21695:2;21709:47;;;21680:18;;21770:131;21680:18;21770:131;;21918:407;22109:2;22123:47;;;22094:18;;22184:131;22094:18;22184:131;;22332:407;22523:2;22537:47;;;22508:18;;22598:131;22508:18;22598:131;;22746:407;22937:2;22951:47;;;22922:18;;23012:131;22922:18;23012:131;;23160:407;23351:2;23365:47;;;23336:18;;23426:131;23336:18;23426:131;;23574:407;23765:2;23779:47;;;23750:18;;23840:131;23750:18;23840:131;;23988:407;24179:2;24193:47;;;24164:18;;24254:131;24164:18;24254:131;;24402:407;24593:2;24607:47;;;24578:18;;24668:131;24578:18;24668:131;;24816:407;25007:2;25021:47;;;24992:18;;25082:131;24992:18;25082:131;;25230:407;25421:2;25435:47;;;25406:18;;25496:131;25406:18;25496:131;;25644:407;25835:2;25849:47;;;25820:18;;25910:131;25820:18;25910:131;;26058:407;26249:2;26263:47;;;26234:18;;26324:131;26234:18;26324:131;;26692:209;26808:2;26793:18;;26822:69;26797:9;26864:6;26822:69;;26908:316;27050:2;27035:18;;27064:69;27039:9;27106:6;27064:69;;;27144:70;27210:2;27199:9;27195:18;27186:6;27144:70;;27231:205;27345:2;27330:18;;27359:67;27334:9;27399:6;27359:67;;27443:211;27560:2;27545:18;;27574:70;27549:9;27617:6;27574:70;;27661:209;27777:2;27762:18;;27791:69;27766:9;27833:6;27791:69;;27877:320;28021:2;28006:18;;28035:70;28010:9;28078:6;28035:70;;;28116:71;28183:2;28172:9;28168:18;28159:6;28116:71;;28204:118;28288:12;;28259:63;28459:163;28562:19;;;28611:4;28602:14;;28555:67;28631:145;28767:3;28745:31;-1:-1;28745:31;28784:91;;28846:24;28864:5;28846:24;;28882:85;28948:13;28941:21;;28924:43;28974:72;29036:5;29019:27;29053:121;29126:42;29115:54;;29098:76;29260:88;29332:10;29321:22;;29304:44;29355:81;29426:4;29415:16;;29398:38;29443:104;29515:26;29504:38;;29487:60;29554:106;;29632:23;29649:5;29632:23;;29668:268;29733:1;29740:101;29754:6;29751:1;29748:13;29740:101;;;29821:11;;;29815:18;29802:11;;;29795:39;29776:2;29769:10;29740:101;;;29856:6;29853:1;29850:13;29847:2;;;-1:-1;;29921:1;29903:16;;29896:27;29717:219;30025:97;30113:2;30093:14;30109:7;30089:28;;30073:49;30130:117;30199:24;30217:5;30199:24;;;30192:5;30189:35;30179:2;;30238:1;30235;30228:12;30254:117;30323:24;30341:5;30323:24;;30502:115;30570:23;30587:5;30570:23;;30624:113;30691:22;30707:5;30691:22;"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"mintingAllowedAfter_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newMinter\",\"type\":\"address\"}],\"name\":\"MinterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getCurrentVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumTimeBetweenMints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintCap\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintingAllowedAfter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"params\":{\"account\":\"The address of the account holding the funds\",\"spender\":\"The address of the account spending the funds\"},\"return\":\"The number of tokens approved\"},\"approve(address,uint256)\":{\"details\":\"This will overwrite the approval amount for `spender` and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\",\"params\":{\"rawAmount\":\"The number of tokens that are approved (2^256-1 means infinite)\",\"spender\":\"The address of the account which may transfer tokens\"},\"return\":\"Whether or not the approval succeeded\"},\"balanceOf(address)\":{\"params\":{\"account\":\"The address of the account to get the balance of\"},\"return\":\"The number of tokens held\"},\"constructor\":{\"params\":{\"account\":\"The initial account to grant all the tokens\",\"minter_\":\"The account with minting ability\",\"mintingAllowedAfter_\":\"The timestamp after which minting may occur\"}},\"delegate(address)\":{\"params\":{\"delegatee\":\"The address to delegate votes to\"}},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"delegatee\":\"The address to delegate votes to\",\"expiry\":\"The time at which to expire the signature\",\"nonce\":\"The contract state required to match the signature\",\"r\":\"Half of the ECDSA signature pair\",\"s\":\"Half of the ECDSA signature pair\",\"v\":\"The recovery byte of the signature\"}},\"getCurrentVotes(address)\":{\"params\":{\"account\":\"The address to get votes balance\"},\"return\":\"The number of current votes for `account`\"},\"getPriorVotes(address,uint256)\":{\"details\":\"Block number must be a finalized block or else this function will revert to prevent misinformation.\",\"params\":{\"account\":\"The address of the account to check\",\"blockNumber\":\"The block number to get the vote balance at\"},\"return\":\"The number of votes the account had as of the given block\"},\"mint(address,uint256)\":{\"params\":{\"dst\":\"The address of the destination account\",\"rawAmount\":\"The number of tokens to be minted\"}},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The time at which to expire the signature\",\"owner\":\"The address to approve from\",\"r\":\"Half of the ECDSA signature pair\",\"rawAmount\":\"The number of tokens that are approved (2^256-1 means infinite)\",\"s\":\"Half of the ECDSA signature pair\",\"spender\":\"The address to be approved\",\"v\":\"The recovery byte of the signature\"}},\"setMinter(address)\":{\"params\":{\"minter_\":\"The address of the new minter\"}},\"transfer(address,uint256)\":{\"params\":{\"dst\":\"The address of the destination account\",\"rawAmount\":\"The number of tokens to transfer\"},\"return\":\"Whether or not the transfer succeeded\"},\"transferFrom(address,address,uint256)\":{\"params\":{\"dst\":\"The address of the destination account\",\"rawAmount\":\"The number of tokens to transfer\",\"src\":\"The address of the source account\"},\"return\":\"Whether or not the transfer succeeded\"}}},\"userdoc\":{\"methods\":{\"allowance(address,address)\":{\"notice\":\"Get the number of tokens `spender` is approved to spend on behalf of `account`\"},\"approve(address,uint256)\":{\"notice\":\"Approve `spender` to transfer up to `amount` from `src`\"},\"balanceOf(address)\":{\"notice\":\"Get the number of tokens held by the `account`\"},\"constructor\":\"Construct a new Niki token\",\"delegate(address)\":{\"notice\":\"Delegate votes from `msg.sender` to `delegatee`\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Delegates votes from signatory to `delegatee`\"},\"getCurrentVotes(address)\":{\"notice\":\"Gets the current votes balance for `account`\"},\"getPriorVotes(address,uint256)\":{\"notice\":\"Determine the prior number of votes for an account as of a block number\"},\"mint(address,uint256)\":{\"notice\":\"Mint new tokens\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Triggers an approval from owner to spends\"},\"setMinter(address)\":{\"notice\":\"Change the minter address\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer `amount` tokens from `msg.sender` to `dst`\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer `amount` tokens from `src` to `dst`\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/Niki.sol\":\"Niki\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/Niki.sol\":{\"keccak256\":\"0xff83cbfeb1732c705fe2cd1f74b9f1044b5334d2034f3b466cf55ec3f429be88\",\"urls\":[\"bzz-raw://2f98205480e463cf24ca20819045f8876d23a65c8a8d4289a9f3ae9062faf2d3\",\"dweb:/ipfs/QmZnxt8wxoby6rFkPYbzNPHedPx2j4YimXkEHAvzki6vA9\"]},\"contracts/SafeMath.sol\":{\"keccak256\":\"0x8bd6fa5b7f9108ac202f2dc30e4e3edfa47fc26be4db598b9d42384177e880c0\",\"urls\":[\"bzz-raw://b5fa027da291fba188ae268e43c1c7a7ef2b55e3ab465f3a8b28c569cc159e5c\",\"dweb:/ipfs/QmdRvqojHRMGGqZ9Ute2gLE62i2s6Hd26XC4Jxi43P4om9\"]}},\"version\":1}",
      "bytecode": "608060405269152d02c7e14af68000006000553480156200001f57600080fd5b506040516200341d3803806200341d83398101604081905262000042916200016f565b428110156200006e5760405162461bcd60e51b8152600401620000659062000271565b60405180910390fd5b600080546001600160a01b0385168083526004602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000dc919062000283565b60405180910390a3600180546001600160a01b0319166001600160a01b0384811691909117918290556040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6926200013b926000929116906200024b565b60405180910390a160025550620002ea9050565b80516200015c81620002c5565b92915050565b80516200015c81620002df565b6000806000606084860312156200018557600080fd5b60006200019386866200014f565b9350506020620001a6868287016200014f565b9250506040620001b98682870162000162565b9150509250925092565b620001ce81620002b1565b82525050565b620001ce816200029c565b6000620001ee603a8362000293565b7f4e696b693a3a636f6e7374727563746f723a206d696e74696e672063616e206f81527f6e6c7920626567696e206166746572206465706c6f796d656e74000000000000602082015260400192915050565b620001ce81620002ae565b604081016200025b8285620001c3565b6200026a6020830184620001d4565b9392505050565b602080825281016200015c81620001df565b602081016200015c828462000240565b90815260200190565b60006001600160a01b0382166200015c565b90565b60006200015c8260006200015c826200029c565b620002d0816200029c565b8114620002dc57600080fd5b50565b620002d081620002ae565b61312380620002fa6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600981526020017f4e696b692053776170000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060258152602001612f05602591396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602580845291936bffffffffffffffffffffffff9091169285926105bb9288929190612f05908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603d8152602001612f2a603d9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060228152602001613089602291396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060278152602001612ede602791396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260258084526109299491909116928592909190612fe190830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600481526020017f4e494b490000000000000000000000000000000000000000000000000000000081525081565b600080610dde83604051806060016040528060268152602001612fbb602691396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060248152602001612f97602491396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526036808452611882936bffffffffffffffffffffffff90921692859291906130ab90830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9687161790559286168252908290205482516060810190935260308084526119149491909116928592909190612f6790830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806028815260200161303a60289139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b828560405180606001604052806027815260200161306260279139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060348152602001613006603491396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602f83612df5565b7f4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f207481527f6865207a65726f20616464726573730000000000000000000000000000000000602082015260400192915050565b6000612467603c83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006124c6600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124ff601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612538603a83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b6000612597601f83612df5565b7f4e696b693a3a7065726d69743a20696e76616c6964207369676e617475726500815260200192915050565b60006125d0602783612df5565b7f4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657481527f65726d696e656400000000000000000000000000000000000000000000000000602082015260400192915050565b600061262f602283612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e81527f6365000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061268e601f83612df5565b7f4e696b693a3a7065726d69743a207369676e6174757265206578706972656400815260200192915050565b60006126c7605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061274c604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b60006127d1602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612830602683612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c69642073696781527f6e61747572650000000000000000000000000000000000000000000000000000602082015260400192915050565b600061288f601d83612df5565b7f4e696b693a3a6d696e743a206578636565646564206d696e7420636170000000815260200192915050565b60006128c8602383612df5565b7f4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f7765642081527f7965740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612927601a83612df5565b7f4e696b693a3a7065726d69743a20756e617574686f72697a6564000000000000815260200192915050565b6000612960603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006129bf603e83612df5565b7f4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e74657281527f2063616e206368616e676520746865206d696e74657220616464726573730000602082015260400192915050565b6000612a1e602683612df5565b7f4e696b693a3a64656c656761746542795369673a207369676e6174757265206581527f7870697265640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612a7d602483612df5565b7f4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e2081527f6d696e7400000000000000000000000000000000000000000000000000000000602082015260400192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe826124b9565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826126ba565b600061052e8261273f565b600061052e82612953565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e8161245a565b6020808252810161052e816124f2565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e816125c3565b6020808252810161052e81612622565b6020808252810161052e81612681565b6020808252810161052e816127c4565b6020808252810161052e81612823565b6020808252810161052e81612882565b6020808252810161052e816128bb565b6020808252810161052e8161291a565b6020808252810161052e816129b2565b6020808252810161052e81612a11565b6020808252810161052e81612a70565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe4e696b693a3a6d696e743a20746f74616c537570706c79206578636565647320393620626974734e696b693a3a617070726f76653a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a7065726d69743a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734e696b693a3a6d696e743a20616d6f756e74206578636565647320393620626974734e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a7231582088bda91c6db807cce5f75c0e9047d3188be9f377966fcc58a61e7855504fd3dc6c6578706572696d656e74616cf564736f6c63430005100040",
      "bin": "608060405269152d02c7e14af68000006000553480156200001f57600080fd5b506040516200341d3803806200341d83398101604081905262000042916200016f565b428110156200006e5760405162461bcd60e51b8152600401620000659062000271565b60405180910390fd5b600080546001600160a01b0385168083526004602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000dc919062000283565b60405180910390a3600180546001600160a01b0319166001600160a01b0384811691909117918290556040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6926200013b926000929116906200024b565b60405180910390a160025550620002ea9050565b80516200015c81620002c5565b92915050565b80516200015c81620002df565b6000806000606084860312156200018557600080fd5b60006200019386866200014f565b9350506020620001a6868287016200014f565b9250506040620001b98682870162000162565b9150509250925092565b620001ce81620002b1565b82525050565b620001ce816200029c565b6000620001ee603a8362000293565b7f4e696b693a3a636f6e7374727563746f723a206d696e74696e672063616e206f81527f6e6c7920626567696e206166746572206465706c6f796d656e74000000000000602082015260400192915050565b620001ce81620002ae565b604081016200025b8285620001c3565b6200026a6020830184620001d4565b9392505050565b602080825281016200015c81620001df565b602081016200015c828462000240565b90815260200190565b60006001600160a01b0382166200015c565b90565b60006200015c8260006200015c826200029c565b620002d0816200029c565b8114620002dc57600080fd5b50565b620002d081620002ae565b61312380620002fa6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600981526020017f4e696b692053776170000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060258152602001612f05602591396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602580845291936bffffffffffffffffffffffff9091169285926105bb9288929190612f05908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603d8152602001612f2a603d9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060228152602001613089602291396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060278152602001612ede602791396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260258084526109299491909116928592909190612fe190830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600481526020017f4e494b490000000000000000000000000000000000000000000000000000000081525081565b600080610dde83604051806060016040528060268152602001612fbb602691396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060248152602001612f97602491396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526036808452611882936bffffffffffffffffffffffff90921692859291906130ab90830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9687161790559286168252908290205482516060810190935260308084526119149491909116928592909190612f6790830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806028815260200161303a60289139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b828560405180606001604052806027815260200161306260279139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060348152602001613006603491396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602f83612df5565b7f4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f207481527f6865207a65726f20616464726573730000000000000000000000000000000000602082015260400192915050565b6000612467603c83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006124c6600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124ff601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612538603a83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b6000612597601f83612df5565b7f4e696b693a3a7065726d69743a20696e76616c6964207369676e617475726500815260200192915050565b60006125d0602783612df5565b7f4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657481527f65726d696e656400000000000000000000000000000000000000000000000000602082015260400192915050565b600061262f602283612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e81527f6365000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061268e601f83612df5565b7f4e696b693a3a7065726d69743a207369676e6174757265206578706972656400815260200192915050565b60006126c7605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061274c604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b60006127d1602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612830602683612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c69642073696781527f6e61747572650000000000000000000000000000000000000000000000000000602082015260400192915050565b600061288f601d83612df5565b7f4e696b693a3a6d696e743a206578636565646564206d696e7420636170000000815260200192915050565b60006128c8602383612df5565b7f4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f7765642081527f7965740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612927601a83612df5565b7f4e696b693a3a7065726d69743a20756e617574686f72697a6564000000000000815260200192915050565b6000612960603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006129bf603e83612df5565b7f4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e74657281527f2063616e206368616e676520746865206d696e74657220616464726573730000602082015260400192915050565b6000612a1e602683612df5565b7f4e696b693a3a64656c656761746542795369673a207369676e6174757265206581527f7870697265640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612a7d602483612df5565b7f4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e2081527f6d696e7400000000000000000000000000000000000000000000000000000000602082015260400192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe826124b9565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826126ba565b600061052e8261273f565b600061052e82612953565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e8161245a565b6020808252810161052e816124f2565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e816125c3565b6020808252810161052e81612622565b6020808252810161052e81612681565b6020808252810161052e816127c4565b6020808252810161052e81612823565b6020808252810161052e81612882565b6020808252810161052e816128bb565b6020808252810161052e8161291a565b6020808252810161052e816129b2565b6020808252810161052e81612a11565b6020808252810161052e81612a70565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe4e696b693a3a6d696e743a20746f74616c537570706c79206578636565647320393620626974734e696b693a3a617070726f76653a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a7065726d69743a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734e696b693a3a6d696e743a20616d6f756e74206578636565647320393620626974734e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a7231582088bda91c6db807cce5f75c0e9047d3188be9f377966fcc58a61e7855504fd3dc6c6578706572696d656e74616cf564736f6c63430005100040",
      "bin-runtime": "608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600981526020017f4e696b692053776170000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060258152602001612f05602591396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602580845291936bffffffffffffffffffffffff9091169285926105bb9288929190612f05908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603d8152602001612f2a603d9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060228152602001613089602291396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060278152602001612ede602791396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260258084526109299491909116928592909190612fe190830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600481526020017f4e494b490000000000000000000000000000000000000000000000000000000081525081565b600080610dde83604051806060016040528060268152602001612fbb602691396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060248152602001612f97602491396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600982527f4e696b69205377617000000000000000000000000000000000000000000000006020909201919091527fe6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526036808452611882936bffffffffffffffffffffffff90921692859291906130ab90830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9687161790559286168252908290205482516060810190935260308084526119149491909116928592909190612f6790830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806028815260200161303a60289139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b828560405180606001604052806027815260200161306260279139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060348152602001613006603491396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602f83612df5565b7f4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f207481527f6865207a65726f20616464726573730000000000000000000000000000000000602082015260400192915050565b6000612467603c83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006124c6600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124ff601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612538603a83612df5565b7f4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b6000612597601f83612df5565b7f4e696b693a3a7065726d69743a20696e76616c6964207369676e617475726500815260200192915050565b60006125d0602783612df5565b7f4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657481527f65726d696e656400000000000000000000000000000000000000000000000000602082015260400192915050565b600061262f602283612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e81527f6365000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061268e601f83612df5565b7f4e696b693a3a7065726d69743a207369676e6174757265206578706972656400815260200192915050565b60006126c7605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061274c604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b60006127d1602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612830602683612df5565b7f4e696b693a3a64656c656761746542795369673a20696e76616c69642073696781527f6e61747572650000000000000000000000000000000000000000000000000000602082015260400192915050565b600061288f601d83612df5565b7f4e696b693a3a6d696e743a206578636565646564206d696e7420636170000000815260200192915050565b60006128c8602383612df5565b7f4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f7765642081527f7965740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612927601a83612df5565b7f4e696b693a3a7065726d69743a20756e617574686f72697a6564000000000000815260200192915050565b6000612960603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b60006129bf603e83612df5565b7f4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e74657281527f2063616e206368616e676520746865206d696e74657220616464726573730000602082015260400192915050565b6000612a1e602683612df5565b7f4e696b693a3a64656c656761746542795369673a207369676e6174757265206581527f7870697265640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612a7d602483612df5565b7f4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e2081527f6d696e7400000000000000000000000000000000000000000000000000000000602082015260400192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe826124b9565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826126ba565b600061052e8261273f565b600061052e82612953565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e8161245a565b6020808252810161052e816124f2565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e816125c3565b6020808252810161052e81612622565b6020808252810161052e81612681565b6020808252810161052e816127c4565b6020808252810161052e81612823565b6020808252810161052e81612882565b6020808252810161052e816128bb565b6020808252810161052e8161291a565b6020808252810161052e816129b2565b6020808252810161052e81612a11565b6020808252810161052e81612a70565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe4e696b693a3a6d696e743a20746f74616c537570706c79206578636565647320393620626974734e696b693a3a617070726f76653a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a7065726d69743a20616d6f756e74206578636565647320393620626974734e696b693a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77734e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734e696b693a3a6d696e743a20616d6f756e74206578636565647320393620626974734e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a365627a7a7231582088bda91c6db807cce5f75c0e9047d3188be9f377966fcc58a61e7855504fd3dc6c6578706572696d656e74616cf564736f6c63430005100040",
      "srcmap": "91:17182:0:-;;;490:10;464:36;;3551:448;8:9:-1;5:2;;;30:1;27;20:12;5:2;3551:448:0;;;;;;;;;;;;;;;;;;;;;3674:15;3650:20;:39;;3642:110;;;;-1:-1:-1;;;3642:110:0;;;;;;;;;;;;;;;;;3792:11;;;-1:-1:-1;;;;;3765:17:0;;;;;:8;:17;;;;;;:39;;-1:-1:-1;;;;;;3765:39:0;-1:-1:-1;;;;;3765:39:0;;;;;;;;;;3850:11;;3820:42;;3765:17;;3792:11;3820:42;;;;3850:11;3820:42;;;;;;;;;;3873:6;:16;;-1:-1:-1;;;;;;3873:16:0;-1:-1:-1;;;;;3873:16:0;;;;;;;;;;;3905:33;;;;;;-1:-1:-1;;3931:6:0;;;3905:33;;;;;;;;;;3949:19;:42;-1:-1:-1;91:17182:0;;-1:-1:-1;91:17182:0;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:134;224:13;;242:33;224:13;242:33;;287:535;;;;436:2;424:9;415:7;411:23;407:32;404:2;;;452:1;449;442:12;404:2;487:1;504:64;560:7;540:9;504:64;;;494:74;;466:108;605:2;623:64;679:7;670:6;659:9;655:22;623:64;;;613:74;;584:109;724:2;742:64;798:7;789:6;778:9;774:22;742:64;;;732:74;;703:109;398:424;;;;;;829:142;920:45;959:5;920:45;;;915:3;908:58;902:69;;;978:113;1061:24;1079:5;1061:24;;1099:395;;1259:67;1323:2;1318:3;1259:67;;;1359:34;1339:55;;1428:28;1423:2;1414:12;;1407:50;1485:2;1476:12;;1245:249;-1:-1;;1245:249;1502:113;1585:24;1603:5;1585:24;;1622:340;1776:2;1761:18;;1790:79;1765:9;1842:6;1790:79;;;1880:72;1948:2;1937:9;1933:18;1924:6;1880:72;;;1747:215;;;;;;1969:407;2160:2;2174:47;;;2145:18;;2235:131;2145:18;2235:131;;2383:213;2501:2;2486:18;;2515:71;2490:9;2559:6;2515:71;;2604:163;2707:19;;;2756:4;2747:14;;2700:67;2775:91;;-1:-1;;;;;2935:54;;2837:24;2918:76;3001:72;3063:5;3046:27;3080:129;;3167:37;3198:5;3216:121;3295:37;3326:5;3295:37;;3459:117;3528:24;3546:5;3528:24;;;3521:5;3518:35;3508:2;;3567:1;3564;3557:12;3508:2;3502:74;;3583:117;3652:24;3670:5;3652:24;;3626:74;91:17182:0;;;;;;",
      "srcmap-runtime": "91:17182:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;91:17182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;162:41;;;:::i;:::-;;;;;;;;;;;;;;;;580:21;;;:::i;:::-;;;;;;;;6510:419;;;;;;;;;:::i;:::-;;;;;;;;464:36;;;:::i;:::-;;;;;;;;1809:122;;;:::i;9596:672::-;;;;;;;;;:::i;2232:137::-;;;:::i;671:31::-;;;:::i;365:35::-;;;:::i;:::-;;;;;;;;4527:1065;;;;;;;;;:::i;:::-;;1259:45;;;;;;;;;:::i;755:61::-;;;:::i;:::-;;;;;;;;10416:102;;;;;;;;;:::i;1687:49::-;;;;;;;;;:::i;8676:108::-;;;;;;;;;:::i;911:33::-;;;:::i;12595:1218::-;;;;;;;;;:::i;:::-;;;;;;;;2450:39;;;;;;;;;:::i;264:38::-;;;:::i;9048:238::-;;;;;;;;;:::i;11942:222::-;;;;;;;;;:::i;10952:789::-;;;;;;;;;:::i;7419:1054::-;;;;;;;;;:::i;5896:136::-;;;;;;;;;:::i;2025:117::-;;;:::i;1548:70::-;;;;;;;;;:::i;:::-;;;;;;;;;4120:232;;;;;;;;;:::i;162:41::-;;;;;;;;;;;;;;;;;;;:::o;580:21::-;;;;;;:::o;6510:419::-;6578:4;6595:13;6641:2;6623:9;:21;6619:173;;;-1:-1:-1;6677:2:0;6619:173;;;6722:58;6729:9;6722:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;6713:67;;6619:173;6815:10;6804:22;;;;:10;:22;;;;;;;;;:31;;;;;;;;;;;:40;;;;;;;;;;6862:37;;6804:31;;6815:10;6862:37;;;;6804:40;;6862:37;;;;;;;;;;6917:4;6910:11;;;6510:419;;;;;:::o;464:36::-;;;;:::o;1809:122::-;1851:80;;;;;;;;;;;;;;1809:122;:::o;9596:672::-;9760:15;;;9678:4;9760:15;;;:10;:15;;;;;;;;9713:10;9760:24;;;;;;;;;;9811:58;;;;;;;;;;;;9713:10;;9760:24;;;;;9678:4;;9811:58;;9818:9;;9811:58;;;;;;;:6;:58::i;:::-;9795:74;;9897:3;9886:14;;:7;:14;;;;:48;;;;-1:-1:-1;9904:30:0;;;;;;9886:48;9882:311;;;9951:19;9973:96;9979:16;9997:6;9973:96;;;;;;;;;;;;;;;;;:5;:96::i;:::-;10084:15;;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;;;;;;;;;10145:36;10084:39;;-1:-1:-1;10084:24:0;;10145:36;;;;10084:39;;10145:36;;;;;;;;;;9882:311;;10205:33;10221:3;10226;10231:6;10205:15;:33::i;:::-;10256:4;10249:11;;;;;9596:672;;;;;;:::o;2232:137::-;2274:95;;;;;;671:31;;;;:::o;365:35::-;398:2;365:35;:::o;4527:1065::-;4612:6;;;;4598:10;:20;4590:69;;;;;;;;;;;;;;;;;;;;;;4697:19;;4678:15;:38;;4670:86;;;;;;;;;;;;;;4775:17;;;4767:77;;;;;;;;;;;;;;4907:54;4920:15;804:12;4907;:54::i;:::-;4885:19;:76;;;;5002:13;5018:55;5025:9;5018:55;;;;;;;;;;;;;;;;;:6;:55::i;:::-;5002:71;;5102:53;5115:34;5128:11;;943:1;5115:34;;:12;:34::i;:::-;5151:3;5102:12;:53::i;:::-;5092:6;:63;;;;5084:105;;;;;;;;;;;;;;5214:84;5221:33;5234:11;;5247:6;5221:33;;:12;:33::i;:::-;5214:84;;;;;;;;;;;;;;;;;:6;:84::i;:::-;5200:98;;;;:11;:98;;;5382:13;;;;;:8;:13;;;;;;;;;;5376:69;;;;;;;;;;;;;;5382:13;;;;;5397:6;;5376:69;;;;;;;;:5;:69::i;:::-;5360:13;;;;;;;:8;:13;;;;;;:85;;;;;;;;;;;;;;;;5461:33;;5360:13;;;5461:33;;;;5487:6;;5461:33;;;;;;;;;;5561:14;;;;5557:1;5561:14;;;:9;:14;;;;;;5534:50;;5561:14;5577:6;5534:14;:50::i;:::-;4527:1065;;;:::o;1259:45::-;;;;;;;;;;;;;;;:::o;755:61::-;804:12;755:61;:::o;10416:102::-;10478:32;10488:10;10500:9;10478;:32::i;:::-;10416:102;:::o;1687:49::-;;;;;;;;;;;;;;;:::o;8676:108::-;8759:17;;8735:4;8759:17;;;:8;:17;;;;;;;;;8676:108::o;911:33::-;943:1;911:33;:::o;12595:1218::-;12674:6;12715:12;12701:11;:26;12693:78;;;;;;;;;;;;;;12806:23;;;12784:19;12806:23;;;:14;:23;;;;;;;;12844:17;12840:58;;12885:1;12878:8;;;;;12840:58;12958:20;;;;;;;:11;:20;;;;;;;;:38;12979:16;;;12958:38;;;;;;;;;:48;;:63;-1:-1:-1;12954:147:0;;13045:20;;;;;;;:11;:20;;;;;;;;13066:16;;;;;13045:38;;;;;;;;:44;;;;;;;-1:-1:-1;13038:51:0;;12954:147;13162:20;;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;13158:88:0;;;13233:1;13226:8;;;;;13158:88;13258:12;13300:16;;;13327:428;13342:5;13334:13;;:5;:13;;;13327:428;;;13406:1;13389:13;;;13388:19;;;13380:27;;13449:20;;:::i;:::-;-1:-1:-1;13472:20:0;;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;13449:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13519:27;;13515:229;;;13574:8;;;;-1:-1:-1;13567:15:0;;-1:-1:-1;;;;13567:15:0;13515:229;13608:12;;:26;;;-1:-1:-1;13604:140:0;;;13663:6;13655:14;;13604:140;;;13727:1;13718:6;:10;13710:18;;13604:140;13327:428;;;;;-1:-1:-1;13772:20:0;;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;;;;;-1:-1:-1;;12595:1218:0;;;;:::o;2450:39::-;;;;;;;;;;;;;:::o;264:38::-;;;;;;;;;;;;;;;;;;;:::o;9048:238::-;9113:4;9130:13;9146:59;9153:9;9146:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;9130:75;;9216:40;9232:10;9244:3;9249:6;9216:15;:40::i;:::-;-1:-1:-1;9274:4:0;;9048:238;-1:-1:-1;;;9048:238:0:o;11942:222::-;12048:23;;;12007:6;12048:23;;;:14;:23;;;;;;;;12089:16;:67;;12155:1;12089:67;;;12108:20;;;;;;;:11;:20;;;;;;;;12129:16;;;12108:38;;;;;;;;;:44;;;;;;12082:74;11942:222;-1:-1:-1;;;11942:222:0:o;10952:789::-;11068:23;1851:80;;;;;;;;;;;;;;;;11148:4;;;;;;;;;;;;;;;;;;11132:22;11156:12;:10;:12::i;:::-;11178:4;11104:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11104:80:0;;;11094:91;;;;;;11068:117;;11196:18;2071:71;;;;;;;;;;;;;;;11227:57;;11259:9;;11270:5;;11277:6;;11227:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11227:57:0;;;11217:68;;;;;;11196:89;;11296:14;11352:15;11369:10;11323:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11323:57:0;;;11313:68;;;;;;11296:85;;11392:17;11412:26;11422:6;11430:1;11433;11436;11412:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11412:26:0;;;;;;-1:-1:-1;;11457:23:0;;;11449:74;;;;;;;;;;;;;;11551:17;;;;;;;:6;:17;;;;;:19;;;;;;;;11542:28;;11534:75;;;;;;;;;;;;;;11635:6;11628:3;:13;;11620:64;;;;;;;;;;;;;;11702:31;11712:9;11723;11702;:31::i;:::-;11695:38;;;;10952:789;;;;;;;:::o;7419:1054::-;7549:13;7595:2;7577:9;:21;7573:172;;;-1:-1:-1;7631:2:0;7573:172;;;7676:57;7683:9;7676:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;7667:66;;7573:172;7757:23;1851:80;;;;;;;;;;;;;;;;7837:4;;;;;;;;;;;;;;;;;;7821:22;7845:12;:10;:12::i;:::-;7867:4;7793:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7793:80:0;;;7783:91;;;;;;7757:117;;7885:18;2274:95;;;;;;;;;;;;;;;;7971:13;;;;;;;:6;:13;;;;;;;:15;;;;;;;;7916:81;;2274:95;;7944:5;;7951:7;;7960:9;;7971:15;;7988:8;;7916:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7916:81:0;;;7906:92;;;;;;7885:113;;8009:14;8065:15;8082:10;8036:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8036:57:0;;;8026:68;;;;;;8009:85;;8105:17;8125:26;8135:6;8143:1;8146;8149;8125:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8125:26:0;;;;;;-1:-1:-1;;8170:23:0;;;8162:67;;;;;;;;;;;;;;8261:5;8248:18;;:9;:18;;;8240:57;;;;;;;;;;;;;;8323:8;8316:3;:15;;8308:59;;;;;;;;;;;;;;8409:6;8380:10;:17;8391:5;8380:17;;;;;;;;;;;;;;;:26;8398:7;8380:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8449:7;8433:32;;8442:5;8433:32;;;8458:6;8433:32;;;;;;;;;;;;;;;7419:1054;;;;;;;;;;;;:::o;5896:136::-;5996:19;;;;5972:4;5996:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;;;5896:136::o;2025:117::-;2071:71;;;;;;1548:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4120:232::-;4198:6;;;;4184:10;:20;4176:95;;;;;;;;;;;;;;4301:6;;4287:30;;;;;;4301:6;;;;;4309:7;;4287:30;;;;;;;;;;4328:6;:16;;;;;;;;;;;;;;;4120:232::o;16579:161::-;16654:6;16692:12;16685:5;16681:9;;16673:32;;;;;;;;;;;;;;;-1:-1:-1;16730:1:0;;16579:161;-1:-1:-1;;16579:161:0:o;16944:165::-;17030:6;17062:1;17057:6;;:1;:6;;;;17065:12;17049:29;;;;;;;;;;;;;;;;-1:-1:-1;;;17096:5:0;;;16944:165::o;14204:614::-;14298:17;;;14290:90;;;;;;;;;;;;;;14399:17;;;14391:88;;;;;;;;;;;;;;14514:13;;;;;;;:8;:13;;;;;;;;;;14508:86;;;;;;;;;;;;;;14514:13;;;;;14529:6;;14508:86;;;;;;;:5;:86::i;:::-;14492:13;;;;;;;;:8;:13;;;;;;;;:102;;;;;;;;;;;14627:13;;;;;;;;;;14621:80;;;;;;;;;;;;;;14627:13;;;;;14642:6;;14621:80;;;;;;;;:5;:80::i;:::-;14605:13;;;;;;;;:8;:13;;;;;;;:96;;;;;;;;;;;;;;;;14717:26;;;;;;;;;;14736:6;;14717:26;;;;;;;;;;14771:14;;;;;;;;:9;:14;;;;;;;14787;;;;;;;;14756:54;;14771:14;;;;14787;14803:6;14756:14;:54::i;986:181:7:-;1044:7;1076:5;;;1100:6;;;;1092:46;;;;;;;;;;;;;2740:471;2798:7;3043:6;3039:47;;-1:-1:-1;3073:1:7;3066:8;;3039:47;3110:5;;;3114:1;3110;:5;:1;3134:5;;;;;:10;3126:56;;;;;;;;;;;;;4398:132;4456:7;4483:39;4487:1;4490;4483:39;;;;;;;;;;;;;;;;;:3;:39::i;16748:188:0:-;16834:6;16864:5;;;16896:12;16888:6;;;;;;;;;16880:29;;;;;;;;;;;;;;;-1:-1:-1;16927:1:0;16748:188;-1:-1:-1;;;;16748:188:0:o;14826:939::-;14931:6;14921:16;;:6;:16;;;;:30;;;;;14950:1;14941:6;:10;;;14921:30;14917:841;;;14972:20;;;;14968:382;;15032:22;;;15013:16;15032:22;;;:14;:22;;;;;;;;;15092:13;:60;;15151:1;15092:60;;;15108:19;;;;;;;:11;:19;;;;;;;;15128:13;;;15108:34;;;;;;;;;:40;;;;;;15092:60;15073:79;;15171:16;15190:68;15196:9;15207:6;15190:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;15171:87;;15277:57;15294:6;15302:9;15313;15324;15277:16;:57::i;:::-;14968:382;;;;15370:20;;;;15366:381;;15430:22;;;15411:16;15430:22;;;:14;:22;;;;;;;;;15490:13;:60;;15549:1;15490:60;;;15506:19;;;;;;;:11;:19;;;;;;;;15526:13;;;15506:34;;;;;;;;;:40;;;;;;15490:60;15471:79;;15569:16;15588:67;15594:9;15605:6;15588:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;15569:86;;15674:57;15691:6;15699:9;15710;15721;15674:16;:57::i;13821:375::-;13924:20;;;;13898:23;13924:20;;;:9;:20;;;;;;;;;;13981:8;:19;;;;;;14011:20;;;;:32;;;;;;;;;;;14061:54;;13924:20;;;;;13981:19;;;;;14011:32;;13924:20;;;14061:54;;13898:23;14061:54;14128:60;14143:15;14160:9;14171:16;14128:14;:60::i;:::-;13821:375;;;;:::o;17117:153::-;17227:9;17117:153;:::o;5018:345:7:-;5104:7;5206:12;5199:5;5191:28;;;;;;;;;;;;;;;;5230:9;5246:1;5242;:5;;;;;;;5018:345;-1:-1:-1;;;;;5018:345:7:o;15773:629:0:-;15891:18;15912:76;15919:12;15912:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;15891:97;;16018:1;16003:12;:16;;;:85;;;;-1:-1:-1;16023:22:0;;;;;;;:11;:22;;;;;;;;:65;16046:16;;;16023:40;;;;;;;;;:50;:65;;;:50;;:65;16003:85;15999:329;;;16103:22;;;;;;;:11;:22;;;;;;;;16126:16;;;16103:40;;;;;;;;;:57;;;;;;;;;;;;15999:329;;;16228:33;;;;;;;;;;;;;;;;;;;;;;;;;16189:22;;;-1:-1:-1;16189:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16274:25;;;:14;:25;;;;;;;:44;;16189:72;16302:16;;16274:44;;;;;;;;;;;;;15999:329;16364:9;16343:51;;;16375:8;16385;16343:51;;;;;;;;;;;;;;;;15773:629;;;;;:::o;16410:161::-;16485:6;16523:12;16516:5;16512:9;;16504:32;;;;;;;;;;;;;;91:17182;;;;;;;;;;-1:-1:-1;91:17182:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2101:9;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3015:9;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3455:9;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4259:9;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;4648:113;4731:24;4749:5;4731:24;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5230:39;;;;5019:255;-1:-1;;;5019:255;5628:384;;5788:67;5852:2;5847:3;5788:67;;;5888:34;5868:55;;5957:17;5952:2;5943:12;;5936:39;6003:2;5994:12;;5774:238;-1:-1;;5774:238;6021:397;;6181:67;6245:2;6240:3;6181:67;;;6281:34;6261:55;;6350:30;6345:2;6336:12;;6329:52;6409:2;6400:12;;6167:251;-1:-1;;6167:251;6427:398;;6605:84;6687:1;6682:3;6605:84;;;6722:66;6702:87;;6817:1;6808:11;;6591:234;-1:-1;;6591:234;6834:327;;6994:67;7058:2;7053:3;6994:67;;;7094:29;7074:50;;7152:2;7143:12;;6980:181;-1:-1;;6980:181;7170:395;;7330:67;7394:2;7389:3;7330:67;;;7430:34;7410:55;;7499:28;7494:2;7485:12;;7478:50;7556:2;7547:12;;7316:249;-1:-1;;7316:249;7574:331;;7734:67;7798:2;7793:3;7734:67;;;7834:33;7814:54;;7896:2;7887:12;;7720:185;-1:-1;;7720:185;7914:376;;8074:67;8138:2;8133:3;8074:67;;;8174:34;8154:55;;8243:9;8238:2;8229:12;;8222:31;8281:2;8272:12;;8060:230;-1:-1;;8060:230;8299:371;;8459:67;8523:2;8518:3;8459:67;;;8559:34;8539:55;;8628:4;8623:2;8614:12;;8607:26;8661:2;8652:12;;8445:225;-1:-1;;8445:225;8679:331;;8839:67;8903:2;8898:3;8839:67;;;8939:33;8919:54;;9001:2;8992:12;;8825:185;-1:-1;;8825:185;9019:492;;9197:85;9279:2;9274:3;9197:85;;;9315:34;9295:55;;9384:34;9379:2;9370:12;;9363:56;9453:20;9448:2;9439:12;;9432:42;9502:2;9493:12;;9183:328;-1:-1;;9183:328;9520:477;;9698:85;9780:2;9775:3;9698:85;;;9816:34;9796:55;;9885:34;9880:2;9871:12;;9864:56;9954:5;9949:2;9940:12;;9933:27;9988:2;9979:12;;9684:313;-1:-1;;9684:313;10006:370;;10166:67;10230:2;10225:3;10166:67;;;10266:34;10246:55;;10335:3;10330:2;10321:12;;10314:25;10367:2;10358:12;;10152:224;-1:-1;;10152:224;10385:375;;10545:67;10609:2;10604:3;10545:67;;;10645:34;10625:55;;10714:8;10709:2;10700:12;;10693:30;10751:2;10742:12;;10531:229;-1:-1;;10531:229;10769:329;;10929:67;10993:2;10988:3;10929:67;;;11029:31;11009:52;;11089:2;11080:12;;10915:183;-1:-1;;10915:183;11107:372;;11267:67;11331:2;11326:3;11267:67;;;11367:34;11347:55;;11436:5;11431:2;11422:12;;11415:27;11470:2;11461:12;;11253:226;-1:-1;;11253:226;11488:326;;11648:67;11712:2;11707:3;11648:67;;;11748:28;11728:49;;11805:2;11796:12;;11634:180;-1:-1;;11634:180;11823:431;;12001:85;12083:2;12078:3;12001:85;;;12119:34;12099:55;;12188:28;12183:2;12174:12;;12167:50;12245:2;12236:12;;11987:267;-1:-1;;11987:267;12263:399;;12423:67;12487:2;12482:3;12423:67;;;12523:34;12503:55;;12592:32;12587:2;12578:12;;12571:54;12653:2;12644:12;;12409:253;-1:-1;;12409:253;12671:375;;12831:67;12895:2;12890:3;12831:67;;;12931:34;12911:55;;13000:8;12995:2;12986:12;;12979:30;13037:2;13028:12;;12817:229;-1:-1;;12817:229;13055:373;;13215:67;13279:2;13274:3;13215:67;;;13315:34;13295:55;;13384:6;13379:2;13370:12;;13363:28;13419:2;13410:12;;13201:227;-1:-1;;13201:227;13556:110;13637:23;13654:5;13637:23;;13673:107;13752:22;13768:5;13752:22;;13787:124;13869:36;13899:5;13869:36;;13918:110;13999:23;14016:5;13999:23;;14035:650;;14290:148;14434:3;14290:148;;;14283:155;;14449:75;14520:3;14511:6;14449:75;;;14546:2;14541:3;14537:12;14530:19;;14560:75;14631:3;14622:6;14560:75;;;-1:-1;14657:2;14648:12;;14271:414;-1:-1;;14271:414;14692:372;;14891:148;15035:3;14891:148;;15071:372;;15270:148;15414:3;15270:148;;15450:372;;15649:148;15793:3;15649:148;;15829:213;15947:2;15932:18;;15961:71;15936:9;16005:6;15961:71;;16049:324;16195:2;16180:18;;16209:71;16184:9;16253:6;16209:71;;;16291:72;16359:2;16348:9;16344:18;16335:6;16291:72;;16380:201;16492:2;16477:18;;16506:65;16481:9;16544:6;16506:65;;16588:213;16706:2;16691:18;;16720:71;16695:9;16764:6;16720:71;;16808:771;17066:3;17051:19;;17081:71;17055:9;17125:6;17081:71;;;17163:72;17231:2;17220:9;17216:18;17207:6;17163:72;;;17246;17314:2;17303:9;17299:18;17290:6;17246:72;;;17329;17397:2;17386:9;17382:18;17373:6;17329:72;;;17412:73;17480:3;17469:9;17465:19;17456:6;17412:73;;;17496;17564:3;17553:9;17549:19;17540:6;17496:73;;;17037:542;;;;;;;;;;17586:547;17788:3;17773:19;;17803:71;17777:9;17847:6;17803:71;;;17885:72;17953:2;17942:9;17938:18;17929:6;17885:72;;;17968;18036:2;18025:9;18021:18;18012:6;17968:72;;;18051;18119:2;18108:9;18104:18;18095:6;18051:72;;;17759:374;;;;;;;;18140:547;18342:3;18327:19;;18357:71;18331:9;18401:6;18357:71;;;18439:72;18507:2;18496:9;18492:18;18483:6;18439:72;;;18522;18590:2;18579:9;18575:18;18566:6;18522:72;;;18605;18673:2;18662:9;18658:18;18649:6;18605:72;;18694:539;18892:3;18877:19;;18907:71;18881:9;18951:6;18907:71;;;18989:68;19053:2;19042:9;19038:18;19029:6;18989:68;;19240:293;19374:2;19388:47;;;19359:18;;19449:74;19359:18;19509:6;19449:74;;19848:407;20039:2;20053:47;;;20024:18;;20114:131;20024:18;20114:131;;20262:407;20453:2;20467:47;;;20438:18;;20528:131;20438:18;20528:131;;20676:407;20867:2;20881:47;;;20852:18;;20942:131;20852:18;20942:131;;21090:407;21281:2;21295:47;;;21266:18;;21356:131;21266:18;21356:131;;21504:407;21695:2;21709:47;;;21680:18;;21770:131;21680:18;21770:131;;21918:407;22109:2;22123:47;;;22094:18;;22184:131;22094:18;22184:131;;22332:407;22523:2;22537:47;;;22508:18;;22598:131;22508:18;22598:131;;22746:407;22937:2;22951:47;;;22922:18;;23012:131;22922:18;23012:131;;23160:407;23351:2;23365:47;;;23336:18;;23426:131;23336:18;23426:131;;23574:407;23765:2;23779:47;;;23750:18;;23840:131;23750:18;23840:131;;23988:407;24179:2;24193:47;;;24164:18;;24254:131;24164:18;24254:131;;24402:407;24593:2;24607:47;;;24578:18;;24668:131;24578:18;24668:131;;24816:407;25007:2;25021:47;;;24992:18;;25082:131;24992:18;25082:131;;25230:407;25421:2;25435:47;;;25406:18;;25496:131;25406:18;25496:131;;25644:407;25835:2;25849:47;;;25820:18;;25910:131;25820:18;25910:131;;26058:407;26249:2;26263:47;;;26234:18;;26324:131;26234:18;26324:131;;26692:209;26808:2;26793:18;;26822:69;26797:9;26864:6;26822:69;;26908:316;27050:2;27035:18;;27064:69;27039:9;27106:6;27064:69;;;27144:70;27210:2;27199:9;27195:18;27186:6;27144:70;;27231:205;27345:2;27330:18;;27359:67;27334:9;27399:6;27359:67;;27443:211;27560:2;27545:18;;27574:70;27549:9;27617:6;27574:70;;27661:209;27777:2;27762:18;;27791:69;27766:9;27833:6;27791:69;;27877:320;28021:2;28006:18;;28035:70;28010:9;28078:6;28035:70;;;28116:71;28183:2;28172:9;28168:18;28159:6;28116:71;;28204:118;28288:12;;28259:63;28459:163;28562:19;;;28611:4;28602:14;;28555:67;28631:145;28767:3;28745:31;-1:-1;28745:31;28784:91;;28846:24;28864:5;28846:24;;28882:85;28948:13;28941:21;;28924:43;28974:72;29036:5;29019:27;29053:121;29126:42;29115:54;;29098:76;29260:88;29332:10;29321:22;;29304:44;29355:81;29426:4;29415:16;;29398:38;29443:104;29515:26;29504:38;;29487:60;29554:106;;29632:23;29649:5;29632:23;;29668:268;29733:1;29740:101;29754:6;29751:1;29748:13;29740:101;;;29821:11;;;29815:18;29802:11;;;29795:39;29776:2;29769:10;29740:101;;;29856:6;29853:1;29850:13;29847:2;;;-1:-1;;29921:1;29903:16;;29896:27;29717:219;30025:97;30113:2;30093:14;30109:7;30089:28;;30073:49;30130:117;30199:24;30217:5;30199:24;;;30192:5;30189:35;30179:2;;30238:1;30235;30228:12;30254:117;30323:24;30341:5;30323:24;;30502:115;30570:23;30587:5;30570:23;;30624:113;30691:22;30707:5;30691:22;"
    },
    "contracts/NikiFeeTo.sol:INikiswapV2Pair": {
      "abi": [
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            }
          ],
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            }
          ],
          "name": "burn",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "amount0",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount1",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "token0",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "token1",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "transfer",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiFeeTo.sol\":\"INikiswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiFeeTo.sol\":{\"keccak256\":\"0xee125dfdbb3f0a4c61bb3eb0fa9ce7870b2e131af97bf91758565add97b77b82\",\"urls\":[\"bzz-raw://e56637823f327db6ce6cdbfb7068e64ea2403f5d645aee08aa15da47f28cd6b7\",\"dweb:/ipfs/QmcaR3N7g8kUBJ2rPdFZAKbBEY9XdBNC4Gid5AaLaBbmmi\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiFeeTo.sol:NikiFeeTo": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "pair",
              "type": "address"
            }
          ],
          "name": "claim",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "feeRecipient",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "pairAllowStates",
          "outputs": [
            {
              "internalType": "uint128",
              "name": "token0DisallowCount",
              "type": "uint128"
            },
            {
              "internalType": "uint128",
              "name": "token1DisallowCount",
              "type": "uint128"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "pair",
              "type": "address"
            }
          ],
          "name": "renounce",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "feeRecipient_",
              "type": "address"
            }
          ],
          "name": "setFeeRecipient",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            }
          ],
          "name": "setOwner",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "tokenAllowStates",
          "outputs": [
            {
              "internalType": "bool",
              "name": "allowed",
              "type": "bool"
            },
            {
              "internalType": "uint128",
              "name": "disallowCount",
              "type": "uint128"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "allowed",
              "type": "bool"
            }
          ],
          "name": "updateTokenAllowState",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "bool",
              "name": "allowed",
              "type": "bool"
            }
          ],
          "name": "updateTokenAllowStates",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b506040516110683803806110688339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611003806100656000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638d97617211610076578063df8ca76a1161005b578063df8ca76a146102ad578063e359f0ed146102e8578063e74b981b1461034a576100be565b80638d976172146102005780638da5cb5b146102a5576100be565b80631f76a7af116100a75780631f76a7af1461013d5780633e2f3f2b1461017057806346904840146101cf576100be565b806313af4035146100c35780631e83409a146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037d565b005b61012b6004803603602081101561010e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661044a565b60408051918252519081900360200190f35b61012b6004803603602081101561015357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107e6565b6101a36004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c7f565b6040805192151583526fffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b6101d7610cad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603604081101561021657600080fd5b81019060208101813564010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184602083028401116401000000008311171561026557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610cc9565b6101d7610cff565b6100f6600480360360408110156102c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610d1b565b61031b600480360360208110156102fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e87565b604080516fffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b6100f66004803603602081101561036057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ec3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d602081101561050457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1680156106045750805460ff165b801561062c57508254825461010090046fffffffffffffffffffffffffffffffff9081169116145b801561066857508254815461010090046fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000090920416145b801561068b575060015473ffffffffffffffffffffffffffffffffffffffff1615155b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d602081101561072657600080fd5b5051935083156107de57600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810187905290519187169163a9059cbb916044808201926020929091908290030181600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050506040513d60208110156107d657600080fd5b50516107de57fe5b505050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561087657600080fd5b505afa15801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d602081101561096357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1615806109a15750805460ff16155b806109ca5750825482546fffffffffffffffffffffffffffffffff918216610100909104909116115b80610a065750825481547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff90811661010090920416115b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505193508315610bec57604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820181905260248201879052915163a9059cbb916044808201926020929091908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b5051610b5357fe5b604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201819052825190926389afcb4492602480820193918290030181600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b505050506040513d6040811015610be957600080fd5b50505b815460ff1615610c3a57815483546101009091046fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161783555b805460ff16156107de575482546fffffffffffffffffffffffffffffffff90811661010090920416700100000000000000000000000000000000021790915550919050565b60026020526000908152604090205460ff81169061010090046fffffffffffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005b8251811015610cfa57610cf2838281518110610ce457fe5b602002602001015183610d1b565b600101610ccc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f7b602d913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020805460ff16151582151514610cfa5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151780825561010090046fffffffffffffffffffffffffffffffff16610e345780547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff16610100178155610cfa565b81610cfa5780546fffffffffffffffffffffffffffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff909116178155505050565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fa86027913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f7765644e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564a265627a7a723158201e0c1871b558c509533723adcfd26854480f7c1761b4de263bd7c0a5e0d6408e64736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1068 CODESIZE SUB DUP1 PUSH2 0x1068 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1003 DUP1 PUSH2 0x65 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 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D976172 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xDF8CA76A GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xDF8CA76A EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xE359F0ED EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE74B981B EQ PUSH2 0x34A JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x8D976172 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2A5 JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x1F76A7AF GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x1F76A7AF EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x3E2F3F2B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x46904840 EQ PUSH2 0x1CF JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x1E83409A EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x37D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x44A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7E6 JUMP JUMPDEST PUSH2 0x1A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC7F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP POP POP CALLDATALOAD ISZERO ISZERO SWAP1 POP PUSH2 0xCC9 JUMP JUMPDEST PUSH2 0x1D7 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD ISZERO ISZERO PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x31B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xEC3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x403 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E696B69466565546F3A3A7365744F776E65723A206E6F7420616C6C6F776564 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x604 JUMPI POP DUP1 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x62C JUMPI POP DUP3 SLOAD DUP3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x668 JUMPI POP DUP3 SLOAD DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x68B JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x7DE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x710 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0xA9059CBB SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x7DE JUMPI INVALID JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x876 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x9A1 JUMPI POP DUP1 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST DUP1 PUSH2 0x9CA JUMPI POP DUP3 SLOAD DUP3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT JUMPDEST DUP1 PUSH2 0xA06 JUMPI POP DUP3 SLOAD DUP2 SLOAD PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND GT JUMPDEST ISZERO PUSH2 0x7DE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO PUSH2 0xBEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xA9059CBB SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB35 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xB53 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD SWAP1 SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST DUP2 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC3A JUMPI DUP2 SLOAD DUP4 SLOAD PUSH2 0x100 SWAP1 SWAP2 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 SWAP1 SWAP2 AND OR DUP4 SSTORE JUMPDEST DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x7DE JUMPI SLOAD DUP3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND PUSH17 0x100000000000000000000000000000000 MUL OR SWAP1 SWAP2 SSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF DUP2 AND SWAP1 PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF2 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCE4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xCCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD8B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xF7B PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP3 ISZERO ISZERO EQ PUSH2 0xCFA JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP3 ISZERO ISZERO OR DUP1 DUP3 SSTORE PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE34 JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000FF AND PUSH2 0x100 OR DUP2 SSTORE PUSH2 0xCFA JUMP JUMPDEST DUP2 PUSH2 0xCFA JUMPI DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 DUP1 DUP4 DIV DUP3 AND PUSH1 0x1 ADD SWAP1 SWAP2 AND MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000FF SWAP1 SWAP2 AND OR DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV AND DUP3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF33 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP INVALID 0x4E PUSH10 0x6B69466565546F3A3A75 PUSH17 0x64617465546F6B656E416C6C6F77537461 PUSH21 0x653A206E6F7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x3A3A736574466565526563697069656E PUSH21 0x3A206E6F7420616C6C6F776564A265627A7A723158 KECCAK256 0x1E 0xC XOR PUSH18 0xB558C509533723ADCFD26854480F7C1761B4 0xDE 0x26 EXTCODESIZE 0xD7 0xC0 0xA5 0xE0 0xD6 BLOCKHASH DUP15 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
          "sourceMap": "248:5278:1:-;;;678:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;678:68:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:68:1;724:5;:14;;-1:-1:-1;;;;;724:14:1;;;-1:-1:-1;;;;;;724:14:1;;;;;;;;;248:5278;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b50600436106100be5760003560e01c80638d97617211610076578063df8ca76a1161005b578063df8ca76a146102ad578063e359f0ed146102e8578063e74b981b1461034a576100be565b80638d976172146102005780638da5cb5b146102a5576100be565b80631f76a7af116100a75780631f76a7af1461013d5780633e2f3f2b1461017057806346904840146101cf576100be565b806313af4035146100c35780631e83409a146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037d565b005b61012b6004803603602081101561010e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661044a565b60408051918252519081900360200190f35b61012b6004803603602081101561015357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107e6565b6101a36004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c7f565b6040805192151583526fffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b6101d7610cad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603604081101561021657600080fd5b81019060208101813564010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184602083028401116401000000008311171561026557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610cc9565b6101d7610cff565b6100f6600480360360408110156102c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610d1b565b61031b600480360360208110156102fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e87565b604080516fffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b6100f66004803603602081101561036057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ec3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d602081101561050457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1680156106045750805460ff165b801561062c57508254825461010090046fffffffffffffffffffffffffffffffff9081169116145b801561066857508254815461010090046fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000090920416145b801561068b575060015473ffffffffffffffffffffffffffffffffffffffff1615155b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d602081101561072657600080fd5b5051935083156107de57600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810187905290519187169163a9059cbb916044808201926020929091908290030181600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050506040513d60208110156107d657600080fd5b50516107de57fe5b505050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561087657600080fd5b505afa15801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d602081101561096357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1615806109a15750805460ff16155b806109ca5750825482546fffffffffffffffffffffffffffffffff918216610100909104909116115b80610a065750825481547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff90811661010090920416115b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505193508315610bec57604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820181905260248201879052915163a9059cbb916044808201926020929091908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b5051610b5357fe5b604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201819052825190926389afcb4492602480820193918290030181600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b505050506040513d6040811015610be957600080fd5b50505b815460ff1615610c3a57815483546101009091046fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161783555b805460ff16156107de575482546fffffffffffffffffffffffffffffffff90811661010090920416700100000000000000000000000000000000021790915550919050565b60026020526000908152604090205460ff81169061010090046fffffffffffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005b8251811015610cfa57610cf2838281518110610ce457fe5b602002602001015183610d1b565b600101610ccc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f7b602d913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020805460ff16151582151514610cfa5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151780825561010090046fffffffffffffffffffffffffffffffff16610e345780547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff16610100178155610cfa565b81610cfa5780546fffffffffffffffffffffffffffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff909116178155505050565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fa86027913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f7765644e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564a265627a7a723158201e0c1871b558c509533723adcfd26854480f7c1761b4de263bd7c0a5e0d6408e64736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D976172 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xDF8CA76A GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xDF8CA76A EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xE359F0ED EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE74B981B EQ PUSH2 0x34A JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x8D976172 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2A5 JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x1F76A7AF GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x1F76A7AF EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x3E2F3F2B EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x46904840 EQ PUSH2 0x1CF JUMPI PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x1E83409A EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x37D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x44A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7E6 JUMP JUMPDEST PUSH2 0x1A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC7F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 ISZERO ISZERO DUP4 MSTORE PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0xCAD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP POP POP CALLDATALOAD ISZERO ISZERO SWAP1 POP PUSH2 0xCC9 JUMP JUMPDEST PUSH2 0x1D7 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD ISZERO ISZERO PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x31B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xEC3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x403 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E696B69466565546F3A3A7365744F776E65723A206E6F7420616C6C6F776564 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x604 JUMPI POP DUP1 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x62C JUMPI POP DUP3 SLOAD DUP3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x668 JUMPI POP DUP3 SLOAD DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x68B JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x7DE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x710 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 MLOAD SWAP2 DUP8 AND SWAP2 PUSH4 0xA9059CBB SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x7DE JUMPI INVALID JUMPDEST POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x876 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO DUP1 PUSH2 0x9A1 JUMPI POP DUP1 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST DUP1 PUSH2 0x9CA JUMPI POP DUP3 SLOAD DUP3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT JUMPDEST DUP1 PUSH2 0xA06 JUMPI POP DUP3 SLOAD DUP2 SLOAD PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND GT JUMPDEST ISZERO PUSH2 0x7DE JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP4 POP DUP4 ISZERO PUSH2 0xBEC JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xA9059CBB SWAP2 PUSH1 0x44 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB35 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0xB53 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x89AFCB4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD SWAP1 SWAP3 PUSH4 0x89AFCB44 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP JUMPDEST DUP2 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC3A JUMPI DUP2 SLOAD DUP4 SLOAD PUSH2 0x100 SWAP1 SWAP2 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 SWAP1 SWAP2 AND OR DUP4 SSTORE JUMPDEST DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x7DE JUMPI SLOAD DUP3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND PUSH17 0x100000000000000000000000000000000 MUL OR SWAP1 SWAP2 SSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF DUP2 AND SWAP1 PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF2 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCE4 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xCCC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD8B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xF7B PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP3 ISZERO ISZERO EQ PUSH2 0xCFA JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP3 ISZERO ISZERO OR DUP1 DUP3 SSTORE PUSH2 0x100 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE34 JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000FF AND PUSH2 0x100 OR DUP2 SSTORE PUSH2 0xCFA JUMP JUMPDEST DUP2 PUSH2 0xCFA JUMPI DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 DUP1 DUP4 DIV DUP3 AND PUSH1 0x1 ADD SWAP1 SWAP2 AND MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000FF SWAP1 SWAP2 AND OR DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV AND DUP3 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xF33 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP INVALID 0x4E PUSH10 0x6B69466565546F3A3A75 PUSH17 0x64617465546F6B656E416C6C6F77537461 PUSH21 0x653A206E6F7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x3A3A736574466565526563697069656E PUSH21 0x3A206E6F7420616C6C6F776564A265627A7A723158 KECCAK256 0x1E 0xC XOR PUSH18 0xB558C509533723ADCFD26854480F7C1761B4 0xDE 0x26 EXTCODESIZE 0xD7 0xC0 0xA5 0xE0 0xD6 BLOCKHASH DUP15 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
          "sourceMap": "248:5278:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:5278:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;754:149:1;;;;:::i;:::-;;4169:1354;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4169:1354:1;;;;:::i;:::-;;;;;;;;;;;;;;;;2228:1933;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2228:1933:1;;;;:::i;432:59::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;432:59:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;301:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2019:201;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2019:201:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2019:201:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2019:201:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2019:201:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2019:201:1;;-1:-1:-1;;;;2019:201:1;;;;-1:-1:-1;2019:201:1;:::i;274:20::-;;;:::i;1103:908::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:908:1;;;;;;;;;;;:::i;612:57::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;612:57:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;911:184:1;;;;:::i;754:149::-;828:5;;;;814:10;:19;806:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;881:5;:14;;;;;;;;;;;;;;;754:149::o;4169:1354::-;4214:10;4237:37;4277:15;:21;4293:4;4277:21;;;;;;;;;;;;;;;4237:61;;4309:40;4352:16;:48;4385:4;4369:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4369:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4369:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4369:30:1;;;;;;;;;;;;;;;;4352:48;;;;;;;;;;;;;;;4309:91;;4411:40;4454:16;:48;4487:4;4471:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4471:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4471:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4471:30:1;4454:48;;;;4471:30;4454:48;;;;;;;;-1:-1:-1;4454:48:1;4909:24;;4454:48;;-1:-1:-1;4909:24:1;;:65;;;;-1:-1:-1;4950:24:1;;;;4909:65;:150;;;;-1:-1:-1;5025:34:1;;4991:30;;5025:34;4991:30;;5025:34;4991:30;;;5025:34;;4991:68;4909:150;:235;;;;-1:-1:-1;5110:34:1;;5076:30;;5110:34;5076:30;;5110:34;5076:30;;;5110:34;;;;;5076:68;4909:235;:278;;;;-1:-1:-1;5161:12:1;;:26;:12;:26;;4909:278;4891:625;;;5222:46;;;;;;5262:4;5222:46;;;;;;:31;;;;;;:46;;;;;;;;;;;;;;:31;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;5222:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5222:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5222:46:1;;-1:-1:-1;5287:9:1;;5283:222;;5468:12;;5437:51;;;;;;:30;5468:12;;;5437:51;;;;;;;;;;;;:30;;;;;;:51;;;;;;;;;;;;;;;5468:12;5437:30;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;5437:51:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5437:51:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5437:51:1;5430:59;;;;4169:1354;;;;;;:::o;2228:1933::-;2276:10;2299:37;2339:15;:21;2355:4;2339:21;;;;;;;;;;;;;;;2299:61;;2371:40;2414:16;:48;2447:4;2431:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2431:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2431:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2431:30:1;;;;;;;;;;;;;;;;2414:48;;;;;;;;;;;;;;;2371:91;;2473:40;2516:16;:48;2549:4;2533:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2533:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2533:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2533:30:1;2516:48;;;;2533:30;2516:48;;;;;;;;-1:-1:-1;2516:48:1;2948:24;;2516:48;;-1:-1:-1;2948:24:1;;:33;;:83;;-1:-1:-1;2998:24:1;;;;:33;2948:83;:167;;;-1:-1:-1;3081:34:1;;3048:30;;3081:34;;;;;3048:30;;;;;;:67;2948:167;:251;;;-1:-1:-1;3165:34:1;;3132:30;;3165:34;;;;;;;;;3132:30;;;;:67;2948:251;2930:1224;;;3234:46;;;;;;3274:4;3234:46;;;;;;:31;;;;;;:46;;;;;;;;;;;;;;:31;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;3234:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3234:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3234:46:1;;-1:-1:-1;3299:9:1;;3295:348;;3532:43;;;;;;:30;;;:43;;;;;;;;;;;;;;:30;;:43;;;;;;;;;;;;;;;-1:-1:-1;3532:30:1;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;3532:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3532:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3532:43:1;3525:51;;;;3595:32;;;;;;:26;;;:32;;;;;;;;:26;;;;:32;;;;;;;;;;;-1:-1:-1;3595:26:1;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3595:32:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3595:32:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;3295:348:1;3766:24;;;;3762:132;;;3848:30;;3811:67;;3848:30;;;;;;3811:67;;;;;;;3762:132;4015:24;;;;4011:132;;;4097:30;4060:67;;4097:30;4060:67;;;4097:30;;;;;4060:67;;;;;;-1:-1:-1;2228:1933:1;;-1:-1:-1;2228:1933:1:o;432:59::-;;;;;;;;;;;;;;;;;;;;;;:::o;301:27::-;;;;;;:::o;2019:201::-;2113:6;2108:105;2125:6;:13;2121:1;:17;2108:105;;;2160:41;2182:6;2189:1;2182:9;;;;;;;;;;;;;;2193:7;2160:21;:41::i;:::-;2140:3;;2108:105;;;;2019:201;;:::o;274:20::-;;;;;;:::o;1103:908::-;1203:5;;;;1189:10;:19;1181:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:23;;;1269:39;1311:23;;;:16;:23;;;;;1424;;;;1413:34;;;;;;1409:595;;1464:33;;;;;;;;;;;;1792:29;;;;1788:205;;1847:33;;;;;;;;1788:205;;;1906:16;1902:91;;1943:34;;;;;;;;;1976:1;1943:34;;;;;;;;;;;;1103:908;;;:::o;612:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;911:184::-;999:5;;;;985:10;:19;977:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:12;:28;;;;;;;;;;;;;;;911:184::o"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"pairAllowStates\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0DisallowCount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1DisallowCount\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"renounce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenAllowStates\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"disallowCount\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"updateTokenAllowState\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"updateTokenAllowStates\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiFeeTo.sol\":\"NikiFeeTo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiFeeTo.sol\":{\"keccak256\":\"0xee125dfdbb3f0a4c61bb3eb0fa9ce7870b2e131af97bf91758565add97b77b82\",\"urls\":[\"bzz-raw://e56637823f327db6ce6cdbfb7068e64ea2403f5d645aee08aa15da47f28cd6b7\",\"dweb:/ipfs/QmcaR3N7g8kUBJ2rPdFZAKbBEY9XdBNC4Gid5AaLaBbmmi\"]}},\"version\":1}",
      "bytecode": "608060405234801561001057600080fd5b506040516110683803806110688339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611003806100656000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638d97617211610076578063df8ca76a1161005b578063df8ca76a146102ad578063e359f0ed146102e8578063e74b981b1461034a576100be565b80638d976172146102005780638da5cb5b146102a5576100be565b80631f76a7af116100a75780631f76a7af1461013d5780633e2f3f2b1461017057806346904840146101cf576100be565b806313af4035146100c35780631e83409a146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037d565b005b61012b6004803603602081101561010e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661044a565b60408051918252519081900360200190f35b61012b6004803603602081101561015357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107e6565b6101a36004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c7f565b6040805192151583526fffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b6101d7610cad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603604081101561021657600080fd5b81019060208101813564010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184602083028401116401000000008311171561026557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610cc9565b6101d7610cff565b6100f6600480360360408110156102c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610d1b565b61031b600480360360208110156102fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e87565b604080516fffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b6100f66004803603602081101561036057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ec3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d602081101561050457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1680156106045750805460ff165b801561062c57508254825461010090046fffffffffffffffffffffffffffffffff9081169116145b801561066857508254815461010090046fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000090920416145b801561068b575060015473ffffffffffffffffffffffffffffffffffffffff1615155b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d602081101561072657600080fd5b5051935083156107de57600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810187905290519187169163a9059cbb916044808201926020929091908290030181600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050506040513d60208110156107d657600080fd5b50516107de57fe5b505050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561087657600080fd5b505afa15801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d602081101561096357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1615806109a15750805460ff16155b806109ca5750825482546fffffffffffffffffffffffffffffffff918216610100909104909116115b80610a065750825481547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff90811661010090920416115b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505193508315610bec57604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820181905260248201879052915163a9059cbb916044808201926020929091908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b5051610b5357fe5b604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201819052825190926389afcb4492602480820193918290030181600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b505050506040513d6040811015610be957600080fd5b50505b815460ff1615610c3a57815483546101009091046fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161783555b805460ff16156107de575482546fffffffffffffffffffffffffffffffff90811661010090920416700100000000000000000000000000000000021790915550919050565b60026020526000908152604090205460ff81169061010090046fffffffffffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005b8251811015610cfa57610cf2838281518110610ce457fe5b602002602001015183610d1b565b600101610ccc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f7b602d913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020805460ff16151582151514610cfa5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151780825561010090046fffffffffffffffffffffffffffffffff16610e345780547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff16610100178155610cfa565b81610cfa5780546fffffffffffffffffffffffffffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff909116178155505050565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fa86027913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f7765644e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564a265627a7a723158201e0c1871b558c509533723adcfd26854480f7c1761b4de263bd7c0a5e0d6408e64736f6c63430005100032",
      "bin": "608060405234801561001057600080fd5b506040516110683803806110688339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611003806100656000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638d97617211610076578063df8ca76a1161005b578063df8ca76a146102ad578063e359f0ed146102e8578063e74b981b1461034a576100be565b80638d976172146102005780638da5cb5b146102a5576100be565b80631f76a7af116100a75780631f76a7af1461013d5780633e2f3f2b1461017057806346904840146101cf576100be565b806313af4035146100c35780631e83409a146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037d565b005b61012b6004803603602081101561010e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661044a565b60408051918252519081900360200190f35b61012b6004803603602081101561015357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107e6565b6101a36004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c7f565b6040805192151583526fffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b6101d7610cad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603604081101561021657600080fd5b81019060208101813564010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184602083028401116401000000008311171561026557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610cc9565b6101d7610cff565b6100f6600480360360408110156102c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610d1b565b61031b600480360360208110156102fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e87565b604080516fffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b6100f66004803603602081101561036057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ec3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d602081101561050457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1680156106045750805460ff165b801561062c57508254825461010090046fffffffffffffffffffffffffffffffff9081169116145b801561066857508254815461010090046fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000090920416145b801561068b575060015473ffffffffffffffffffffffffffffffffffffffff1615155b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d602081101561072657600080fd5b5051935083156107de57600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810187905290519187169163a9059cbb916044808201926020929091908290030181600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050506040513d60208110156107d657600080fd5b50516107de57fe5b505050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561087657600080fd5b505afa15801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d602081101561096357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1615806109a15750805460ff16155b806109ca5750825482546fffffffffffffffffffffffffffffffff918216610100909104909116115b80610a065750825481547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff90811661010090920416115b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505193508315610bec57604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820181905260248201879052915163a9059cbb916044808201926020929091908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b5051610b5357fe5b604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201819052825190926389afcb4492602480820193918290030181600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b505050506040513d6040811015610be957600080fd5b50505b815460ff1615610c3a57815483546101009091046fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161783555b805460ff16156107de575482546fffffffffffffffffffffffffffffffff90811661010090920416700100000000000000000000000000000000021790915550919050565b60026020526000908152604090205460ff81169061010090046fffffffffffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005b8251811015610cfa57610cf2838281518110610ce457fe5b602002602001015183610d1b565b600101610ccc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f7b602d913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020805460ff16151582151514610cfa5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151780825561010090046fffffffffffffffffffffffffffffffff16610e345780547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff16610100178155610cfa565b81610cfa5780546fffffffffffffffffffffffffffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff909116178155505050565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fa86027913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f7765644e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564a265627a7a723158201e0c1871b558c509533723adcfd26854480f7c1761b4de263bd7c0a5e0d6408e64736f6c63430005100032",
      "bin-runtime": "608060405234801561001057600080fd5b50600436106100be5760003560e01c80638d97617211610076578063df8ca76a1161005b578063df8ca76a146102ad578063e359f0ed146102e8578063e74b981b1461034a576100be565b80638d976172146102005780638da5cb5b146102a5576100be565b80631f76a7af116100a75780631f76a7af1461013d5780633e2f3f2b1461017057806346904840146101cf576100be565b806313af4035146100c35780631e83409a146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037d565b005b61012b6004803603602081101561010e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661044a565b60408051918252519081900360200190f35b61012b6004803603602081101561015357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107e6565b6101a36004803603602081101561018657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c7f565b6040805192151583526fffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b6101d7610cad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603604081101561021657600080fd5b81019060208101813564010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184602083028401116401000000008311171561026557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610cc9565b6101d7610cff565b6100f6600480360360408110156102c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610d1b565b61031b600480360360208110156102fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e87565b604080516fffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b6100f66004803603602081101561036057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ec3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d602081101561050457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050506040513d60208110156105c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1680156106045750805460ff165b801561062c57508254825461010090046fffffffffffffffffffffffffffffffff9081169116145b801561066857508254815461010090046fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000090920416145b801561068b575060015473ffffffffffffffffffffffffffffffffffffffff1615155b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d602081101561072657600080fd5b5051935083156107de57600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810187905290519187169163a9059cbb916044808201926020929091908290030181600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050506040513d60208110156107d657600080fd5b50516107de57fe5b505050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008573ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561087657600080fd5b505afa15801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d602081101561096357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020825490915060ff1615806109a15750805460ff16155b806109ca5750825482546fffffffffffffffffffffffffffffffff918216610100909104909116115b80610a065750825481547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff90811661010090920416115b156107de57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8716916370a08231916024808301926020929190829003018186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505193508315610bec57604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820181905260248201879052915163a9059cbb916044808201926020929091908290030181600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d6020811015610b4b57600080fd5b5051610b5357fe5b604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201819052825190926389afcb4492602480820193918290030181600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b505050506040513d6040811015610be957600080fd5b50505b815460ff1615610c3a57815483546101009091046fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161783555b805460ff16156107de575482546fffffffffffffffffffffffffffffffff90811661010090920416700100000000000000000000000000000000021790915550919050565b60026020526000908152604090205460ff81169061010090046fffffffffffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005b8251811015610cfa57610cf2838281518110610ce457fe5b602002602001015183610d1b565b600101610ccc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f7b602d913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020805460ff16151582151514610cfa5780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151780825561010090046fffffffffffffffffffffffffffffffff16610e345780547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff16610100178155610cfa565b81610cfa5780546fffffffffffffffffffffffffffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff909116178155505050565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610fa86027913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f7765644e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564a265627a7a723158201e0c1871b558c509533723adcfd26854480f7c1761b4de263bd7c0a5e0d6408e64736f6c63430005100032",
      "srcmap": "248:5278:1:-;;;678:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;678:68:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:68:1;724:5;:14;;-1:-1:-1;;;;;724:14:1;;;-1:-1:-1;;;;;;724:14:1;;;;;;;;;248:5278;;;;;;",
      "srcmap-runtime": "248:5278:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:5278:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;754:149:1;;;;:::i;:::-;;4169:1354;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4169:1354:1;;;;:::i;:::-;;;;;;;;;;;;;;;;2228:1933;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2228:1933:1;;;;:::i;432:59::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;432:59:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;301:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2019:201;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2019:201:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2019:201:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2019:201:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2019:201:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2019:201:1;;-1:-1:-1;;;;2019:201:1;;;;-1:-1:-1;2019:201:1;:::i;274:20::-;;;:::i;1103:908::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:908:1;;;;;;;;;;;:::i;612:57::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;612:57:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;911:184:1;;;;:::i;754:149::-;828:5;;;;814:10;:19;806:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;881:5;:14;;;;;;;;;;;;;;;754:149::o;4169:1354::-;4214:10;4237:37;4277:15;:21;4293:4;4277:21;;;;;;;;;;;;;;;4237:61;;4309:40;4352:16;:48;4385:4;4369:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4369:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4369:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4369:30:1;;;;;;;;;;;;;;;;4352:48;;;;;;;;;;;;;;;4309:91;;4411:40;4454:16;:48;4487:4;4471:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4471:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4471:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4471:30:1;4454:48;;;;4471:30;4454:48;;;;;;;;-1:-1:-1;4454:48:1;4909:24;;4454:48;;-1:-1:-1;4909:24:1;;:65;;;;-1:-1:-1;4950:24:1;;;;4909:65;:150;;;;-1:-1:-1;5025:34:1;;4991:30;;5025:34;4991:30;;5025:34;4991:30;;;5025:34;;4991:68;4909:150;:235;;;;-1:-1:-1;5110:34:1;;5076:30;;5110:34;5076:30;;5110:34;5076:30;;;5110:34;;;;;5076:68;4909:235;:278;;;;-1:-1:-1;5161:12:1;;:26;:12;:26;;4909:278;4891:625;;;5222:46;;;;;;5262:4;5222:46;;;;;;:31;;;;;;:46;;;;;;;;;;;;;;:31;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;5222:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5222:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5222:46:1;;-1:-1:-1;5287:9:1;;5283:222;;5468:12;;5437:51;;;;;;:30;5468:12;;;5437:51;;;;;;;;;;;;:30;;;;;;:51;;;;;;;;;;;;;;;5468:12;5437:30;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;5437:51:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5437:51:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5437:51:1;5430:59;;;;4169:1354;;;;;;:::o;2228:1933::-;2276:10;2299:37;2339:15;:21;2355:4;2339:21;;;;;;;;;;;;;;;2299:61;;2371:40;2414:16;:48;2447:4;2431:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2431:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2431:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2431:30:1;;;;;;;;;;;;;;;;2414:48;;;;;;;;;;;;;;;2371:91;;2473:40;2516:16;:48;2549:4;2533:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2533:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2533:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2533:30:1;2516:48;;;;2533:30;2516:48;;;;;;;;-1:-1:-1;2516:48:1;2948:24;;2516:48;;-1:-1:-1;2948:24:1;;:33;;:83;;-1:-1:-1;2998:24:1;;;;:33;2948:83;:167;;;-1:-1:-1;3081:34:1;;3048:30;;3081:34;;;;;3048:30;;;;;;:67;2948:167;:251;;;-1:-1:-1;3165:34:1;;3132:30;;3165:34;;;;;;;;;3132:30;;;;:67;2948:251;2930:1224;;;3234:46;;;;;;3274:4;3234:46;;;;;;:31;;;;;;:46;;;;;;;;;;;;;;:31;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;3234:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3234:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3234:46:1;;-1:-1:-1;3299:9:1;;3295:348;;3532:43;;;;;;:30;;;:43;;;;;;;;;;;;;;:30;;:43;;;;;;;;;;;;;;;-1:-1:-1;3532:30:1;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;3532:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3532:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3532:43:1;3525:51;;;;3595:32;;;;;;:26;;;:32;;;;;;;;:26;;;;:32;;;;;;;;;;;-1:-1:-1;3595:26:1;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3595:32:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3595:32:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;3295:348:1;3766:24;;;;3762:132;;;3848:30;;3811:67;;3848:30;;;;;;3811:67;;;;;;;3762:132;4015:24;;;;4011:132;;;4097:30;4060:67;;4097:30;4060:67;;;4097:30;;;;;4060:67;;;;;;-1:-1:-1;2228:1933:1;;-1:-1:-1;2228:1933:1:o;432:59::-;;;;;;;;;;;;;;;;;;;;;;:::o;301:27::-;;;;;;:::o;2019:201::-;2113:6;2108:105;2125:6;:13;2121:1;:17;2108:105;;;2160:41;2182:6;2189:1;2182:9;;;;;;;;;;;;;;2193:7;2160:21;:41::i;:::-;2140:3;;2108:105;;;;2019:201;;:::o;274:20::-;;;;;;:::o;1103:908::-;1203:5;;;;1189:10;:19;1181:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:23;;;1269:39;1311:23;;;:16;:23;;;;;1424;;;;1413:34;;;;;;1409:595;;1464:33;;;;;;;;;;;;1792:29;;;;1788:205;;1847:33;;;;;;;;1788:205;;;1906:16;1902:91;;1943:34;;;;;;;;;1976:1;1943:34;;;;;;;;;;;;1103:908;;;:::o;612:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;911:184::-;999:5;;;;985:10;:19;977:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:12;:28;;;;;;;;;;;;;;;911:184::o"
    },
    "contracts/NikiFeeToSetter.sol:INikiswapV2Factory": {
      "abi": [
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "setFeeTo",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "setFeeToSetter",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiFeeToSetter.sol\":\"INikiswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiFeeToSetter.sol\":{\"keccak256\":\"0x2e4540e7069c3f6b54e2c265fbc26cecacf1a66ad3d0568f445d4ab5980e0abc\",\"urls\":[\"bzz-raw://339b49ec16be050a32bda6488db9bdc3eb00560f38f72ccb0b3fa4ce0d79910a\",\"dweb:/ipfs/QmZWqdZuhBvbgwUZ71Aztta3WbPyUYSRUjLfz8NTGWkUby\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiFeeToSetter.sol:NikiFeeToSetter": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "factory_",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "vestingEnd_",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "feeTo_",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "factory",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "feeTo",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "feeToSetter_",
              "type": "address"
            }
          ],
          "name": "setFeeToSetter",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            }
          ],
          "name": "setOwner",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "bool",
              "name": "on",
              "type": "bool"
            }
          ],
          "name": "toggleFees",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingEnd",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820d4832595798419195182e2d722ba1862d691f4406dda2e0f065f8bb64d92b3e664736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x75B CODESIZE SUB DUP1 PUSH2 0x75B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 TIMESTAMP DUP4 GT PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x71C PUSH1 0x3F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP6 AND SWAP3 DUP5 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH2 0x642 DUP1 PUSH2 0xDA 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 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0xA69EA776 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15C JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x84A1931F EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF0 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x23D JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD ISZERO ISZERO PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x8A PUSH2 0x521 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x53E PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5E1 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x58D PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA2E74AF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA2E74AF6 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x564 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5B9 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF46901ED DUP3 PUSH2 0x4A5 JUMPI PUSH1 0x0 PUSH2 0x4BF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID 0x4E PUSH10 0x6B69466565546F536574 PUSH21 0x65723A3A7365744F776E65723A206E6F7420616C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A746F67 PUSH8 0x6C65466565733A20 PUSH15 0x6F742074696D65207965744E696B69 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A3A736574466565546F5365747465723A206E PUSH16 0x7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x5365747465723A3A746F67676C654665 PUSH6 0x733A206E6F74 KECCAK256 PUSH2 0x6C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A736574 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A206E6F742074696D6520796574A265627A7A PUSH19 0x315820D4832595798419195182E2D722BA1862 0xD6 SWAP2 DELEGATECALL BLOCKHASH PUSH14 0xDA2E0F065F8BB64D92B3E664736F PUSH13 0x634300051000324E696B694665 PUSH6 0x546F53657474 PUSH6 0x723A3A636F6E PUSH20 0x74727563746F723A2076657374696E67206D7573 PUSH21 0x20656E64206166746572206465706C6F796D656E74 ",
          "sourceMap": "149:1442:2:-;;;316:325;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:325:2;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;316:325:2;;;;;;;;;;;;;;;;;;;436:15;422:29;;414:105;;;;-1:-1:-1;;;414:105:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:7;:18;;-1:-1:-1;;;;;530:18:2;;;-1:-1:-1;;;;;;530:18:2;;;;;;;;559:24;;;;594:5;:14;;;;;;;;;;;;;;;619:5;:14;;;;;;;;;;;149:1442;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820d4832595798419195182e2d722ba1862d691f4406dda2e0f065f8bb64d92b3e664736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0xA69EA776 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15C JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x84A1931F EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF0 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x23D JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD ISZERO ISZERO PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x8A PUSH2 0x521 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x53E PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5E1 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x58D PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA2E74AF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA2E74AF6 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x564 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5B9 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF46901ED DUP3 PUSH2 0x4A5 JUMPI PUSH1 0x0 PUSH2 0x4BF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID 0x4E PUSH10 0x6B69466565546F536574 PUSH21 0x65723A3A7365744F776E65723A206E6F7420616C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A746F67 PUSH8 0x6C65466565733A20 PUSH15 0x6F742074696D65207965744E696B69 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A3A736574466565546F5365747465723A206E PUSH16 0x7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x5365747465723A3A746F67676C654665 PUSH6 0x733A206E6F74 KECCAK256 PUSH2 0x6C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A736574 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A206E6F742074696D6520796574A265627A7A PUSH19 0x315820D4832595798419195182E2D722BA1862 0xD6 SWAP2 DELEGATECALL BLOCKHASH PUSH14 0xDA2E0F065F8BB64D92B3E664736F PUSH13 0x63430005100032000000000000 ",
          "sourceMap": "149:1442:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:1442:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;699:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;699:155:2;;;;:::i;:::-;;229:22;;;:::i;:::-;;;;;;;;;;;;;;;;287:20;;;:::i;919:313::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;919:313:2;;;;:::i;1295:293::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1295:293:2;;;;:::i;200:22::-;;;:::i;258:20::-;;;;;;:::o;699:155::-;773:5;;;;759:10;:19;751:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:5;:14;;;;;;;;;;;;;;;699:155::o;229:22::-;;;;:::o;287:20::-;;;;;;:::o;919:313::-;1010:10;;991:15;:29;;983:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:5;;;;1089:10;:19;1081:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:7;;;1168:56;;;;;;1187:7;1168:56;;;;;;;;;1187:7;;;;;1168:42;;:56;;;;;;;;;;;1187:7;;1168:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1168:56:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1168:56:2;;;;919:313;:::o;1295:293::-;1369:10;;1350:15;:29;;1342:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1458:5;;;;1444:10;:19;1436:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1538:7;;;;1519:36;1556:2;:23;;1577:1;1556:23;;;1561:5;;;;1556:23;1519:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;200:22:2;;;;;;:::o"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeTo_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeToSetter_\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"on\",\"type\":\"bool\"}],\"name\":\"toggleFees\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiFeeToSetter.sol\":\"NikiFeeToSetter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiFeeToSetter.sol\":{\"keccak256\":\"0x2e4540e7069c3f6b54e2c265fbc26cecacf1a66ad3d0568f445d4ab5980e0abc\",\"urls\":[\"bzz-raw://339b49ec16be050a32bda6488db9bdc3eb00560f38f72ccb0b3fa4ce0d79910a\",\"dweb:/ipfs/QmZWqdZuhBvbgwUZ71Aztta3WbPyUYSRUjLfz8NTGWkUby\"]}},\"version\":1}",
      "bytecode": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820d4832595798419195182e2d722ba1862d691f4406dda2e0f065f8bb64d92b3e664736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
      "bin": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820d4832595798419195182e2d722ba1862d691f4406dda2e0f065f8bb64d92b3e664736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
      "bin-runtime": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820d4832595798419195182e2d722ba1862d691f4406dda2e0f065f8bb64d92b3e664736f6c63430005100032",
      "srcmap": "149:1442:2:-;;;316:325;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:325:2;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;316:325:2;;;;;;;;;;;;;;;;;;;436:15;422:29;;414:105;;;;-1:-1:-1;;;414:105:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:7;:18;;-1:-1:-1;;;;;530:18:2;;;-1:-1:-1;;;;;;530:18:2;;;;;;;;559:24;;;;594:5;:14;;;;;;;;;;;;;;;619:5;:14;;;;;;;;;;;149:1442;;;;;;",
      "srcmap-runtime": "149:1442:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:1442:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;699:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;699:155:2;;;;:::i;:::-;;229:22;;;:::i;:::-;;;;;;;;;;;;;;;;287:20;;;:::i;919:313::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;919:313:2;;;;:::i;1295:293::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1295:293:2;;;;:::i;200:22::-;;;:::i;258:20::-;;;;;;:::o;699:155::-;773:5;;;;759:10;:19;751:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:5;:14;;;;;;;;;;;;;;;699:155::o;229:22::-;;;;:::o;287:20::-;;;;;;:::o;919:313::-;1010:10;;991:15;:29;;983:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:5;;;;1089:10;:19;1081:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:7;;;1168:56;;;;;;1187:7;1168:56;;;;;;;;;1187:7;;;;;1168:42;;:56;;;;;;;;;;;1187:7;;1168:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1168:56:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1168:56:2;;;;919:313;:::o;1295:293::-;1369:10;;1350:15;:29;;1342:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1458:5;;;;1444:10;:19;1436:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1538:7;;;;1519:36;1556:2;:23;;1577:1;1556:23;;;1561:5;;;;1556:23;1519:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;200:22:2;;;;;;:::o"
    },
    "contracts/NikiGovernorAlpha.sol:NikiGovernorAlpha": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "timelock_",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "Niki_",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "ProposalCanceled",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "address[]",
              "name": "targets",
              "type": "address[]"
            },
            {
              "indexed": false,
              "internalType": "uint256[]",
              "name": "values",
              "type": "uint256[]"
            },
            {
              "indexed": false,
              "internalType": "string[]",
              "name": "signatures",
              "type": "string[]"
            },
            {
              "indexed": false,
              "internalType": "bytes[]",
              "name": "calldatas",
              "type": "bytes[]"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "startBlock",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "endBlock",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "string",
              "name": "description",
              "type": "string"
            }
          ],
          "name": "ProposalCreated",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "name": "ProposalExecuted",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "ProposalQueued",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "voter",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bool",
              "name": "support",
              "type": "bool"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "votes",
              "type": "uint256"
            }
          ],
          "name": "VoteCast",
          "type": "event"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "BALLOT_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "DOMAIN_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "Niki",
          "outputs": [
            {
              "internalType": "contract NikiInterface",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            }
          ],
          "name": "cancel",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "support",
              "type": "bool"
            }
          ],
          "name": "castVote",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "support",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "name": "castVoteBySig",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            }
          ],
          "name": "execute",
          "outputs": [],
          "payable": true,
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            }
          ],
          "name": "getActions",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "targets",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "values",
              "type": "uint256[]"
            },
            {
              "internalType": "string[]",
              "name": "signatures",
              "type": "string[]"
            },
            {
              "internalType": "bytes[]",
              "name": "calldatas",
              "type": "bytes[]"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "voter",
              "type": "address"
            }
          ],
          "name": "getReceipt",
          "outputs": [
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "hasVoted",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "support",
                  "type": "bool"
                },
                {
                  "internalType": "uint96",
                  "name": "votes",
                  "type": "uint96"
                }
              ],
              "internalType": "struct NikiGovernorAlpha.Receipt",
              "name": "",
              "type": "tuple"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "latestProposalIds",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "name",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "proposalCount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "proposalMaxOperations",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "proposalThreshold",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "name": "proposals",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "startBlock",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "endBlock",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "forVotes",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "againstVotes",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "canceled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "executed",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address[]",
              "name": "targets",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "values",
              "type": "uint256[]"
            },
            {
              "internalType": "string[]",
              "name": "signatures",
              "type": "string[]"
            },
            {
              "internalType": "bytes[]",
              "name": "calldatas",
              "type": "bytes[]"
            },
            {
              "internalType": "string",
              "name": "description",
              "type": "string"
            }
          ],
          "name": "propose",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            }
          ],
          "name": "queue",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "quorumVotes",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "proposalId",
              "type": "uint256"
            }
          ],
          "name": "state",
          "outputs": [
            {
              "internalType": "enum NikiGovernorAlpha.ProposalState",
              "name": "",
              "type": "uint8"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "timelock",
          "outputs": [
            {
              "internalType": "contract NikiTimelockInterface",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "votingDelay",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "pure",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "votingPeriod",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "pure",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "60806040523480156200001157600080fd5b50604051620039db380380620039db833981016040819052620000349162000079565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000e4565b80516200007381620000ca565b92915050565b600080604083850312156200008d57600080fd5b60006200009b858562000066565b9250506020620000ae8582860162000066565b9150509250929050565b60006001600160a01b03821662000073565b620000d581620000b8565b8114620000e157600080fd5b50565b6138e780620000f46000396000f3fe6080604052600436106101755760003560e01c80634634c61f116100cb578063da35c6641161007f578063deaaa7cc11610059578063deaaa7cc146103d0578063e23a9a52146103e5578063fe0d94c11461041257610175565b8063da35c6641461037b578063da95691a14610390578063ddf0b009146103b057610175565b8063b58131b0116100b0578063b58131b01461032f578063d30c0b9114610344578063d33219b41461036657610175565b80634634c61f146102fa5780637bdbe4d01461031a57610175565b806320606b701161012d5780633932abb1116101075780633932abb1146102985780633e4f49e6146102ad57806340e58ee5146102da57610175565b806320606b701461023e57806324bc1a6414610253578063328dd9821461026857610175565b806306fdde031161015e57806306fdde03146101da57806315373e3d146101fc57806317977c611461021e57610175565b8063013cf08b1461017a57806302a251a3146101b8575b600080fd5b34801561018657600080fd5b5061019a6101953660046125d0565b610425565b6040516101af9998979695949392919061364f565b60405180910390f35b3480156101c457600080fd5b506101cd61048b565b6040516101af91906133bc565b3480156101e657600080fd5b506101ef610492565b6040516101af9190613478565b34801561020857600080fd5b5061021c610217366004612628565b6104cb565b005b34801561022a57600080fd5b506101cd61023936600461244d565b6104da565b34801561024a57600080fd5b506101cd6104ec565b34801561025f57600080fd5b506101cd610503565b34801561027457600080fd5b506102886102833660046125d0565b610513565b6040516101af949392919061336f565b3480156102a457600080fd5b506101cd6107eb565b3480156102b957600080fd5b506102cd6102c83660046125d0565b6107f0565b6040516101af919061346a565b3480156102e657600080fd5b5061021c6102f53660046125d0565b6109bb565b34801561030657600080fd5b5061021c610315366004612658565b610c8d565b34801561032657600080fd5b506101cd610e6f565b34801561033b57600080fd5b506101cd610e74565b34801561035057600080fd5b50610359610e83565b6040516101af919061345c565b34801561037257600080fd5b50610359610e9f565b34801561038757600080fd5b506101cd610ebb565b34801561039c57600080fd5b506101cd6103ab366004612473565b610ec1565b3480156103bc57600080fd5b5061021c6103cb3660046125d0565b6113d2565b3480156103dc57600080fd5b506101cd6116c9565b3480156103f157600080fd5b506104056104003660046125ee565b6116d5565b6040516101af9190613599565b61021c6104203660046125d0565b611756565b6003602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b619d805b90565b6040518060400160405280601381526020017f4e696b6920476f7665726e6f7220416c7068610000000000000000000000000081525081565b6104d633838361198a565b5050565b60046020526000908152604090205481565b6040516104f890613260565b604051809103902081565b6b014adf4b7320334b9000000090565b606080606080600060036000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156105a257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610577575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156105f457602002820191906000526020600020905b8154815260200190600101908083116105e0575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156106e55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152602001906001019061061c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156107d55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b50505050508152602001906001019061070c565b5050505090509450945094509450509193509193565b600190565b600081600254101580156108045750600082115b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613489565b60405180910390fd5b6000828152600360205260409020600b81015460ff16156108685760029150506109b6565b8060070154431161087d5760009150506109b6565b806008015443116108925760019150506109b6565b80600a015481600901541115806108b357506108ac610503565b8160090154105b156108c25760039150506109b6565b60028101546108d55760049150506109b6565b600b810154610100900460ff16156108f15760079150506109b6565b6002810154600054604080517fc1a287e200000000000000000000000000000000000000000000000000000000815290516109a0939273ffffffffffffffffffffffffffffffffffffffff169163c1a287e2916004808301926020929190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b919081019061257d565b611c15565b42106109b05760069150506109b6565b60059150505b919050565b60006109c6826107f0565b905060078160078111156109d657fe5b1415610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134c9565b6000828152600360205260409020610a24610e74565b600180548382015473ffffffffffffffffffffffffffffffffffffffff9182169263782d6fe19290911690610a5a904390611c5b565b6040518363ffffffff1660e01b8152600401610a77929190613291565b60206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac791908101906126c0565b6bffffffffffffffffffffffff1610610b0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613519565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560005b6003820154811015610c505760005460038301805473ffffffffffffffffffffffffffffffffffffffff9092169163591fcdfe919084908110610b7b57fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff9092169185908110610bb057fe5b9060005260206000200154856005018581548110610bca57fe5b90600052602060002001866006018681548110610be357fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c1295949392919061332e565b600060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505060019092019150610b3c9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610c8091906133bc565b60405180910390a1505050565b6000604051610c9b90613260565b60408051918290038220828201909152601382527f4e696b6920476f7665726e6f7220416c706861000000000000000000000000006020909201919091527f6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207610d02611c9d565b30604051602001610d1694939291906133ca565b6040516020818303038152906040528051906020012090506000604051610d3c9061326b565b604051908190038120610d5591899089906020016133ff565b60405160208183030381529060405280519060200120905060008282604051602001610d8292919061322f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dbf9493929190613427565b6020604051602081039080840390855afa158015610de1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134a9565b610e64818a8a61198a565b505050505050505050565b600a90565b6a52b7d2dcc80cd2e400000090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610ecb610e74565b6001805473ffffffffffffffffffffffffffffffffffffffff169063782d6fe1903390610ef9904390611c5b565b6040518363ffffffff1660e01b8152600401610f16929190613276565b60206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6691908101906126c0565b6bffffffffffffffffffffffff1611610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134b9565b84518651148015610fbd575083518651145b8015610fca575082518651145b611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613579565b8551611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134f9565b611040610e6f565b8651111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613569565b33600090815260046020526040902054801561112b57600061109b826107f0565b905060018160078111156110ab57fe5b14156110e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134e9565b60008160078111156110f157fe5b1415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134d9565b505b60006111394361099b6107eb565b905060006111498261099b61048b565b600280546001019055905061115c611e4d565b604051806101a0016040528060025481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060036000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019080519060200190611266929190611ecf565b5060808201518051611282916004840191602090910190611f59565b5060a0820151805161129e916005840191602090910190611fa0565b5060c082015180516112ba916006840191602090910190611ff9565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050806000015160046000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516113ba999897969594939291906135a7565b60405180910390a15193505050505b95945050505050565b60046113dd826107f0565b60078111156113e857fe5b1461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613559565b6000818152600360209081526040808320835482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949361149e93429373ffffffffffffffffffffffffffffffffffffffff90931692636a42b8f892600480840193919291829003018186803b15801561096357600080fd5b905060005b600383015481101561168f576116878360030182815481106114c157fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff90921691849081106114f657fe5b906000526020600020015485600501848154811061151057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050508660060185815481106115d057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018716150201909416939093049283018590048502810185019091528181529283018282801561167c5780601f106116515761010080835404028352916020019161167c565b820191906000526020600020905b81548152906001019060200180831161165f57829003601f168201915b505050505086611ca1565b6001016114a3565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610c8090859084906136d5565b6040516104f89061326b565b6116dd612052565b50600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046bffffffffffffffffffffffff16918101919091525b92915050565b6005611761826107f0565b600781111561176c57fe5b146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613499565b6000818152600360205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055905b600382015481101561194e5760005460048301805473ffffffffffffffffffffffffffffffffffffffff90921691630825f38f91908490811061182057fe5b906000526020600020015484600301848154811061183a57fe5b60009182526020909120015460048601805473ffffffffffffffffffffffffffffffffffffffff909216918690811061186f57fe5b906000526020600020015486600501868154811061188957fe5b906000526020600020018760060187815481106118a257fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118d195949392919061332e565b6000604051808303818588803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611945919081019061259b565b506001016117e1565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161197e91906133bc565b60405180910390a15050565b6001611995836107f0565b60078111156119a057fe5b146119d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613539565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452600c8101909252909120805460ff1615611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613549565b60015460078301546040517f782d6fe100000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff169163782d6fe191611aa3918a91600401613291565b60206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611af391908101906126c0565b90508315611b2157611b178360090154826bffffffffffffffffffffffff16611c15565b6009840155611b43565b611b3d83600a0154826bffffffffffffffffffffffff16611c15565b600a8401555b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010085151502177fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff16620100006bffffffffffffffffffffffff8316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611c0590889088908890869061329f565b60405180910390a1505050505050565b600082820183811015611c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613509565b9392505050565b600082821115611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613589565b50900390565b4690565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091169063f2b0653790611cdc90889088908890889088906020016132d4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611d0e91906133bc565b60206040518083038186803b158015611d2657600080fd5b505afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5e919081019061255f565b15611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613529565b6000546040517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f90190611df390889088908890889088906004016132d4565b602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e45919081019061257d565b505050505050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611f49579160200282015b82811115611f4957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190611eef565b50611f55929150612072565b5090565b828054828255906000526020600020908101928215611f94579160200282015b82811115611f94578251825591602001919060010190611f79565b50611f559291506120ae565b828054828255906000526020600020908101928215611fed579160200282015b82811115611fed5782518051611fdd9184916020909101906120c8565b5091602001919060010190611fc0565b50611f55929150612135565b828054828255906000526020600020908101928215612046579160200282015b8281111561204657825180516120369184916020909101906120c8565b5091602001919060010190612019565b50611f55929150612158565b604080516060810182526000808252602082018190529181019190915290565b61048f91905b80821115611f555780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101612078565b61048f91905b80821115611f5557600081556001016120b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210957805160ff1916838001178555611f94565b82800160010185558215611f945791820182811115611f94578251825591602001919060010190611f79565b61048f91905b80821115611f5557600061214f828261217b565b5060010161213b565b61048f91905b80821115611f55576000612172828261217b565b5060010161215e565b50805460018160011615610100020316600290046000825580601f106121a157506121bf565b601f0160209004906000526020600020908101906121bf91906120ae565b50565b80356117508161386c565b600082601f8301126121de57600080fd5b81356121f16121ec8261370a565b6136e3565b9150818183526020840193506020810190508385602084028201111561221657600080fd5b60005b83811015612242578161222c88826121c2565b8452506020928301929190910190600101612219565b5050505092915050565b600082601f83011261225d57600080fd5b813561226b6121ec8261370a565b81815260209384019390925082018360005b83811015612242578135860161229388826123a2565b845250602092830192919091019060010161227d565b600082601f8301126122ba57600080fd5b81356122c86121ec8261370a565b81815260209384019390925082018360005b8381101561224257813586016122f088826123a2565b84525060209283019291909101906001016122da565b600082601f83011261231757600080fd5b81356123256121ec8261370a565b9150818183526020840193506020810190508385602084028201111561234a57600080fd5b60005b838110156122425781612360888261238c565b845250602092830192919091019060010161234d565b803561175081613880565b805161175081613880565b803561175081613889565b805161175081613889565b600082601f8301126123b357600080fd5b81356123c16121ec8261372b565b915080825260208301602083018583830111156123dd57600080fd5b6123e8838284613802565b50505092915050565b600082601f83011261240257600080fd5b81516124106121ec8261372b565b9150808252602083016020830185838301111561242c57600080fd5b6123e883828461380e565b803561175081613892565b80516117508161389b565b60006020828403121561245f57600080fd5b600061246b84846121c2565b949350505050565b600080600080600060a0868803121561248b57600080fd5b853567ffffffffffffffff8111156124a257600080fd5b6124ae888289016121cd565b955050602086013567ffffffffffffffff8111156124cb57600080fd5b6124d788828901612306565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016122a9565b935050606086013567ffffffffffffffff81111561251d57600080fd5b6125298882890161224c565b925050608086013567ffffffffffffffff81111561254657600080fd5b612552888289016123a2565b9150509295509295909350565b60006020828403121561257157600080fd5b600061246b8484612381565b60006020828403121561258f57600080fd5b600061246b8484612397565b6000602082840312156125ad57600080fd5b815167ffffffffffffffff8111156125c457600080fd5b61246b848285016123f1565b6000602082840312156125e257600080fd5b600061246b848461238c565b6000806040838503121561260157600080fd5b600061260d858561238c565b925050602061261e858286016121c2565b9150509250929050565b6000806040838503121561263b57600080fd5b6000612647858561238c565b925050602061261e85828601612376565b600080600080600060a0868803121561267057600080fd5b600061267c888861238c565b955050602061268d88828901612376565b945050604061269e88828901612437565b93505060606126af8882890161238c565b92505060806125528882890161238c565b6000602082840312156126d257600080fd5b600061246b8484612442565b60006126ea8383612719565b505060200190565b6000611c5483836128bb565b60006126ea83836128a1565b612713816137da565b82525050565b61271381613790565b600061272d82613783565b6127378185613787565b935061274283613771565b8060005b8381101561277057815161275a88826126de565b975061276583613771565b925050600101612746565b509495945050505050565b600061278682613783565b6127908185613787565b9350836020820285016127a285613771565b8060005b858110156127dc57848403895281516127bf85826126f2565b94506127ca83613771565b60209a909a01999250506001016127a6565b5091979650505050505050565b60006127f482613783565b6127fe8185613787565b93508360208202850161281085613771565b8060005b858110156127dc578484038952815161282d85826126f2565b945061283883613771565b60209a909a0199925050600101612814565b600061285582613783565b61285f8185613787565b935061286a83613771565b8060005b8381101561277057815161288288826126fe565b975061288d83613771565b92505060010161286e565b6127138161379b565b6127138161048f565b6127136128b68261048f565b61048f565b60006128c682613783565b6128d08185613787565b93506128e081856020860161380e565b6128e98161383a565b9093019392505050565b600081546001811660008114612910576001811461295457612993565b607f60028304166129218187613787565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168152955050602085019250612993565b600282046129628187613787565b955061296d85613777565b60005b8281101561298c57815488820152600190910190602001612970565b8701945050505b505092915050565b612713816137e1565b612713816137ec565b60006129ba602d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c6981527f642070726f706f73616c20696400000000000000000000000000000000000000602082015260400192915050565b6000612a19604983613787565b7f4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f7081527f6f73616c2063616e206f6e6c792062652065786563757465642069662069742060208201527f6973207175657565640000000000000000000000000000000000000000000000604082015260600192915050565b6000612a9e6002836109b6565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000612ad7603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63617374566f7465427953696781527f3a20696e76616c6964207369676e617475726500000000000000000000000000602082015260400192915050565b6000612b36604383613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73657220766f7465732062656c6f772070726f706f73616c2074687265736860208201527f6f6c640000000000000000000000000000000000000000000000000000000000604082015260600192915050565b6000612bbb603a83613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f81527f742063616e63656c2065786563757465642070726f706f73616c000000000000602082015260400192915050565b6000612c1a605d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c72656164792070656e64696e672070726f706f73616c000000604082015260600192915050565b6000612c9f605c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c7265616479206163746976652070726f706f73616c00000000604082015260600192915050565b6000612d24603083613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d75737481527f2070726f7669646520616374696f6e7300000000000000000000000000000000602082015260400192915050565b6000612d83601183613787565b7f6164646974696f6e206f766572666c6f77000000000000000000000000000000815260200192915050565b6000612dbc6043836109b6565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000612e416027836109b6565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207381527f7570706f72742900000000000000000000000000000000000000000000000000602082015260270192915050565b6000612ea0603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f81527f7365722061626f7665207468726573686f6c6400000000000000000000000000602082015260400192915050565b6000612eff604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f71756575654f72526576657281527f743a2070726f706f73616c20616374696f6e20616c726561647920717565756560208201527f6420617420657461000000000000000000000000000000000000000000000000604082015260600192915050565b6000612f84602e83613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74696e6720697320636c6f736564000000000000000000000000000000000000602082015260400192915050565b6000612fe3603183613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74657220616c726561647920766f746564000000000000000000000000000000602082015260400192915050565b6000613042604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f7381527f616c2063616e206f6e6c7920626520717565756564206966206974206973207360208201527f7563636565646564000000000000000000000000000000000000000000000000604082015260600192915050565b60006130c7602c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f2081527f6d616e7920616374696f6e730000000000000000000000000000000000000000602082015260400192915050565b6000613126604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73616c2066756e6374696f6e20696e666f726d6174696f6e2061726974792060208201527f6d69736d61746368000000000000000000000000000000000000000000000000604082015260600192915050565b60006131ab601583613787565b7f7375627472616374696f6e20756e646572666c6f770000000000000000000000815260200192915050565b805160608301906131e88482612898565b5060208201516131fb6020850182612898565b50604082015161320e6040850182613226565b50505050565b612713816137c3565b612713816137f7565b612713816137c9565b600061323a82612a91565b915061324682856128aa565b60208201915061325682846128aa565b5060200192915050565b600061175082612daf565b600061175082612e34565b60408101613284828561270a565b611c5460208301846128a1565b604081016132848285612719565b608081016132ad8287612719565b6132ba60208301866128a1565b6132c76040830185612898565b6113c9606083018461321d565b60a081016132e28288612719565b6132ef60208301876128a1565b818103604083015261330181866128bb565b9050818103606083015261331581856128bb565b905061332460808301846128a1565b9695505050505050565b60a0810161333c8288612719565b61334960208301876128a1565b818103604083015261335b81866128f3565b9050818103606083015261331581856128f3565b608080825281016133808187612722565b90508181036020830152613394818661284a565b905081810360408301526133a881856127e9565b90508181036060830152613324818461277b565b6020810161175082846128a1565b608081016133d882876128a1565b6133e560208301866128a1565b6133f260408301856128a1565b6113c96060830184612719565b6060810161340d82866128a1565b61341a60208301856128a1565b61246b6040830184612898565b6080810161343582876128a1565b6134426020830186613214565b61344f60408301856128a1565b6113c960608301846128a1565b60208101611750828461299b565b6020810161175082846129a4565b60208082528101611c5481846128bb565b60208082528101611750816129ad565b6020808252810161175081612a0c565b6020808252810161175081612aca565b6020808252810161175081612b29565b6020808252810161175081612bae565b6020808252810161175081612c0d565b6020808252810161175081612c92565b6020808252810161175081612d17565b6020808252810161175081612d76565b6020808252810161175081612e93565b6020808252810161175081612ef2565b6020808252810161175081612f77565b6020808252810161175081612fd6565b6020808252810161175081613035565b60208082528101611750816130ba565b6020808252810161175081613119565b602080825281016117508161319e565b6060810161175082846131d7565b61012081016135b6828c6128a1565b6135c3602083018b61270a565b81810360408301526135d5818a612722565b905081810360608301526135e9818961284a565b905081810360808301526135fd81886127e9565b905081810360a0830152613611818761277b565b905061362060c08301866128a1565b61362d60e08301856128a1565b81810361010083015261364081846128bb565b9b9a5050505050505050505050565b610120810161365e828c6128a1565b61366b602083018b612719565b613678604083018a6128a1565b61368560608301896128a1565b61369260808301886128a1565b61369f60a08301876128a1565b6136ac60c08301866128a1565b6136b960e0830185612898565b6136c7610100830184612898565b9a9950505050505050505050565b6040810161328482856128a1565b60405181810167ffffffffffffffff8111828210171561370257600080fd5b604052919050565b600067ffffffffffffffff82111561372157600080fd5b5060209081020190565b600067ffffffffffffffff82111561374257600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611750826137aa565b151590565b806109b681613862565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b6000611750825b600061175082613790565b6000611750826137a0565b6000611750826137c9565b82818337506000910152565b60005b83811015613829578181015183820152602001613811565b8381111561320e5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600881106121bf57fe5b61387581613790565b81146121bf57600080fd5b6138758161379b565b6138758161048f565b613875816137c3565b613875816137c956fea365627a7a72315820026155fc5544e5f2875e2770628649b0cd78acc52d27edfc6cc12407af0d88c46c6578706572696d656e74616cf564736f6c63430005100040",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x39DB CODESIZE SUB DUP1 PUSH3 0x39DB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x79 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH3 0xE4 JUMP JUMPDEST DUP1 MLOAD PUSH3 0x73 DUP2 PUSH3 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9B DUP6 DUP6 PUSH3 0x66 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0xAE DUP6 DUP3 DUP7 ADD PUSH3 0x66 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x73 JUMP JUMPDEST PUSH3 0xD5 DUP2 PUSH3 0xB8 JUMP JUMPDEST DUP2 EQ PUSH3 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x38E7 DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x175 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4634C61F GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xDEAAA7CC GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x412 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x390 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x3B0 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0xB58131B0 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xD30C0B91 EQ PUSH2 0x344 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x366 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x4634C61F EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x31A JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x20606B70 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2DA JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x20606B70 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x268 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x15373E3D EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x21E JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x364F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x48B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0x492 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x2628 JUMP JUMPDEST PUSH2 0x4CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x4DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x4EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x503 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0x283 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x513 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x336F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x7EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x346A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x2F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x9BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2658 JUMP JUMPDEST PUSH2 0xC8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xE6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xE74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0xE83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x345C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0xE9F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xEBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x3AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2473 JUMP JUMPDEST PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x13D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x16C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x405 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EE JUMP JUMPDEST PUSH2 0x16D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x3599 JUMP JUMPDEST PUSH2 0x21C PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH1 0x8 DUP6 ADD SLOAD PUSH1 0x9 DUP7 ADD SLOAD PUSH1 0xA DUP8 ADD SLOAD PUSH1 0xB SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP10 JUMP JUMPDEST PUSH2 0x9D80 JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E696B6920476F7665726E6F7220416C70686100000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x4D6 CALLER DUP4 DUP4 PUSH2 0x198A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F8 SWAP1 PUSH2 0x3260 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH12 0x14ADF4B7320334B90000000 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 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 0x5A2 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x577 JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 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 0x5F4 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 0x5E0 JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x6E5 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x6D1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6A6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6D1 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 0x6B4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x61C JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x7D5 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x7C1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x796 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7C1 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 0x7A4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x70C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x804 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x843 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3489 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x868 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x87D JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x892 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x8B3 JUMPI POP PUSH2 0x8AC PUSH2 0x503 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x8D5 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8F1 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC1A287E200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x9A0 SWAP4 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0xC1A287E2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x977 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 PUSH2 0x99B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST PUSH2 0x1C15 JUMP JUMPDEST TIMESTAMP LT PUSH2 0x9B0 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C6 DUP3 PUSH2 0x7F0 JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x9D6 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xA0E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA24 PUSH2 0xE74 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH2 0xA5A SWAP1 NUMBER SWAP1 PUSH2 0x1C5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA77 SWAP3 SWAP2 SWAP1 PUSH2 0x3291 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA3 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 PUSH2 0xAC7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3519 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x591FCDFE SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0xB7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0xBB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xBCA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC12 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x332E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xB3C SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0xC80 SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xC9B SWAP1 PUSH2 0x3260 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x13 DUP3 MSTORE PUSH32 0x4E696B6920476F7665726E6F7220416C70686100000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6E37AB6475F317F9F1CAFC4AFCFECEFF7E1542BF3094DE735BE15E5010A79207 PUSH2 0xD02 PUSH2 0x1C9D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD16 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xD3C SWAP1 PUSH2 0x326B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xD55 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x33FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD82 SWAP3 SWAP2 SWAP1 PUSH2 0x322F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDBF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3427 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xE59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34A9 JUMP JUMPDEST PUSH2 0xE64 DUP2 DUP11 DUP11 PUSH2 0x198A JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SWAP1 JUMP JUMPDEST PUSH11 0x52B7D2DCC80CD2E4000000 SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB PUSH2 0xE74 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x782D6FE1 SWAP1 CALLER SWAP1 PUSH2 0xEF9 SWAP1 NUMBER SWAP1 PUSH2 0x1C5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF16 SWAP3 SWAP2 SWAP1 PUSH2 0x3276 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF42 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 PUSH2 0xF66 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34B9 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0xFBD JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0xFCA JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3579 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1038 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH2 0x1040 PUSH2 0xE6F JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x107A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3569 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x112B JUMPI PUSH1 0x0 PUSH2 0x109B DUP3 PUSH2 0x7F0 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10AB JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x10E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34E9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10F1 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1129 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34D9 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1139 NUMBER PUSH2 0x99B PUSH2 0x7EB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1149 DUP3 PUSH2 0x99B PUSH2 0x48B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x115C PUSH2 0x1E4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 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 ISZERO ISZERO DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1266 SWAP3 SWAP2 SWAP1 PUSH2 0x1ECF JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1282 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F59 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x129E SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1FA0 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x12BA SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1FF9 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD MLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x13BA SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH2 0x13DD DUP3 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x13E8 JUMPI INVALID JUMPDEST EQ PUSH2 0x141F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x149E SWAP4 TIMESTAMP SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x168F JUMPI PUSH2 0x1687 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14C1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x14F6 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1510 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x15BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x15BC 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 0x159F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x15D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x167C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1651 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x167C 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 0x165F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x1CA1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x14A3 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0xC80 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x36D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F8 SWAP1 PUSH2 0x326B JUMP JUMPDEST PUSH2 0x16DD PUSH2 0x2052 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE PUSH1 0xC ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE SWAP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP4 MSTORE PUSH2 0x100 DUP3 DIV AND ISZERO ISZERO SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1761 DUP3 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x176C JUMPI INVALID JUMPDEST EQ PUSH2 0x17A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3499 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x194E JUMPI PUSH1 0x0 SLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x825F38F SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1820 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x183A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x186F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1889 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x18A2 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18D1 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x332E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1945 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x259B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x17E1 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1995 DUP4 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x19A0 JUMPI INVALID JUMPDEST EQ PUSH2 0x19D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3539 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP5 MSTORE PUSH1 0xC DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3549 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x782D6FE100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x782D6FE1 SWAP2 PUSH2 0x1AA3 SWAP2 DUP11 SWAP2 PUSH1 0x4 ADD PUSH2 0x3291 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ABB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACF 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 PUSH2 0x1AF3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST SWAP1 POP DUP4 ISZERO PUSH2 0x1B21 JUMPI PUSH2 0x1B17 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x1B3D DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 SWAP1 SWAP2 AND OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 DUP6 ISZERO ISZERO MUL OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFF AND PUSH3 0x10000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND MUL OR DUP3 SSTORE PUSH1 0x40 MLOAD PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 SWAP1 PUSH2 0x1C05 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH2 0x329F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1C54 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3509 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1C97 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3589 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x1CDC SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D0E SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D3A 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 PUSH2 0x1D5E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x255F JUMP JUMPDEST ISZERO PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3529 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x1DF3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E21 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 PUSH2 0x1E45 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1F49 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1F49 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1EEF JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2072 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1F94 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1F94 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F79 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x20AE JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1FED JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1FED JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1FDD SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20C8 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1FC0 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2135 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2046 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2046 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2036 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20C8 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2019 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2158 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2078 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x20B4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x2109 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1F94 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1F94 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x1F94 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F79 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 PUSH2 0x214F DUP3 DUP3 PUSH2 0x217B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x213B JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 PUSH2 0x2172 DUP3 DUP3 PUSH2 0x217B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x215E JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21A1 JUMPI POP PUSH2 0x21BF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21BF SWAP2 SWAP1 PUSH2 0x20AE JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x386C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21F1 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST PUSH2 0x36E3 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 PUSH2 0x222C DUP9 DUP3 PUSH2 0x21C2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2219 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x225D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x226B PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2293 DUP9 DUP3 PUSH2 0x23A2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x227D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x22BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x22C8 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x22F0 DUP9 DUP3 PUSH2 0x23A2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x22DA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2325 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x234A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 PUSH2 0x2360 DUP9 DUP3 PUSH2 0x238C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x234D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3880 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x3880 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3889 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x3889 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x23B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x23C1 PUSH2 0x21EC DUP3 PUSH2 0x372B JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x23DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23E8 DUP4 DUP3 DUP5 PUSH2 0x3802 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2410 PUSH2 0x21EC DUP3 PUSH2 0x372B JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x242C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23E8 DUP4 DUP3 DUP5 PUSH2 0x380E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3892 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x389B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x245F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x21C2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x248B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AE DUP9 DUP3 DUP10 ADD PUSH2 0x21CD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24D7 DUP9 DUP3 DUP10 ADD PUSH2 0x2306 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2500 DUP9 DUP3 DUP10 ADD PUSH2 0x22A9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x251D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2529 DUP9 DUP3 DUP10 ADD PUSH2 0x224C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2552 DUP9 DUP3 DUP10 ADD PUSH2 0x23A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2571 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2381 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2397 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x246B DUP5 DUP3 DUP6 ADD PUSH2 0x23F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x238C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2601 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x260D DUP6 DUP6 PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x261E DUP6 DUP3 DUP7 ADD PUSH2 0x21C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x263B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2647 DUP6 DUP6 PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x261E DUP6 DUP3 DUP7 ADD PUSH2 0x2376 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x267C DUP9 DUP9 PUSH2 0x238C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x268D DUP9 DUP3 DUP10 ADD PUSH2 0x2376 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x269E DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x26AF DUP9 DUP3 DUP10 ADD PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2552 DUP9 DUP3 DUP10 ADD PUSH2 0x238C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2442 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26EA DUP4 DUP4 PUSH2 0x2719 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C54 DUP4 DUP4 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26EA DUP4 DUP4 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37DA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x3790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x272D DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x2737 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x2742 DUP4 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2770 JUMPI DUP2 MLOAD PUSH2 0x275A DUP9 DUP3 PUSH2 0x26DE JUMP JUMPDEST SWAP8 POP PUSH2 0x2765 DUP4 PUSH2 0x3771 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2746 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2786 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x2790 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x27A2 DUP6 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x27DC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x27BF DUP6 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP5 POP PUSH2 0x27CA DUP4 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x27A6 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F4 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x27FE DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2810 DUP6 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x27DC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x282D DUP6 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP5 POP PUSH2 0x2838 DUP4 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2855 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x285F DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x286A DUP4 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2770 JUMPI DUP2 MLOAD PUSH2 0x2882 DUP9 DUP3 PUSH2 0x26FE JUMP JUMPDEST SWAP8 POP PUSH2 0x288D DUP4 PUSH2 0x3771 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x286E JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x379B JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x2713 PUSH2 0x28B6 DUP3 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x48F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C6 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x28D0 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x28E0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x380E JUMP JUMPDEST PUSH2 0x28E9 DUP2 PUSH2 0x383A JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2910 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2954 JUMPI PUSH2 0x2993 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x2921 DUP2 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x2993 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x2962 DUP2 DUP8 PUSH2 0x3787 JUMP JUMPDEST SWAP6 POP PUSH2 0x296D DUP6 PUSH2 0x3777 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x298C JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2970 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37E1 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29BA PUSH1 0x2D DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A73746174653A20696E76616C69 DUP2 MSTORE PUSH32 0x642070726F706F73616C20696400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A19 PUSH1 0x49 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A657865637574653A2070726F70 DUP2 MSTORE PUSH32 0x6F73616C2063616E206F6E6C7920626520657865637574656420696620697420 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6973207175657565640000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9E PUSH1 0x2 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AD7 PUSH1 0x33 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63617374566F74654279536967 DUP2 MSTORE PUSH32 0x3A20696E76616C6964207369676E617475726500000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B36 PUSH1 0x43 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A2070726F70 DUP2 MSTORE PUSH32 0x6F73657220766F7465732062656C6F772070726F706F73616C20746872657368 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6F6C640000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BBB PUSH1 0x3A DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63616E63656C3A2063616E6E6F DUP2 MSTORE PUSH32 0x742063616E63656C2065786563757465642070726F706F73616C000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C1A PUSH1 0x5D DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206F6E6520 DUP2 MSTORE PUSH32 0x6C6976652070726F706F73616C207065722070726F706F7365722C20666F756E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420616E20616C72656164792070656E64696E672070726F706F73616C000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9F PUSH1 0x5C DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206F6E6520 DUP2 MSTORE PUSH32 0x6C6976652070726F706F73616C207065722070726F706F7365722C20666F756E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420616E20616C7265616479206163746976652070726F706F73616C00000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH1 0x30 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206D757374 DUP2 MSTORE PUSH32 0x2070726F7669646520616374696F6E7300000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D83 PUSH1 0x11 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x6164646974696F6E206F766572666C6F77000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DBC PUSH1 0x43 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6374290000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E41 PUSH1 0x27 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C626F6F6C2073 DUP2 MSTORE PUSH32 0x7570706F72742900000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x27 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EA0 PUSH1 0x33 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63616E63656C3A2070726F706F DUP2 MSTORE PUSH32 0x7365722061626F7665207468726573686F6C6400000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EFF PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F71756575654F725265766572 DUP2 MSTORE PUSH32 0x743A2070726F706F73616C20616374696F6E20616C7265616479207175657565 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420617420657461000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F84 PUSH1 0x2E DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F DUP2 MSTORE PUSH32 0x74696E6720697320636C6F736564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE3 PUSH1 0x31 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F DUP2 MSTORE PUSH32 0x74657220616C726561647920766F746564000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3042 PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A71756575653A2070726F706F73 DUP2 MSTORE PUSH32 0x616C2063616E206F6E6C79206265207175657565642069662069742069732073 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x7563636565646564000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30C7 PUSH1 0x2C DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A20746F6F20 DUP2 MSTORE PUSH32 0x6D616E7920616374696F6E730000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3126 PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A2070726F70 DUP2 MSTORE PUSH32 0x6F73616C2066756E6374696F6E20696E666F726D6174696F6E20617269747920 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31AB PUSH1 0x15 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x7375627472616374696F6E20756E646572666C6F770000000000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x31E8 DUP5 DUP3 PUSH2 0x2898 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x31FB PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2898 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x320E PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3226 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37C3 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37F7 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37C9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323A DUP3 PUSH2 0x2A91 JUMP JUMPDEST SWAP2 POP PUSH2 0x3246 DUP3 DUP6 PUSH2 0x28AA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3256 DUP3 DUP5 PUSH2 0x28AA JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x2E34 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x1C54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x32AD DUP3 DUP8 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x32BA PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x32C7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2898 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x321D JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x32E2 DUP3 DUP9 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x32EF PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3301 DUP2 DUP7 PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3315 DUP2 DUP6 PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP PUSH2 0x3324 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x333C DUP3 DUP9 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x3349 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x335B DUP2 DUP7 PUSH2 0x28F3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3315 DUP2 DUP6 PUSH2 0x28F3 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3380 DUP2 DUP8 PUSH2 0x2722 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3394 DUP2 DUP7 PUSH2 0x284A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x33A8 DUP2 DUP6 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3324 DUP2 DUP5 PUSH2 0x277B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x33D8 DUP3 DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x33E5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x33F2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x340D DUP3 DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x341A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x246B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2898 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3435 DUP3 DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3442 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x344F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x299B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x29A4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C54 DUP2 DUP5 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x29AD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2A0C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2ACA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2BAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2C0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2C92 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2D17 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2D76 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2E93 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2EF2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2FD6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x3035 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x30BA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x3119 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x31D7 JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x35B6 DUP3 DUP13 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x35C3 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x270A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x35D5 DUP2 DUP11 PUSH2 0x2722 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x35E9 DUP2 DUP10 PUSH2 0x284A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x35FD DUP2 DUP9 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x3611 DUP2 DUP8 PUSH2 0x277B JUMP JUMPDEST SWAP1 POP PUSH2 0x3620 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x362D PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x3640 DUP2 DUP5 PUSH2 0x28BB JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x365E DUP3 DUP13 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x366B PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x3678 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3685 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3692 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x369F PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x36AC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x36B9 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2898 JUMP JUMPDEST PUSH2 0x36C7 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x2898 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37AA JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x9B6 DUP2 PUSH2 0x3862 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x3790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37C9 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3829 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3811 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x320E JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x21BF JUMPI INVALID JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x3790 JUMP JUMPDEST DUP2 EQ PUSH2 0x21BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x379B JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x37C3 JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x37C9 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 MUL PUSH2 0x55FC SSTORE DIFFICULTY 0xE5 CALLCODE DUP8 0x5E 0x27 PUSH17 0x628649B0CD78ACC52D27EDFC6CC12407AF 0xD DUP9 0xC4 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ",
          "sourceMap": "63:13172:3:-;;;4950:153;8:9:-1;5:2;;;30:1;27;20:12;5:2;4950:153:3;;;;;;;;;;;;;;;;;;;;;5014:8;:43;;-1:-1:-1;;;;;5014:43:3;;;-1:-1:-1;;;;;;5014:43:3;;;;;;;;5068:27;;;;;;;;;;;63:13172;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:399;;;278:2;266:9;257:7;253:23;249:32;246:2;;;294:1;291;284:12;246:2;329:1;346:64;402:7;382:9;346:64;;;336:74;;308:108;447:2;465:64;521:7;512:6;501:9;497:22;465:64;;;455:74;;426:109;240:305;;;;;;552:91;;-1:-1;;;;;712:54;;614:24;695:76;778:117;847:24;865:5;847:24;;;840:5;837:35;827:2;;886:1;883;876:12;827:2;821:74;;;63:13172:3;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "6080604052600436106101755760003560e01c80634634c61f116100cb578063da35c6641161007f578063deaaa7cc11610059578063deaaa7cc146103d0578063e23a9a52146103e5578063fe0d94c11461041257610175565b8063da35c6641461037b578063da95691a14610390578063ddf0b009146103b057610175565b8063b58131b0116100b0578063b58131b01461032f578063d30c0b9114610344578063d33219b41461036657610175565b80634634c61f146102fa5780637bdbe4d01461031a57610175565b806320606b701161012d5780633932abb1116101075780633932abb1146102985780633e4f49e6146102ad57806340e58ee5146102da57610175565b806320606b701461023e57806324bc1a6414610253578063328dd9821461026857610175565b806306fdde031161015e57806306fdde03146101da57806315373e3d146101fc57806317977c611461021e57610175565b8063013cf08b1461017a57806302a251a3146101b8575b600080fd5b34801561018657600080fd5b5061019a6101953660046125d0565b610425565b6040516101af9998979695949392919061364f565b60405180910390f35b3480156101c457600080fd5b506101cd61048b565b6040516101af91906133bc565b3480156101e657600080fd5b506101ef610492565b6040516101af9190613478565b34801561020857600080fd5b5061021c610217366004612628565b6104cb565b005b34801561022a57600080fd5b506101cd61023936600461244d565b6104da565b34801561024a57600080fd5b506101cd6104ec565b34801561025f57600080fd5b506101cd610503565b34801561027457600080fd5b506102886102833660046125d0565b610513565b6040516101af949392919061336f565b3480156102a457600080fd5b506101cd6107eb565b3480156102b957600080fd5b506102cd6102c83660046125d0565b6107f0565b6040516101af919061346a565b3480156102e657600080fd5b5061021c6102f53660046125d0565b6109bb565b34801561030657600080fd5b5061021c610315366004612658565b610c8d565b34801561032657600080fd5b506101cd610e6f565b34801561033b57600080fd5b506101cd610e74565b34801561035057600080fd5b50610359610e83565b6040516101af919061345c565b34801561037257600080fd5b50610359610e9f565b34801561038757600080fd5b506101cd610ebb565b34801561039c57600080fd5b506101cd6103ab366004612473565b610ec1565b3480156103bc57600080fd5b5061021c6103cb3660046125d0565b6113d2565b3480156103dc57600080fd5b506101cd6116c9565b3480156103f157600080fd5b506104056104003660046125ee565b6116d5565b6040516101af9190613599565b61021c6104203660046125d0565b611756565b6003602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b619d805b90565b6040518060400160405280601381526020017f4e696b6920476f7665726e6f7220416c7068610000000000000000000000000081525081565b6104d633838361198a565b5050565b60046020526000908152604090205481565b6040516104f890613260565b604051809103902081565b6b014adf4b7320334b9000000090565b606080606080600060036000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156105a257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610577575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156105f457602002820191906000526020600020905b8154815260200190600101908083116105e0575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156106e55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152602001906001019061061c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156107d55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b50505050508152602001906001019061070c565b5050505090509450945094509450509193509193565b600190565b600081600254101580156108045750600082115b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613489565b60405180910390fd5b6000828152600360205260409020600b81015460ff16156108685760029150506109b6565b8060070154431161087d5760009150506109b6565b806008015443116108925760019150506109b6565b80600a015481600901541115806108b357506108ac610503565b8160090154105b156108c25760039150506109b6565b60028101546108d55760049150506109b6565b600b810154610100900460ff16156108f15760079150506109b6565b6002810154600054604080517fc1a287e200000000000000000000000000000000000000000000000000000000815290516109a0939273ffffffffffffffffffffffffffffffffffffffff169163c1a287e2916004808301926020929190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b919081019061257d565b611c15565b42106109b05760069150506109b6565b60059150505b919050565b60006109c6826107f0565b905060078160078111156109d657fe5b1415610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134c9565b6000828152600360205260409020610a24610e74565b600180548382015473ffffffffffffffffffffffffffffffffffffffff9182169263782d6fe19290911690610a5a904390611c5b565b6040518363ffffffff1660e01b8152600401610a77929190613291565b60206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac791908101906126c0565b6bffffffffffffffffffffffff1610610b0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613519565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560005b6003820154811015610c505760005460038301805473ffffffffffffffffffffffffffffffffffffffff9092169163591fcdfe919084908110610b7b57fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff9092169185908110610bb057fe5b9060005260206000200154856005018581548110610bca57fe5b90600052602060002001866006018681548110610be357fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c1295949392919061332e565b600060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505060019092019150610b3c9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610c8091906133bc565b60405180910390a1505050565b6000604051610c9b90613260565b60408051918290038220828201909152601382527f4e696b6920476f7665726e6f7220416c706861000000000000000000000000006020909201919091527f6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207610d02611c9d565b30604051602001610d1694939291906133ca565b6040516020818303038152906040528051906020012090506000604051610d3c9061326b565b604051908190038120610d5591899089906020016133ff565b60405160208183030381529060405280519060200120905060008282604051602001610d8292919061322f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dbf9493929190613427565b6020604051602081039080840390855afa158015610de1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134a9565b610e64818a8a61198a565b505050505050505050565b600a90565b6a52b7d2dcc80cd2e400000090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610ecb610e74565b6001805473ffffffffffffffffffffffffffffffffffffffff169063782d6fe1903390610ef9904390611c5b565b6040518363ffffffff1660e01b8152600401610f16929190613276565b60206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6691908101906126c0565b6bffffffffffffffffffffffff1611610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134b9565b84518651148015610fbd575083518651145b8015610fca575082518651145b611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613579565b8551611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134f9565b611040610e6f565b8651111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613569565b33600090815260046020526040902054801561112b57600061109b826107f0565b905060018160078111156110ab57fe5b14156110e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134e9565b60008160078111156110f157fe5b1415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134d9565b505b60006111394361099b6107eb565b905060006111498261099b61048b565b600280546001019055905061115c611e4d565b604051806101a0016040528060025481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060036000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019080519060200190611266929190611ecf565b5060808201518051611282916004840191602090910190611f59565b5060a0820151805161129e916005840191602090910190611fa0565b5060c082015180516112ba916006840191602090910190611ff9565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050806000015160046000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516113ba999897969594939291906135a7565b60405180910390a15193505050505b95945050505050565b60046113dd826107f0565b60078111156113e857fe5b1461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613559565b6000818152600360209081526040808320835482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949361149e93429373ffffffffffffffffffffffffffffffffffffffff90931692636a42b8f892600480840193919291829003018186803b15801561096357600080fd5b905060005b600383015481101561168f576116878360030182815481106114c157fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff90921691849081106114f657fe5b906000526020600020015485600501848154811061151057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050508660060185815481106115d057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018716150201909416939093049283018590048502810185019091528181529283018282801561167c5780601f106116515761010080835404028352916020019161167c565b820191906000526020600020905b81548152906001019060200180831161165f57829003601f168201915b505050505086611ca1565b6001016114a3565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610c8090859084906136d5565b6040516104f89061326b565b6116dd612052565b50600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046bffffffffffffffffffffffff16918101919091525b92915050565b6005611761826107f0565b600781111561176c57fe5b146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613499565b6000818152600360205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055905b600382015481101561194e5760005460048301805473ffffffffffffffffffffffffffffffffffffffff90921691630825f38f91908490811061182057fe5b906000526020600020015484600301848154811061183a57fe5b60009182526020909120015460048601805473ffffffffffffffffffffffffffffffffffffffff909216918690811061186f57fe5b906000526020600020015486600501868154811061188957fe5b906000526020600020018760060187815481106118a257fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118d195949392919061332e565b6000604051808303818588803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611945919081019061259b565b506001016117e1565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161197e91906133bc565b60405180910390a15050565b6001611995836107f0565b60078111156119a057fe5b146119d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613539565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452600c8101909252909120805460ff1615611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613549565b60015460078301546040517f782d6fe100000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff169163782d6fe191611aa3918a91600401613291565b60206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611af391908101906126c0565b90508315611b2157611b178360090154826bffffffffffffffffffffffff16611c15565b6009840155611b43565b611b3d83600a0154826bffffffffffffffffffffffff16611c15565b600a8401555b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010085151502177fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff16620100006bffffffffffffffffffffffff8316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611c0590889088908890869061329f565b60405180910390a1505050505050565b600082820183811015611c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613509565b9392505050565b600082821115611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613589565b50900390565b4690565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091169063f2b0653790611cdc90889088908890889088906020016132d4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611d0e91906133bc565b60206040518083038186803b158015611d2657600080fd5b505afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5e919081019061255f565b15611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613529565b6000546040517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f90190611df390889088908890889088906004016132d4565b602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e45919081019061257d565b505050505050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611f49579160200282015b82811115611f4957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190611eef565b50611f55929150612072565b5090565b828054828255906000526020600020908101928215611f94579160200282015b82811115611f94578251825591602001919060010190611f79565b50611f559291506120ae565b828054828255906000526020600020908101928215611fed579160200282015b82811115611fed5782518051611fdd9184916020909101906120c8565b5091602001919060010190611fc0565b50611f55929150612135565b828054828255906000526020600020908101928215612046579160200282015b8281111561204657825180516120369184916020909101906120c8565b5091602001919060010190612019565b50611f55929150612158565b604080516060810182526000808252602082018190529181019190915290565b61048f91905b80821115611f555780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101612078565b61048f91905b80821115611f5557600081556001016120b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210957805160ff1916838001178555611f94565b82800160010185558215611f945791820182811115611f94578251825591602001919060010190611f79565b61048f91905b80821115611f5557600061214f828261217b565b5060010161213b565b61048f91905b80821115611f55576000612172828261217b565b5060010161215e565b50805460018160011615610100020316600290046000825580601f106121a157506121bf565b601f0160209004906000526020600020908101906121bf91906120ae565b50565b80356117508161386c565b600082601f8301126121de57600080fd5b81356121f16121ec8261370a565b6136e3565b9150818183526020840193506020810190508385602084028201111561221657600080fd5b60005b83811015612242578161222c88826121c2565b8452506020928301929190910190600101612219565b5050505092915050565b600082601f83011261225d57600080fd5b813561226b6121ec8261370a565b81815260209384019390925082018360005b83811015612242578135860161229388826123a2565b845250602092830192919091019060010161227d565b600082601f8301126122ba57600080fd5b81356122c86121ec8261370a565b81815260209384019390925082018360005b8381101561224257813586016122f088826123a2565b84525060209283019291909101906001016122da565b600082601f83011261231757600080fd5b81356123256121ec8261370a565b9150818183526020840193506020810190508385602084028201111561234a57600080fd5b60005b838110156122425781612360888261238c565b845250602092830192919091019060010161234d565b803561175081613880565b805161175081613880565b803561175081613889565b805161175081613889565b600082601f8301126123b357600080fd5b81356123c16121ec8261372b565b915080825260208301602083018583830111156123dd57600080fd5b6123e8838284613802565b50505092915050565b600082601f83011261240257600080fd5b81516124106121ec8261372b565b9150808252602083016020830185838301111561242c57600080fd5b6123e883828461380e565b803561175081613892565b80516117508161389b565b60006020828403121561245f57600080fd5b600061246b84846121c2565b949350505050565b600080600080600060a0868803121561248b57600080fd5b853567ffffffffffffffff8111156124a257600080fd5b6124ae888289016121cd565b955050602086013567ffffffffffffffff8111156124cb57600080fd5b6124d788828901612306565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016122a9565b935050606086013567ffffffffffffffff81111561251d57600080fd5b6125298882890161224c565b925050608086013567ffffffffffffffff81111561254657600080fd5b612552888289016123a2565b9150509295509295909350565b60006020828403121561257157600080fd5b600061246b8484612381565b60006020828403121561258f57600080fd5b600061246b8484612397565b6000602082840312156125ad57600080fd5b815167ffffffffffffffff8111156125c457600080fd5b61246b848285016123f1565b6000602082840312156125e257600080fd5b600061246b848461238c565b6000806040838503121561260157600080fd5b600061260d858561238c565b925050602061261e858286016121c2565b9150509250929050565b6000806040838503121561263b57600080fd5b6000612647858561238c565b925050602061261e85828601612376565b600080600080600060a0868803121561267057600080fd5b600061267c888861238c565b955050602061268d88828901612376565b945050604061269e88828901612437565b93505060606126af8882890161238c565b92505060806125528882890161238c565b6000602082840312156126d257600080fd5b600061246b8484612442565b60006126ea8383612719565b505060200190565b6000611c5483836128bb565b60006126ea83836128a1565b612713816137da565b82525050565b61271381613790565b600061272d82613783565b6127378185613787565b935061274283613771565b8060005b8381101561277057815161275a88826126de565b975061276583613771565b925050600101612746565b509495945050505050565b600061278682613783565b6127908185613787565b9350836020820285016127a285613771565b8060005b858110156127dc57848403895281516127bf85826126f2565b94506127ca83613771565b60209a909a01999250506001016127a6565b5091979650505050505050565b60006127f482613783565b6127fe8185613787565b93508360208202850161281085613771565b8060005b858110156127dc578484038952815161282d85826126f2565b945061283883613771565b60209a909a0199925050600101612814565b600061285582613783565b61285f8185613787565b935061286a83613771565b8060005b8381101561277057815161288288826126fe565b975061288d83613771565b92505060010161286e565b6127138161379b565b6127138161048f565b6127136128b68261048f565b61048f565b60006128c682613783565b6128d08185613787565b93506128e081856020860161380e565b6128e98161383a565b9093019392505050565b600081546001811660008114612910576001811461295457612993565b607f60028304166129218187613787565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168152955050602085019250612993565b600282046129628187613787565b955061296d85613777565b60005b8281101561298c57815488820152600190910190602001612970565b8701945050505b505092915050565b612713816137e1565b612713816137ec565b60006129ba602d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c6981527f642070726f706f73616c20696400000000000000000000000000000000000000602082015260400192915050565b6000612a19604983613787565b7f4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f7081527f6f73616c2063616e206f6e6c792062652065786563757465642069662069742060208201527f6973207175657565640000000000000000000000000000000000000000000000604082015260600192915050565b6000612a9e6002836109b6565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000612ad7603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63617374566f7465427953696781527f3a20696e76616c6964207369676e617475726500000000000000000000000000602082015260400192915050565b6000612b36604383613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73657220766f7465732062656c6f772070726f706f73616c2074687265736860208201527f6f6c640000000000000000000000000000000000000000000000000000000000604082015260600192915050565b6000612bbb603a83613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f81527f742063616e63656c2065786563757465642070726f706f73616c000000000000602082015260400192915050565b6000612c1a605d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c72656164792070656e64696e672070726f706f73616c000000604082015260600192915050565b6000612c9f605c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c7265616479206163746976652070726f706f73616c00000000604082015260600192915050565b6000612d24603083613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d75737481527f2070726f7669646520616374696f6e7300000000000000000000000000000000602082015260400192915050565b6000612d83601183613787565b7f6164646974696f6e206f766572666c6f77000000000000000000000000000000815260200192915050565b6000612dbc6043836109b6565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000612e416027836109b6565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207381527f7570706f72742900000000000000000000000000000000000000000000000000602082015260270192915050565b6000612ea0603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f81527f7365722061626f7665207468726573686f6c6400000000000000000000000000602082015260400192915050565b6000612eff604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f71756575654f72526576657281527f743a2070726f706f73616c20616374696f6e20616c726561647920717565756560208201527f6420617420657461000000000000000000000000000000000000000000000000604082015260600192915050565b6000612f84602e83613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74696e6720697320636c6f736564000000000000000000000000000000000000602082015260400192915050565b6000612fe3603183613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74657220616c726561647920766f746564000000000000000000000000000000602082015260400192915050565b6000613042604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f7381527f616c2063616e206f6e6c7920626520717565756564206966206974206973207360208201527f7563636565646564000000000000000000000000000000000000000000000000604082015260600192915050565b60006130c7602c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f2081527f6d616e7920616374696f6e730000000000000000000000000000000000000000602082015260400192915050565b6000613126604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73616c2066756e6374696f6e20696e666f726d6174696f6e2061726974792060208201527f6d69736d61746368000000000000000000000000000000000000000000000000604082015260600192915050565b60006131ab601583613787565b7f7375627472616374696f6e20756e646572666c6f770000000000000000000000815260200192915050565b805160608301906131e88482612898565b5060208201516131fb6020850182612898565b50604082015161320e6040850182613226565b50505050565b612713816137c3565b612713816137f7565b612713816137c9565b600061323a82612a91565b915061324682856128aa565b60208201915061325682846128aa565b5060200192915050565b600061175082612daf565b600061175082612e34565b60408101613284828561270a565b611c5460208301846128a1565b604081016132848285612719565b608081016132ad8287612719565b6132ba60208301866128a1565b6132c76040830185612898565b6113c9606083018461321d565b60a081016132e28288612719565b6132ef60208301876128a1565b818103604083015261330181866128bb565b9050818103606083015261331581856128bb565b905061332460808301846128a1565b9695505050505050565b60a0810161333c8288612719565b61334960208301876128a1565b818103604083015261335b81866128f3565b9050818103606083015261331581856128f3565b608080825281016133808187612722565b90508181036020830152613394818661284a565b905081810360408301526133a881856127e9565b90508181036060830152613324818461277b565b6020810161175082846128a1565b608081016133d882876128a1565b6133e560208301866128a1565b6133f260408301856128a1565b6113c96060830184612719565b6060810161340d82866128a1565b61341a60208301856128a1565b61246b6040830184612898565b6080810161343582876128a1565b6134426020830186613214565b61344f60408301856128a1565b6113c960608301846128a1565b60208101611750828461299b565b6020810161175082846129a4565b60208082528101611c5481846128bb565b60208082528101611750816129ad565b6020808252810161175081612a0c565b6020808252810161175081612aca565b6020808252810161175081612b29565b6020808252810161175081612bae565b6020808252810161175081612c0d565b6020808252810161175081612c92565b6020808252810161175081612d17565b6020808252810161175081612d76565b6020808252810161175081612e93565b6020808252810161175081612ef2565b6020808252810161175081612f77565b6020808252810161175081612fd6565b6020808252810161175081613035565b60208082528101611750816130ba565b6020808252810161175081613119565b602080825281016117508161319e565b6060810161175082846131d7565b61012081016135b6828c6128a1565b6135c3602083018b61270a565b81810360408301526135d5818a612722565b905081810360608301526135e9818961284a565b905081810360808301526135fd81886127e9565b905081810360a0830152613611818761277b565b905061362060c08301866128a1565b61362d60e08301856128a1565b81810361010083015261364081846128bb565b9b9a5050505050505050505050565b610120810161365e828c6128a1565b61366b602083018b612719565b613678604083018a6128a1565b61368560608301896128a1565b61369260808301886128a1565b61369f60a08301876128a1565b6136ac60c08301866128a1565b6136b960e0830185612898565b6136c7610100830184612898565b9a9950505050505050505050565b6040810161328482856128a1565b60405181810167ffffffffffffffff8111828210171561370257600080fd5b604052919050565b600067ffffffffffffffff82111561372157600080fd5b5060209081020190565b600067ffffffffffffffff82111561374257600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611750826137aa565b151590565b806109b681613862565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b6000611750825b600061175082613790565b6000611750826137a0565b6000611750826137c9565b82818337506000910152565b60005b83811015613829578181015183820152602001613811565b8381111561320e5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600881106121bf57fe5b61387581613790565b81146121bf57600080fd5b6138758161379b565b6138758161048f565b613875816137c3565b613875816137c956fea365627a7a72315820026155fc5544e5f2875e2770628649b0cd78acc52d27edfc6cc12407af0d88c46c6578706572696d656e74616cf564736f6c63430005100040",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x175 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4634C61F GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xDEAAA7CC GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x412 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x390 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x3B0 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0xB58131B0 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xD30C0B91 EQ PUSH2 0x344 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x366 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x4634C61F EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x31A JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x20606B70 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2DA JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x20606B70 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x268 JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x15373E3D EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x21E JUMPI PUSH2 0x175 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x364F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x48B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EF PUSH2 0x492 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x3478 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x2628 JUMP JUMPDEST PUSH2 0x4CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x4DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x4EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x503 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x288 PUSH2 0x283 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x513 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x336F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x7EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x346A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x2F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x9BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2658 JUMP JUMPDEST PUSH2 0xC8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xE6F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xE74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0xE83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x345C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x359 PUSH2 0xE9F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0xEBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x3AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2473 JUMP JUMPDEST PUSH2 0xEC1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x13D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CD PUSH2 0x16C9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x405 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EE JUMP JUMPDEST PUSH2 0x16D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x3599 JUMP JUMPDEST PUSH2 0x21C PUSH2 0x420 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D0 JUMP JUMPDEST PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH1 0x8 DUP6 ADD SLOAD PUSH1 0x9 DUP7 ADD SLOAD PUSH1 0xA DUP8 ADD SLOAD PUSH1 0xB SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP10 JUMP JUMPDEST PUSH2 0x9D80 JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4E696B6920476F7665726E6F7220416C70686100000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x4D6 CALLER DUP4 DUP4 PUSH2 0x198A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F8 SWAP1 PUSH2 0x3260 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH12 0x14ADF4B7320334B90000000 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 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 0x5A2 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x577 JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 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 0x5F4 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 0x5E0 JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x6E5 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x6D1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6A6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6D1 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 0x6B4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x61C JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x7D5 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x7C1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x796 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7C1 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 0x7A4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x70C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x804 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x843 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3489 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x868 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x87D JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x892 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x8B3 JUMPI POP PUSH2 0x8AC PUSH2 0x503 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x8D5 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8F1 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xC1A287E200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x9A0 SWAP4 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0xC1A287E2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x977 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 PUSH2 0x99B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST PUSH2 0x1C15 JUMP JUMPDEST TIMESTAMP LT PUSH2 0x9B0 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C6 DUP3 PUSH2 0x7F0 JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x9D6 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xA0E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA24 PUSH2 0xE74 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH2 0xA5A SWAP1 NUMBER SWAP1 PUSH2 0x1C5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA77 SWAP3 SWAP2 SWAP1 PUSH2 0x3291 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA3 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 PUSH2 0xAC7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3519 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0xC50 JUMPI PUSH1 0x0 SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x591FCDFE SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0xB7B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0xBB0 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xBCA JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xBE3 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC12 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x332E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xB3C SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0xC80 SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xC9B SWAP1 PUSH2 0x3260 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x13 DUP3 MSTORE PUSH32 0x4E696B6920476F7665726E6F7220416C70686100000000000000000000000000 PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6E37AB6475F317F9F1CAFC4AFCFECEFF7E1542BF3094DE735BE15E5010A79207 PUSH2 0xD02 PUSH2 0x1C9D JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD16 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xD3C SWAP1 PUSH2 0x326B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xD55 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x33FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD82 SWAP3 SWAP2 SWAP1 PUSH2 0x322F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDBF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3427 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xE59 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34A9 JUMP JUMPDEST PUSH2 0xE64 DUP2 DUP11 DUP11 PUSH2 0x198A JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SWAP1 JUMP JUMPDEST PUSH11 0x52B7D2DCC80CD2E4000000 SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB PUSH2 0xE74 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x782D6FE1 SWAP1 CALLER SWAP1 PUSH2 0xEF9 SWAP1 NUMBER SWAP1 PUSH2 0x1C5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF16 SWAP3 SWAP2 SWAP1 PUSH2 0x3276 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF42 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 PUSH2 0xF66 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34B9 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0xFBD JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0xFCA JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3579 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1038 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH2 0x1040 PUSH2 0xE6F JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x107A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3569 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x112B JUMPI PUSH1 0x0 PUSH2 0x109B DUP3 PUSH2 0x7F0 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10AB JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x10E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34E9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10F1 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1129 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x34D9 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1139 NUMBER PUSH2 0x99B PUSH2 0x7EB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1149 DUP3 PUSH2 0x99B PUSH2 0x48B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x115C PUSH2 0x1E4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 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 ISZERO ISZERO DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1266 SWAP3 SWAP2 SWAP1 PUSH2 0x1ECF JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1282 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F59 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x129E SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1FA0 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x12BA SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1FF9 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD MLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x13BA SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH2 0x13DD DUP3 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x13E8 JUMPI INVALID JUMPDEST EQ PUSH2 0x141F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3559 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x149E SWAP4 TIMESTAMP SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x168F JUMPI PUSH2 0x1687 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x14C1 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x14F6 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1510 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x15BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x15BC 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 0x159F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x15D0 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x167C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1651 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x167C 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 0x165F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x1CA1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x14A3 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0xC80 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x36D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F8 SWAP1 PUSH2 0x326B JUMP JUMPDEST PUSH2 0x16DD PUSH2 0x2052 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE PUSH1 0xC ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE SWAP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP4 MSTORE PUSH2 0x100 DUP3 DIV AND ISZERO ISZERO SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1761 DUP3 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x176C JUMPI INVALID JUMPDEST EQ PUSH2 0x17A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3499 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x194E JUMPI PUSH1 0x0 SLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x825F38F SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1820 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x183A JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x186F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1889 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x18A2 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18D1 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x332E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1945 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x259B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x17E1 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1995 DUP4 PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x19A0 JUMPI INVALID JUMPDEST EQ PUSH2 0x19D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3539 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP5 MSTORE PUSH1 0xC DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3549 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x782D6FE100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x782D6FE1 SWAP2 PUSH2 0x1AA3 SWAP2 DUP11 SWAP2 PUSH1 0x4 ADD PUSH2 0x3291 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ABB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACF 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 PUSH2 0x1AF3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C0 JUMP JUMPDEST SWAP1 POP DUP4 ISZERO PUSH2 0x1B21 JUMPI PUSH2 0x1B17 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x1B3D DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 SWAP1 SWAP2 AND OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 DUP6 ISZERO ISZERO MUL OR PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFF AND PUSH3 0x10000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND MUL OR DUP3 SSTORE PUSH1 0x40 MLOAD PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 SWAP1 PUSH2 0x1C05 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH2 0x329F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1C54 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3509 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1C97 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3589 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x1CDC SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D0E SWAP2 SWAP1 PUSH2 0x33BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D3A 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 PUSH2 0x1D5E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x255F JUMP JUMPDEST ISZERO PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83A SWAP1 PUSH2 0x3529 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x1DF3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E21 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 PUSH2 0x1E45 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1F49 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1F49 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1EEF JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2072 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1F94 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1F94 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F79 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x20AE JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1FED JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1FED JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1FDD SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20C8 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1FC0 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2135 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2046 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2046 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2036 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20C8 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2019 JUMP JUMPDEST POP PUSH2 0x1F55 SWAP3 SWAP2 POP PUSH2 0x2158 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2078 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x20B4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x2109 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1F94 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1F94 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x1F94 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F79 JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 PUSH2 0x214F DUP3 DUP3 PUSH2 0x217B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x213B JUMP JUMPDEST PUSH2 0x48F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1F55 JUMPI PUSH1 0x0 PUSH2 0x2172 DUP3 DUP3 PUSH2 0x217B JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x215E JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21A1 JUMPI POP PUSH2 0x21BF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21BF SWAP2 SWAP1 PUSH2 0x20AE JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x386C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21F1 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST PUSH2 0x36E3 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 PUSH2 0x222C DUP9 DUP3 PUSH2 0x21C2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2219 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x225D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x226B PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2293 DUP9 DUP3 PUSH2 0x23A2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x227D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x22BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x22C8 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x22F0 DUP9 DUP3 PUSH2 0x23A2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x22DA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2325 PUSH2 0x21EC DUP3 PUSH2 0x370A JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x234A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2242 JUMPI DUP2 PUSH2 0x2360 DUP9 DUP3 PUSH2 0x238C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x234D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3880 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x3880 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3889 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x3889 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x23B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x23C1 PUSH2 0x21EC DUP3 PUSH2 0x372B JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x23DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23E8 DUP4 DUP3 DUP5 PUSH2 0x3802 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2410 PUSH2 0x21EC DUP3 PUSH2 0x372B JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x242C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23E8 DUP4 DUP3 DUP5 PUSH2 0x380E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1750 DUP2 PUSH2 0x3892 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1750 DUP2 PUSH2 0x389B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x245F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x21C2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x248B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AE DUP9 DUP3 DUP10 ADD PUSH2 0x21CD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24D7 DUP9 DUP3 DUP10 ADD PUSH2 0x2306 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2500 DUP9 DUP3 DUP10 ADD PUSH2 0x22A9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x251D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2529 DUP9 DUP3 DUP10 ADD PUSH2 0x224C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2552 DUP9 DUP3 DUP10 ADD PUSH2 0x23A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2571 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2381 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x258F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2397 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x246B DUP5 DUP3 DUP6 ADD PUSH2 0x23F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x238C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2601 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x260D DUP6 DUP6 PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x261E DUP6 DUP3 DUP7 ADD PUSH2 0x21C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x263B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2647 DUP6 DUP6 PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x261E DUP6 DUP3 DUP7 ADD PUSH2 0x2376 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x267C DUP9 DUP9 PUSH2 0x238C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x268D DUP9 DUP3 DUP10 ADD PUSH2 0x2376 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x269E DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x26AF DUP9 DUP3 DUP10 ADD PUSH2 0x238C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2552 DUP9 DUP3 DUP10 ADD PUSH2 0x238C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x246B DUP5 DUP5 PUSH2 0x2442 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26EA DUP4 DUP4 PUSH2 0x2719 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C54 DUP4 DUP4 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26EA DUP4 DUP4 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37DA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x3790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x272D DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x2737 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x2742 DUP4 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2770 JUMPI DUP2 MLOAD PUSH2 0x275A DUP9 DUP3 PUSH2 0x26DE JUMP JUMPDEST SWAP8 POP PUSH2 0x2765 DUP4 PUSH2 0x3771 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2746 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2786 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x2790 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x27A2 DUP6 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x27DC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x27BF DUP6 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP5 POP PUSH2 0x27CA DUP4 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x27A6 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F4 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x27FE DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2810 DUP6 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x27DC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x282D DUP6 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP5 POP PUSH2 0x2838 DUP4 PUSH2 0x3771 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2855 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x285F DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x286A DUP4 PUSH2 0x3771 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2770 JUMPI DUP2 MLOAD PUSH2 0x2882 DUP9 DUP3 PUSH2 0x26FE JUMP JUMPDEST SWAP8 POP PUSH2 0x288D DUP4 PUSH2 0x3771 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x286E JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x379B JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x2713 PUSH2 0x28B6 DUP3 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x48F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C6 DUP3 PUSH2 0x3783 JUMP JUMPDEST PUSH2 0x28D0 DUP2 DUP6 PUSH2 0x3787 JUMP JUMPDEST SWAP4 POP PUSH2 0x28E0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x380E JUMP JUMPDEST PUSH2 0x28E9 DUP2 PUSH2 0x383A JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2910 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2954 JUMPI PUSH2 0x2993 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x2921 DUP2 DUP8 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x2993 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x2962 DUP2 DUP8 PUSH2 0x3787 JUMP JUMPDEST SWAP6 POP PUSH2 0x296D DUP6 PUSH2 0x3777 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x298C JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2970 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37E1 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29BA PUSH1 0x2D DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A73746174653A20696E76616C69 DUP2 MSTORE PUSH32 0x642070726F706F73616C20696400000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A19 PUSH1 0x49 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A657865637574653A2070726F70 DUP2 MSTORE PUSH32 0x6F73616C2063616E206F6E6C7920626520657865637574656420696620697420 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6973207175657565640000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A9E PUSH1 0x2 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AD7 PUSH1 0x33 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63617374566F74654279536967 DUP2 MSTORE PUSH32 0x3A20696E76616C6964207369676E617475726500000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B36 PUSH1 0x43 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A2070726F70 DUP2 MSTORE PUSH32 0x6F73657220766F7465732062656C6F772070726F706F73616C20746872657368 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6F6C640000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BBB PUSH1 0x3A DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63616E63656C3A2063616E6E6F DUP2 MSTORE PUSH32 0x742063616E63656C2065786563757465642070726F706F73616C000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C1A PUSH1 0x5D DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206F6E6520 DUP2 MSTORE PUSH32 0x6C6976652070726F706F73616C207065722070726F706F7365722C20666F756E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420616E20616C72656164792070656E64696E672070726F706F73616C000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9F PUSH1 0x5C DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206F6E6520 DUP2 MSTORE PUSH32 0x6C6976652070726F706F73616C207065722070726F706F7365722C20666F756E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420616E20616C7265616479206163746976652070726F706F73616C00000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D24 PUSH1 0x30 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A206D757374 DUP2 MSTORE PUSH32 0x2070726F7669646520616374696F6E7300000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D83 PUSH1 0x11 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x6164646974696F6E206F766572666C6F77000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DBC PUSH1 0x43 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6374290000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E41 PUSH1 0x27 DUP4 PUSH2 0x9B6 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C626F6F6C2073 DUP2 MSTORE PUSH32 0x7570706F72742900000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x27 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EA0 PUSH1 0x33 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A63616E63656C3A2070726F706F DUP2 MSTORE PUSH32 0x7365722061626F7665207468726573686F6C6400000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EFF PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F71756575654F725265766572 DUP2 MSTORE PUSH32 0x743A2070726F706F73616C20616374696F6E20616C7265616479207175657565 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6420617420657461000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F84 PUSH1 0x2E DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F DUP2 MSTORE PUSH32 0x74696E6720697320636C6F736564000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE3 PUSH1 0x31 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F DUP2 MSTORE PUSH32 0x74657220616C726561647920766F746564000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3042 PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A71756575653A2070726F706F73 DUP2 MSTORE PUSH32 0x616C2063616E206F6E6C79206265207175657565642069662069742069732073 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x7563636565646564000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30C7 PUSH1 0x2C DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A20746F6F20 DUP2 MSTORE PUSH32 0x6D616E7920616374696F6E730000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3126 PUSH1 0x48 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x4E696B69476F7665726E6F72416C7068613A3A70726F706F73653A2070726F70 DUP2 MSTORE PUSH32 0x6F73616C2066756E6374696F6E20696E666F726D6174696F6E20617269747920 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31AB PUSH1 0x15 DUP4 PUSH2 0x3787 JUMP JUMPDEST PUSH32 0x7375627472616374696F6E20756E646572666C6F770000000000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x31E8 DUP5 DUP3 PUSH2 0x2898 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x31FB PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2898 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x320E PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3226 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37C3 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37F7 JUMP JUMPDEST PUSH2 0x2713 DUP2 PUSH2 0x37C9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323A DUP3 PUSH2 0x2A91 JUMP JUMPDEST SWAP2 POP PUSH2 0x3246 DUP3 DUP6 PUSH2 0x28AA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3256 DUP3 DUP5 PUSH2 0x28AA JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x2E34 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x1C54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x32AD DUP3 DUP8 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x32BA PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x32C7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2898 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x321D JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x32E2 DUP3 DUP9 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x32EF PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3301 DUP2 DUP7 PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3315 DUP2 DUP6 PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP PUSH2 0x3324 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x333C DUP3 DUP9 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x3349 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x335B DUP2 DUP7 PUSH2 0x28F3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3315 DUP2 DUP6 PUSH2 0x28F3 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3380 DUP2 DUP8 PUSH2 0x2722 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3394 DUP2 DUP7 PUSH2 0x284A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x33A8 DUP2 DUP6 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3324 DUP2 DUP5 PUSH2 0x277B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x33D8 DUP3 DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x33E5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x33F2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x340D DUP3 DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x341A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x246B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2898 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3435 DUP3 DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3442 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x344F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x13C9 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x299B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x29A4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C54 DUP2 DUP5 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x29AD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2A0C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2ACA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2BAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2C0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2C92 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2D17 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2D76 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2E93 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2EF2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x2FD6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x3035 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x30BA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x3119 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1750 DUP2 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1750 DUP3 DUP5 PUSH2 0x31D7 JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x35B6 DUP3 DUP13 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x35C3 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x270A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x35D5 DUP2 DUP11 PUSH2 0x2722 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x35E9 DUP2 DUP10 PUSH2 0x284A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x35FD DUP2 DUP9 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x3611 DUP2 DUP8 PUSH2 0x277B JUMP JUMPDEST SWAP1 POP PUSH2 0x3620 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x362D PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x28A1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x3640 DUP2 DUP5 PUSH2 0x28BB JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x365E DUP3 DUP13 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x366B PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2719 JUMP JUMPDEST PUSH2 0x3678 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3685 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x3692 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x369F PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x36AC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x28A1 JUMP JUMPDEST PUSH2 0x36B9 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2898 JUMP JUMPDEST PUSH2 0x36C7 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x2898 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3284 DUP3 DUP6 PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37AA JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x9B6 DUP2 PUSH2 0x3862 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x3790 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1750 DUP3 PUSH2 0x37C9 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3829 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3811 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x320E JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x21BF JUMPI INVALID JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x3790 JUMP JUMPDEST DUP2 EQ PUSH2 0x21BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x379B JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x48F JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x37C3 JUMP JUMPDEST PUSH2 0x3875 DUP2 PUSH2 0x37C9 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 MUL PUSH2 0x55FC SSTORE DIFFICULTY 0xE5 CALLCODE DUP8 0x5E 0x27 PUSH17 0x628649B0CD78ACC52D27EDFC6CC12407AF 0xD DUP9 0xC4 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ",
          "sourceMap": "63:13172:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3632:43:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1033:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1033:69:3;;;:::i;:::-;;;;;;;;140:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;140:51:3;;;:::i;:::-;;;;;;;;11128:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11128:124:3;;;;;;;;:::i;:::-;;3739:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3739:50:3;;;;;;;;:::i;3862:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3862:122:3;;;:::i;333:76::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;333:76:3;;;:::i;9616:287::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9616:287:3;;;;;;;;:::i;:::-;;;;;;;;;;;886:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;886:63:3;;;:::i;10071:1049::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10071:1049:3;;;;;;;;:::i;:::-;;;;;;;;8877:731;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8877:731:3;;;;;;;;:::i;11260:629::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11260:629:3;;;;;;;;:::i;705:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:74:3;;;:::i;519:82::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;519:82:3;;;:::i;1316:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1316:25:3;;;:::i;:::-;;;;;;;;1212:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1212:37:3;;;:::i;1397:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1397:25:3;;;:::i;5111:2196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5111:2196:3;;;;;;;;:::i;7315:581::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7315:581:3;;;;;;;;:::i;4074:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4074:94:3;;;:::i;9911:152::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9911:152:3;;;;;;;;:::i;:::-;;;;;;;;8292:577;;;;;;;;;:::i;3632:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1033:69::-;1093:6;1033:69;;:::o;140:51::-;;;;;;;;;;;;;;;;;;;:::o;11128:124::-;11202:42;11212:10;11224;11236:7;11202:9;:42::i;:::-;11128:124;;:::o;3739:50::-;;;;;;;;;;;;;:::o;3862:122::-;3904:80;;;;;;;;;;;;;;3862:122;:::o;333:76::-;392:14;333:76;:::o;9616:287::-;9674:24;9700:20;9722:26;9750:24;9787:18;9808:9;:21;9818:10;9808:21;;;;;;;;;;;9787:42;;9848:1;:9;;9859:1;:8;;9869:1;:12;;9883:1;:11;;9840:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9616:287;;;;;:::o;886:63::-;945:1;886:63;:::o;10071:1049::-;10124:13;10175:10;10158:13;;:27;;:45;;;;;10202:1;10189:10;:14;10158:45;10150:103;;;;;;;;;;;;;;;;;;;;;;10264:25;10292:21;;;:9;:21;;;;;10328:17;;;;;;10324:789;;;10369:22;10362:29;;;;;10324:789;10429:8;:19;;;10413:12;:35;10409:704;;10472:21;10465:28;;;;;10409:704;10531:8;:17;;;10515:12;:33;10511:602;;10572:20;10565:27;;;;;10511:602;10635:8;:21;;;10614:8;:17;;;:42;;:79;;;;10680:13;:11;:13::i;:::-;10660:8;:17;;;:33;10614:79;10610:503;;;10717:22;10710:29;;;;;10610:503;10761:12;;;;10757:356;;10802:23;10795:30;;;;;10757:356;10847:17;;;;;;;;;10843:270;;;10888:22;10881:29;;;;;10843:270;10958:12;;;;10972:8;;:23;;;;;;;;10951:45;;10958:12;10972:8;;;:21;;:23;;;;;;;;;;;;;;:8;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;10972:23:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10972:23:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10972:23:3;;;;;;;;;10951:6;:45::i;:::-;10932:15;:64;10928:185;;11020:21;11013:28;;;;;10928:185;11081:20;11074:27;;;10071:1049;;;;:::o;8877:731::-;8928:19;8950:17;8956:10;8950:5;:17::i;:::-;8928:39;-1:-1:-1;8995:22:3;8986:5;:31;;;;;;;;;;8978:102;;;;;;;;;;;;;;9093:25;9121:21;;;:9;:21;;;;;9226:19;:17;:19::i;:::-;9161:4;;;9180:17;;;;9161:4;;;;;:18;;9180:17;;;;9199:23;;9206:12;;9199:6;:23::i;:::-;9161:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9161:62:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9161:62:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9161:62:3;;;;;;;;;:84;;;9153:148;;;;;;;;;;;;;;9314:17;;;:24;;;;9334:4;9314:24;;;:17;9349:206;9370:16;;;:23;9366:27;;9349:206;;;9415:8;;9442:16;;;:19;;9415:8;;;;;:26;;9442:16;9459:1;;9442:19;;;;;;;;;;;;;;;;9463:15;;;:18;;9442:19;;;;;9479:1;;9463:18;;;;;;;;;;;;;;9483:8;:19;;9503:1;9483:22;;;;;;;;;;;;;;;9507:8;:18;;9526:1;9507:21;;;;;;;;;;;;;;;9530:8;:12;;;9415:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9415:128:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9395:3:3;;;;;-1:-1:-1;9349:206:3;;-1:-1:-1;9349:206:3;;;9572:28;9589:10;9572:28;;;;;;;;;;;;;;;8877:731;;;:::o;11260:629::-;11363:23;3904:80;;;;;;;;;;;;;;;;11443:4;;;;;;;;;;;;;;;;;;11427:22;11451:12;:10;:12::i;:::-;11473:4;11399:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11399:80:3;;;11389:91;;;;;;11363:117;;11491:18;4116:52;;;;;;;;;;;;;;;11522:48;;11550:10;;11562:7;;11522:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11522:48:3;;;11512:59;;;;;;11491:80;;11582:14;11638:15;11655:10;11609:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11609:57:3;;;11599:68;;;;;;11582:85;;11678:17;11698:26;11708:6;11716:1;11719;11722;11698:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11698:26:3;;;;;;-1:-1:-1;;11743:23:3;;;11735:87;;;;;;;;;;;;;;11840:41;11850:9;11861:10;11873:7;11840:9;:41::i;:::-;11833:48;;;;11260:629;;;;;:::o;705:74::-;774:2;705:74;:::o;519:82::-;584:14;519:82;:::o;1316:25::-;;;;;;:::o;1212:37::-;;;;;;:::o;1397:25::-;;;;:::o;5111:2196::-;5273:4;5356:19;:17;:19::i;:::-;5298:4;;;;;;:18;;5317:10;;5329:23;;5336:12;;5329:6;:23::i;:::-;5298:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5298:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5298:55:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5298:55:3;;;;;;;;;:77;;;5290:157;;;;;;;;;;;;;;5484:6;:13;5466:7;:14;:31;:70;;;;;5519:10;:17;5501:7;:14;:35;5466:70;:108;;;;;5558:9;:16;5540:7;:14;:34;5466:108;5458:193;;;;;;;;;;;;;;5670:14;;5662:80;;;;;;;;;;;;;;5779:23;:21;:23::i;:::-;5761:7;:14;:41;;5753:98;;;;;;;;;;;;;;5906:10;5864:21;5888:29;;;:17;:29;;;;;;5932:21;;5928:462;;5968:42;6013:23;6019:16;6013:5;:23::i;:::-;5968:68;-1:-1:-1;6089:20:3;6057:28;:52;;;;;;;;;;6049:157;;;;;;;;;;;;;;6259:21;6227:28;:53;;;;;;;;;;6219:159;;;;;;;;;;;;;;5928:462;;6402:15;6420:35;6427:12;6441:13;:11;:13::i;6420:35::-;6402:53;;6466:13;6482:34;6489:10;6501:14;:12;:14::i;6482:34::-;6529:13;:15;;;;;;6466:50;-1:-1:-1;6555:27:3;;:::i;:::-;6585:427;;;;;;;;6613:13;;6585:427;;;;6651:10;6585:427;;;;;;6681:1;6585:427;;;;6706:7;6585:427;;;;6736:6;6585:427;;;;6769:10;6585:427;;;;6805:9;6585:427;;;;6841:10;6585:427;;;;6876:8;6585:427;;;;6909:1;6585:427;;;;6939:1;6585:427;;;;6965:5;6585:427;;;;;;6995:5;6585:427;;;;;6555:457;;7053:11;7025:9;:25;7035:11;:14;;;7025:25;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7117:11;:14;;;7075:17;:39;7093:11;:20;;;7075:39;;;;;;;;;;;;;;;:56;;;;7149:118;7165:11;:14;;;7181:10;7193:7;7202:6;7210:10;7222:9;7233:10;7245:8;7255:11;7149:118;;;;;;;;;;;;;;;;;;;;;;;7285:14;;-1:-1:-1;;;;5111:2196:3;;;;;;;;:::o;7315:581::-;7394:23;7373:17;7379:10;7373:5;:17::i;:::-;:44;;;;;;;;;7365:129;;;;;;;;;;;;;;7505:25;7533:21;;;:9;:21;;;;;;;;7600:8;;:16;;;;;;;7533:21;;7505:25;7576:41;;7583:15;;7600:8;;;;;:14;;:16;;;;;7533:21;;7600:16;;;;;;:8;:16;;;5:2:-1;;;;30:1;27;20:12;7576:41:3;7565:52;-1:-1:-1;7633:6:3;7628:185;7649:16;;;:23;7645:27;;7628:185;;;7694:107;7709:8;:16;;7726:1;7709:19;;;;;;;;;;;;;;;;;;7730:15;;;:18;;7709:19;;;;;7746:1;;7730:18;;;;;;;;;;;;;;7750:8;:19;;7770:1;7750:22;;;;;;;;;;;;;;;;;;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7750:22;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7774:8;:18;;7793:1;7774:21;;;;;;;;;;;;;;;;;;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7774:21;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7797:3;7694:14;:107::i;:::-;7674:3;;7628:185;;;-1:-1:-1;7823:12:3;;;:18;;;7857:31;;;;;;7872:10;;7838:3;;7857:31;;4074:94;4116:52;;;;;;9911:152;9984:14;;:::i;:::-;-1:-1:-1;10018:21:3;;;;:9;:21;;;;;;;;:37;;;;;:30;;:37;;;;;;10011:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9911:152;;;;;:::o;8292:577::-;8381:20;8360:17;8366:10;8360:5;:17::i;:::-;:41;;;;;;;;;8352:127;;;;;;;;;;;;;;8490:25;8518:21;;;:9;:21;;;;;8550:17;;;:24;;;;;;;;8518:21;8585:233;8606:16;;;:23;8602:27;;8585:233;;;8651:8;;8685:15;;;:18;;8651:8;;;;;:27;;8685:15;8701:1;;8685:18;;;;;;;;;;;;;;8705:8;:16;;8722:1;8705:19;;;;;;;;;;;;;;;;;;8726:15;;;:18;;8705:19;;;;;8742:1;;8726:18;;;;;;;;;;;;;;8746:8;:19;;8766:1;8746:22;;;;;;;;;;;;;;;8770:8;:18;;8789:1;8770:21;;;;;;;;;;;;;;;8793:8;:12;;;8651:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8651:155:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8651:155:3;;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8651:155:3;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;8651:155:3;;;;;;;;;-1:-1:-1;8631:3:3;;8585:233;;;;8833:28;8850:10;8833:28;;;;;;;;;;;;;;;8292:577;;:::o;11897:846::-;12011:20;11990:17;11996:10;11990:5;:17::i;:::-;:41;;;;;;;;;11982:100;;;;;;;;;;;;;;12093:25;12121:21;;;:9;:21;;;;;;;;12179:24;;;;;:17;;;:24;;;;;;12222:16;;;;:25;12214:87;;;;;;;;;;;;;;12327:4;;12353:19;;;;12327:46;;;;;12312:12;;12327:4;;;:18;;:46;;12346:5;;12327:46;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12327:46:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12327:46:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12327:46:3;;;;;;;;;12312:61;;12390:7;12386:185;;;12434:32;12441:8;:17;;;12460:5;12434:32;;:6;:32::i;:::-;12414:17;;;:52;12386:185;;;12523:36;12530:8;:21;;;12553:5;12523:36;;:6;:36::i;:::-;12499:21;;;:60;12386:185;12583:23;;12602:4;12583:23;;;;;12617:25;;12583:23;12617:25;;;;;12653:21;;;;;;;;;;12692:43;;;;;;12701:5;;12708:10;;12617:25;;12653:21;;12692:43;;;;;;;;;;11897:846;;;;;;:::o;12751:166::-;12812:4;12838:5;;;12862:6;;;;12854:36;;;;;;;;;;;;;;12908:1;12751:166;-1:-1:-1;;;12751:166:3:o;12925:149::-;12986:4;13016:1;13011;:6;;13003:40;;;;;;;;;;;;;;-1:-1:-1;13061:5:3;;;12925:149::o;13082:150::-;13189:9;13082:150;:::o;7904:380::-;8039:8;;8077:47;;8039:8;;;;;:27;;8077:47;;8088:6;;8096:5;;8103:9;;8114:4;;8120:3;;8077:47;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8077:47:3;;;8067:58;;;;;;8039:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8039:87:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8039:87:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8039:87:3;;;;;;;;;8038:88;8030:173;;;;;;;;;;;;;;8214:8;;:62;;;;;:8;;;;;:25;;:62;;8240:6;;8248:5;;8255:9;;8266:4;;8272:3;;8214:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8214:62:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8214:62:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8214:62:3;;;;;;;;;;7904:380;;;;;:::o;63:13172::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;-1:-1:-1;63:13172:3;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;1090:85;1203:21;;;1247:4;1235:17;;;;1081:94;;-1:-1;1260:14;;1235:17;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1460:55;;-1:-1;1538:4;1529:14;;;;1557;;;;;1387:1;1380:9;1340:238;;1609:696;;1732:3;1725:4;1717:6;1713:17;1709:27;1699:2;;1750:1;1747;1740:12;1699:2;1787:6;1774:20;1809:86;1824:70;1887:6;1824:70;;1809:86;1923:21;;;1967:4;1955:17;;;;1800:95;;-1:-1;1980:14;;1955:17;2075:1;2060:239;2085:6;2082:1;2079:13;2060:239;;;2168:3;2155:17;2147:6;2143:30;2192:43;2231:3;2219:10;2192:43;;;2180:56;;-1:-1;2259:4;2250:14;;;;2278;;;;;2107:1;2100:9;2060:239;;2331:707;;2448:3;2441:4;2433:6;2429:17;2425:27;2415:2;;2466:1;2463;2456:12;2415:2;2503:6;2490:20;2525:80;2540:64;2597:6;2540:64;;2525:80;2516:89;;2622:5;2647:6;2640:5;2633:21;2677:4;2669:6;2665:17;2655:27;;2699:4;2694:3;2690:14;2683:21;;2752:6;2799:3;2791:4;2783:6;2779:17;2774:3;2770:27;2767:36;2764:2;;;2816:1;2813;2806:12;2764:2;2841:1;2826:206;2851:6;2848:1;2845:13;2826:206;;;2909:3;2931:37;2964:3;2952:10;2931:37;;;2919:50;;-1:-1;2992:4;2983:14;;;;3011;;;;;2873:1;2866:9;2826:206;;3046:124;3110:20;;3135:30;3110:20;3135:30;;3177:128;3252:13;;3270:30;3252:13;3270:30;;3312:130;3379:20;;3404:33;3379:20;3404:33;;3449:134;3527:13;;3545:33;3527:13;3545:33;;3591:432;;3688:3;3681:4;3673:6;3669:17;3665:27;3655:2;;3706:1;3703;3696:12;3655:2;3743:6;3730:20;3765:60;3780:44;3817:6;3780:44;;3765:60;3756:69;;3845:6;3838:5;3831:21;3881:4;3873:6;3869:17;3914:4;3907:5;3903:16;3949:3;3940:6;3935:3;3931:16;3928:25;3925:2;;;3966:1;3963;3956:12;3925:2;3976:41;4010:6;4005:3;4000;3976:41;;;3648:375;;;;;;;;4032:442;;4144:3;4137:4;4129:6;4125:17;4121:27;4111:2;;4162:1;4159;4152:12;4111:2;4192:6;4186:13;4214:64;4229:48;4270:6;4229:48;;4214:64;4205:73;;4298:6;4291:5;4284:21;4334:4;4326:6;4322:17;4367:4;4360:5;4356:16;4402:3;4393:6;4388:3;4384:16;4381:25;4378:2;;;4419:1;4416;4409:12;4378:2;4429:39;4461:6;4456:3;4451;4429:39;;5654:126;5719:20;;5744:31;5719:20;5744:31;;5787:132;5864:13;;5882:32;5864:13;5882:32;;5926:241;;6030:2;6018:9;6009:7;6005:23;6001:32;5998:2;;;6046:1;6043;6036:12;5998:2;6081:1;6098:53;6143:7;6123:9;6098:53;;;6088:63;5992:175;-1:-1;;;;5992:175;6174:1415;;;;;;6467:3;6455:9;6446:7;6442:23;6438:33;6435:2;;;6484:1;6481;6474:12;6435:2;6519:31;;6570:18;6559:30;;6556:2;;;6602:1;6599;6592:12;6556:2;6622:78;6692:7;6683:6;6672:9;6668:22;6622:78;;;6612:88;;6498:208;6765:2;6754:9;6750:18;6737:32;6789:18;6781:6;6778:30;6775:2;;;6821:1;6818;6811:12;6775:2;6841:78;6911:7;6902:6;6891:9;6887:22;6841:78;;;6831:88;;6716:209;6984:2;6973:9;6969:18;6956:32;7008:18;7000:6;6997:30;6994:2;;;7040:1;7037;7030:12;6994:2;7060:84;7136:7;7127:6;7116:9;7112:22;7060:84;;;7050:94;;6935:215;7209:2;7198:9;7194:18;7181:32;7233:18;7225:6;7222:30;7219:2;;;7265:1;7262;7255:12;7219:2;7285:83;7360:7;7351:6;7340:9;7336:22;7285:83;;;7275:93;;7160:214;7433:3;7422:9;7418:19;7405:33;7458:18;7450:6;7447:30;7444:2;;;7490:1;7487;7480:12;7444:2;7510:63;7565:7;7556:6;7545:9;7541:22;7510:63;;;7500:73;;7384:195;6429:1160;;;;;;;;;7596:257;;7708:2;7696:9;7687:7;7683:23;7679:32;7676:2;;;7724:1;7721;7714:12;7676:2;7759:1;7776:61;7829:7;7809:9;7776:61;;7860:263;;7975:2;7963:9;7954:7;7950:23;7946:32;7943:2;;;7991:1;7988;7981:12;7943:2;8026:1;8043:64;8099:7;8079:9;8043:64;;8130:360;;8254:2;8242:9;8233:7;8229:23;8225:32;8222:2;;;8270:1;8267;8260:12;8222:2;8305:24;;8349:18;8338:30;;8335:2;;;8381:1;8378;8371:12;8335:2;8401:73;8466:7;8457:6;8446:9;8442:22;8401:73;;8497:241;;8601:2;8589:9;8580:7;8576:23;8572:32;8569:2;;;8617:1;8614;8607:12;8569:2;8652:1;8669:53;8714:7;8694:9;8669:53;;9015:366;;;9136:2;9124:9;9115:7;9111:23;9107:32;9104:2;;;9152:1;9149;9142:12;9104:2;9187:1;9204:53;9249:7;9229:9;9204:53;;;9194:63;;9166:97;9294:2;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;;;9302:63;;9273:98;9098:283;;;;;;9388:360;;;9506:2;9494:9;9485:7;9481:23;9477:32;9474:2;;;9522:1;9519;9512:12;9474:2;9557:1;9574:53;9619:7;9599:9;9574:53;;;9564:63;;9536:97;9664:2;9682:50;9724:7;9715:6;9704:9;9700:22;9682:50;;9755:733;;;;;;9922:3;9910:9;9901:7;9897:23;9893:33;9890:2;;;9939:1;9936;9929:12;9890:2;9974:1;9991:53;10036:7;10016:9;9991:53;;;9981:63;;9953:97;10081:2;10099:50;10141:7;10132:6;10121:9;10117:22;10099:50;;;10089:60;;10060:95;10186:2;10204:51;10247:7;10238:6;10227:9;10223:22;10204:51;;;10194:61;;10165:96;10292:2;10310:53;10355:7;10346:6;10335:9;10331:22;10310:53;;;10300:63;;10271:98;10400:3;10419:53;10464:7;10455:6;10444:9;10440:22;10419:53;;10495:261;;10609:2;10597:9;10588:7;10584:23;10580:32;10577:2;;;10625:1;10622;10615:12;10577:2;10660:1;10677:63;10732:7;10712:9;10677:63;;10764:173;;10851:46;10893:3;10885:6;10851:46;;;-1:-1;;10926:4;10917:14;;10844:93;10946:177;;11057:60;11113:3;11105:6;11057:60;;11322:173;;11409:46;11451:3;11443:6;11409:46;;11503:142;11594:45;11633:5;11594:45;;;11589:3;11582:58;11576:69;;;11652:103;11725:24;11743:5;11725:24;;11913:690;;12058:54;12106:5;12058:54;;;12125:86;12204:6;12199:3;12125:86;;;12118:93;;12232:56;12282:5;12232:56;;;12308:7;12336:1;12321:260;12346:6;12343:1;12340:13;12321:260;;;12413:6;12407:13;12434:63;12493:3;12478:13;12434:63;;;12427:70;;12514:60;12567:6;12514:60;;;12504:70;-1:-1;;12368:1;12361:9;12321:260;;;-1:-1;12594:3;;12037:566;-1:-1;;;;;12037:566;12638:888;;12793:59;12846:5;12793:59;;;12865:91;12949:6;12944:3;12865:91;;;12858:98;;12979:3;13021:4;13013:6;13009:17;13004:3;13000:27;13048:61;13103:5;13048:61;;;13129:7;13157:1;13142:345;13167:6;13164:1;13161:13;13142:345;;;13229:9;13223:4;13219:20;13214:3;13207:33;13274:6;13268:13;13296:74;13365:4;13350:13;13296:74;;;13288:82;;13387:65;13445:6;13387:65;;;13475:4;13466:14;;;;;13377:75;-1:-1;;13189:1;13182:9;13142:345;;;-1:-1;13500:4;;12772:754;-1:-1;;;;;;;12772:754;13563:896;;13720:60;13774:5;13720:60;;;13793:92;13878:6;13873:3;13793:92;;;13786:99;;13908:3;13950:4;13942:6;13938:17;13933:3;13929:27;13977:62;14033:5;13977:62;;;14059:7;14087:1;14072:348;14097:6;14094:1;14091:13;14072:348;;;14159:9;14153:4;14149:20;14144:3;14137:33;14204:6;14198:13;14226:76;14297:4;14282:13;14226:76;;;14218:84;;14319:66;14378:6;14319:66;;;14408:4;14399:14;;;;;14309:76;-1:-1;;14119:1;14112:9;14072:348;;14498:690;;14643:54;14691:5;14643:54;;;14710:86;14789:6;14784:3;14710:86;;;14703:93;;14817:56;14867:5;14817:56;;;14893:7;14921:1;14906:260;14931:6;14928:1;14925:13;14906:260;;;14998:6;14992:13;15019:63;15078:3;15063:13;15019:63;;;15012:70;;15099:60;15152:6;15099:60;;;15089:70;-1:-1;;14953:1;14946:9;14906:260;;15196:94;15263:21;15278:5;15263:21;;15408:113;15491:24;15509:5;15491:24;;15528:152;15629:45;15649:24;15667:5;15649:24;;;15629:45;;15687:343;;15797:38;15829:5;15797:38;;;15847:70;15910:6;15905:3;15847:70;;;15840:77;;15922:52;15967:6;15962:3;15955:4;15948:5;15944:16;15922:52;;;15995:29;16017:6;15995:29;;;15986:39;;;;15777:253;-1:-1;;;15777:253;16382:818;;16499:5;16493:12;16533:1;16522:9;16518:17;16546:1;16541:247;;;;16799:1;16794:400;;;;16511:683;;16541:247;16619:4;16615:1;16604:9;16600:17;16596:28;16638:70;16701:6;16696:3;16638:70;;;16742:9;16727:25;;16715:38;;16631:77;-1:-1;;16776:4;16767:14;;;-1:-1;16541:247;;16794:400;16863:1;16852:9;16848:17;16879:70;16942:6;16937:3;16879:70;;;16872:77;;16971:37;17002:5;16971:37;;;17024:1;17032:130;17046:6;17043:1;17040:13;17032:130;;;17105:14;;17092:11;;;17085:35;17152:1;17139:15;;;;17068:4;17061:12;17032:130;;;17176:11;;;-1:-1;;;16511:683;;16469:731;;;;;;17208:170;17313:59;17366:5;17313:59;;17578:158;17677:53;17724:5;17677:53;;19626:382;;19786:67;19850:2;19845:3;19786:67;;;19886:34;19866:55;;19955:15;19950:2;19941:12;;19934:37;19999:2;19990:12;;19772:236;-1:-1;;19772:236;20017:447;;20177:67;20241:2;20236:3;20177:67;;;20277:34;20257:55;;20346:34;20341:2;20332:12;;20325:56;20415:11;20410:2;20401:12;;20394:33;20455:2;20446:12;;20163:301;-1:-1;;20163:301;20473:398;;20651:84;20733:1;20728:3;20651:84;;;20768:66;20748:87;;20863:1;20854:11;;20637:234;-1:-1;;20637:234;20880:388;;21040:67;21104:2;21099:3;21040:67;;;21140:34;21120:55;;21209:21;21204:2;21195:12;;21188:43;21259:2;21250:12;;21026:242;-1:-1;;21026:242;21277:441;;21437:67;21501:2;21496:3;21437:67;;;21537:34;21517:55;;21606:34;21601:2;21592:12;;21585:56;21675:5;21670:2;21661:12;;21654:27;21709:2;21700:12;;21423:295;-1:-1;;21423:295;21727:395;;21887:67;21951:2;21946:3;21887:67;;;21987:34;21967:55;;22056:28;22051:2;22042:12;;22035:50;22113:2;22104:12;;21873:249;-1:-1;;21873:249;22131:467;;22291:67;22355:2;22350:3;22291:67;;;22391:34;22371:55;;22460:34;22455:2;22446:12;;22439:56;22529:31;22524:2;22515:12;;22508:53;22589:2;22580:12;;22277:321;-1:-1;;22277:321;22607:466;;22767:67;22831:2;22826:3;22767:67;;;22867:34;22847:55;;22936:34;22931:2;22922:12;;22915:56;23005:30;23000:2;22991:12;;22984:52;23064:2;23055:12;;22753:320;-1:-1;;22753:320;23082:385;;23242:67;23306:2;23301:3;23242:67;;;23342:34;23322:55;;23411:18;23406:2;23397:12;;23390:40;23458:2;23449:12;;23228:239;-1:-1;;23228:239;23476:317;;23636:67;23700:2;23695:3;23636:67;;;23736:19;23716:40;;23784:2;23775:12;;23622:171;-1:-1;;23622:171;23802:477;;23980:85;24062:2;24057:3;23980:85;;;24098:34;24078:55;;24167:34;24162:2;24153:12;;24146:56;24236:5;24231:2;24222:12;;24215:27;24270:2;24261:12;;23966:313;-1:-1;;23966:313;24288:412;;24466:85;24548:2;24543:3;24466:85;;;24584:34;24564:55;;24653:9;24648:2;24639:12;;24632:31;24691:2;24682:12;;24452:248;-1:-1;;24452:248;24709:388;;24869:67;24933:2;24928:3;24869:67;;;24969:34;24949:55;;25038:21;25033:2;25024:12;;25017:43;25088:2;25079:12;;24855:242;-1:-1;;24855:242;25106:446;;25266:67;25330:2;25325:3;25266:67;;;25366:34;25346:55;;25435:34;25430:2;25421:12;;25414:56;25504:10;25499:2;25490:12;;25483:32;25543:2;25534:12;;25252:300;-1:-1;;25252:300;25561:383;;25721:67;25785:2;25780:3;25721:67;;;25821:34;25801:55;;25890:16;25885:2;25876:12;;25869:38;25935:2;25926:12;;25707:237;-1:-1;;25707:237;25953:386;;26113:67;26177:2;26172:3;26113:67;;;26213:34;26193:55;;26282:19;26277:2;26268:12;;26261:41;26330:2;26321:12;;26099:240;-1:-1;;26099:240;26348:446;;26508:67;26572:2;26567:3;26508:67;;;26608:34;26588:55;;26677:34;26672:2;26663:12;;26656:56;26746:10;26741:2;26732:12;;26725:32;26785:2;26776:12;;26494:300;-1:-1;;26494:300;26803:381;;26963:67;27027:2;27022:3;26963:67;;;27063:34;27043:55;;27132:14;27127:2;27118:12;;27111:36;27175:2;27166:12;;26949:235;-1:-1;;26949:235;27193:446;;27353:67;27417:2;27412:3;27353:67;;;27453:34;27433:55;;27522:34;27517:2;27508:12;;27501:56;27591:10;27586:2;27577:12;;27570:32;27630:2;27621:12;;27339:300;-1:-1;;27339:300;27648:321;;27808:67;27872:2;27867:3;27808:67;;;27908:23;27888:44;;27960:2;27951:12;;27794:175;-1:-1;;27794:175;28052:624;28265:23;;28195:4;28186:14;;;28294:57;28190:3;28265:23;28294:57;;;28215:142;28433:4;28426:5;28422:16;28416:23;28445:57;28496:4;28491:3;28487:14;28473:12;28445:57;;;28367:141;28582:4;28575:5;28571:16;28565:23;28594:61;28649:4;28644:3;28640:14;28626:12;28594:61;;;28518:143;28168:508;;;;28913:107;28992:22;29008:5;28992:22;;29027:124;29109:36;29139:5;29109:36;;29158:100;29229:23;29246:5;29229:23;;29265:650;;29520:148;29664:3;29520:148;;;29513:155;;29679:75;29750:3;29741:6;29679:75;;;29776:2;29771:3;29767:12;29760:19;;29790:75;29861:3;29852:6;29790:75;;;-1:-1;29887:2;29878:12;;29501:414;-1:-1;;29501:414;29922:372;;30121:148;30265:3;30121:148;;30301:372;;30500:148;30644:3;30500:148;;30680:340;30834:2;30819:18;;30848:79;30823:9;30900:6;30848:79;;;30938:72;31006:2;30995:9;30991:18;30982:6;30938:72;;31027:324;31173:2;31158:18;;31187:71;31162:9;31231:6;31187:71;;31358:533;31553:3;31538:19;;31568:71;31542:9;31612:6;31568:71;;;31650:72;31718:2;31707:9;31703:18;31694:6;31650:72;;;31733:66;31795:2;31784:9;31780:18;31771:6;31733:66;;;31810:71;31877:2;31866:9;31862:18;31853:6;31810:71;;31898:831;32166:3;32151:19;;32181:71;32155:9;32225:6;32181:71;;;32263:72;32331:2;32320:9;32316:18;32307:6;32263:72;;;32383:9;32377:4;32373:20;32368:2;32357:9;32353:18;32346:48;32408:78;32481:4;32472:6;32408:78;;;32400:86;;32534:9;32528:4;32524:20;32519:2;32508:9;32504:18;32497:48;32559:76;32630:4;32621:6;32559:76;;;32551:84;;32646:73;32714:3;32703:9;32699:19;32690:6;32646:73;;;32137:592;;;;;;;;;32736:819;32998:3;32983:19;;33013:71;32987:9;33057:6;33013:71;;;33095:72;33163:2;33152:9;33148:18;33139:6;33095:72;;;33215:9;33209:4;33205:20;33200:2;33189:9;33185:18;33178:48;33240:75;33310:4;33301:6;33240:75;;;33232:83;;33363:9;33357:4;33353:20;33348:2;33337:9;33333:18;33326:48;33388:73;33456:4;33447:6;33388:73;;33562:1183;33986:3;34001:47;;;33971:19;;34062:108;33971:19;34156:6;34062:108;;;34054:116;;34218:9;34212:4;34208:20;34203:2;34192:9;34188:18;34181:48;34243:108;34346:4;34337:6;34243:108;;;34235:116;;34399:9;34393:4;34389:20;34384:2;34373:9;34369:18;34362:48;34424:120;34539:4;34530:6;34424:120;;;34416:128;;34592:9;34586:4;34582:20;34577:2;34566:9;34562:18;34555:48;34617:118;34730:4;34721:6;34617:118;;34752:213;34870:2;34855:18;;34884:71;34859:9;34928:6;34884:71;;34972:547;35174:3;35159:19;;35189:71;35163:9;35233:6;35189:71;;;35271:72;35339:2;35328:9;35324:18;35315:6;35271:72;;;35354;35422:2;35411:9;35407:18;35398:6;35354:72;;;35437;35505:2;35494:9;35490:18;35481:6;35437:72;;35526:423;35694:2;35679:18;;35708:71;35683:9;35752:6;35708:71;;;35790:72;35858:2;35847:9;35843:18;35834:6;35790:72;;;35873:66;35935:2;35924:9;35920:18;35911:6;35873:66;;35956:539;36154:3;36139:19;;36169:71;36143:9;36213:6;36169:71;;;36251:68;36315:2;36304:9;36300:18;36291:6;36251:68;;;36330:72;36398:2;36387:9;36383:18;36374:6;36330:72;;;36413;36481:2;36470:9;36466:18;36457:6;36413:72;;36502:257;36642:2;36627:18;;36656:93;36631:9;36722:6;36656:93;;37046:245;37180:2;37165:18;;37194:87;37169:9;37254:6;37194:87;;37298:293;37432:2;37446:47;;;37417:18;;37507:74;37417:18;37567:6;37507:74;;37598:407;37789:2;37803:47;;;37774:18;;37864:131;37774:18;37864:131;;38012:407;38203:2;38217:47;;;38188:18;;38278:131;38188:18;38278:131;;38426:407;38617:2;38631:47;;;38602:18;;38692:131;38602:18;38692:131;;38840:407;39031:2;39045:47;;;39016:18;;39106:131;39016:18;39106:131;;39254:407;39445:2;39459:47;;;39430:18;;39520:131;39430:18;39520:131;;39668:407;39859:2;39873:47;;;39844:18;;39934:131;39844:18;39934:131;;40082:407;40273:2;40287:47;;;40258:18;;40348:131;40258:18;40348:131;;40496:407;40687:2;40701:47;;;40672:18;;40762:131;40672:18;40762:131;;40910:407;41101:2;41115:47;;;41086:18;;41176:131;41086:18;41176:131;;41324:407;41515:2;41529:47;;;41500:18;;41590:131;41500:18;41590:131;;41738:407;41929:2;41943:47;;;41914:18;;42004:131;41914:18;42004:131;;42152:407;42343:2;42357:47;;;42328:18;;42418:131;42328:18;42418:131;;42566:407;42757:2;42771:47;;;42742:18;;42832:131;42742:18;42832:131;;42980:407;43171:2;43185:47;;;43156:18;;43246:131;43156:18;43246:131;;43394:407;43585:2;43599:47;;;43570:18;;43660:131;43570:18;43660:131;;43808:407;43999:2;44013:47;;;43984:18;;44074:131;43984:18;44074:131;;44222:407;44413:2;44427:47;;;44398:18;;44488:131;44398:18;44488:131;;44636:313;44804:2;44789:18;;44818:121;44793:9;44912:6;44818:121;;45176:1847;45768:3;45753:19;;45783:71;45757:9;45827:6;45783:71;;;45865:80;45941:2;45930:9;45926:18;45917:6;45865:80;;;45993:9;45987:4;45983:20;45978:2;45967:9;45963:18;45956:48;46018:108;46121:4;46112:6;46018:108;;;46010:116;;46174:9;46168:4;46164:20;46159:2;46148:9;46144:18;46137:48;46199:108;46302:4;46293:6;46199:108;;;46191:116;;46356:9;46350:4;46346:20;46340:3;46329:9;46325:19;46318:49;46381:120;46496:4;46487:6;46381:120;;;46373:128;;46550:9;46544:4;46540:20;46534:3;46523:9;46519:19;46512:49;46575:118;46688:4;46679:6;46575:118;;;46567:126;;46704:73;46772:3;46761:9;46757:19;46748:6;46704:73;;;46788;46856:3;46845:9;46841:19;46832:6;46788:73;;;46910:9;46904:4;46900:20;46894:3;46883:9;46879:19;46872:49;46935:78;47008:4;46999:6;46935:78;;;46927:86;45739:1284;-1:-1;;;;;;;;;;;45739:1284;47030:1083;47360:3;47345:19;;47375:71;47349:9;47419:6;47375:71;;;47457:72;47525:2;47514:9;47510:18;47501:6;47457:72;;;47540;47608:2;47597:9;47593:18;47584:6;47540:72;;;47623;47691:2;47680:9;47676:18;47667:6;47623:72;;;47706:73;47774:3;47763:9;47759:19;47750:6;47706:73;;;47790;47858:3;47847:9;47843:19;47834:6;47790:73;;;47874;47942:3;47931:9;47927:19;47918:6;47874:73;;;47958:67;48020:3;48009:9;48005:19;47996:6;47958:67;;;48036;48098:3;48087:9;48083:19;48074:6;48036:67;;;47331:782;;;;;;;;;;;;;48120:324;48266:2;48251:18;;48280:71;48255:9;48324:6;48280:71;;48451:256;48513:2;48507:9;48539:17;;;48614:18;48599:34;;48635:22;;;48596:62;48593:2;;;48671:1;48668;48661:12;48593:2;48687;48680:22;48491:216;;-1:-1;48491:216;48714:304;;48873:18;48865:6;48862:30;48859:2;;;48905:1;48902;48895:12;48859:2;-1:-1;48940:4;48928:17;;;48993:15;;48796:222;49969:317;;50108:18;50100:6;50097:30;50094:2;;;50140:1;50137;50130:12;50094:2;-1:-1;50271:4;50207;50184:17;;;;50203:9;50180:33;50261:15;;50031:255;51275:151;51399:4;51390:14;;51347:79;51918:157;;52012:14;;;52054:4;52041:18;;;51971:104;52247:137;52350:12;;52321:63;53812:178;53930:19;;;53979:4;53970:14;;53923:67;55390:91;;55452:24;55470:5;55452:24;;55488:85;55554:13;55547:21;;55530:43;55659:142;55739:5;55745:51;55739:5;55745:51;;55808:121;55881:42;55870:54;;55853:76;56015:81;56086:4;56075:16;;56058:38;56103:104;56175:26;56164:38;;56147:60;56214:129;;56301:37;56332:5;56350:165;;56451:59;56504:5;56451:59;;56992:142;;57087:42;57123:5;57087:42;;57384:106;;57462:23;57479:5;57462:23;;57498:145;57579:6;57574:3;57569;57556:30;-1:-1;57635:1;57617:16;;57610:27;57549:94;57652:268;57717:1;57724:101;57738:6;57735:1;57732:13;57724:101;;;57805:11;;;57799:18;57786:11;;;57779:39;57760:2;57753:10;57724:101;;;57840:6;57837:1;57834:13;57831:2;;;-1:-1;;57905:1;57887:16;;57880:27;57701:219;58009:97;58097:2;58077:14;58093:7;58073:28;;58057:49;58114:109;58201:1;58194:5;58191:12;58181:2;;58207:9;58230:117;58299:24;58317:5;58299:24;;;58292:5;58289:35;58279:2;;58338:1;58335;58328:12;58354:111;58420:21;58435:5;58420:21;;58472:117;58541:24;58559:5;58541:24;;58720:113;58787:22;58803:5;58787:22;;58840:115;58908:23;58925:5;58908:23;"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"Niki_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"Niki\",\"outputs\":[{\"internalType\":\"contract NikiInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"getReceipt\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasVoted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct NikiGovernorAlpha.Receipt\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"latestProposalIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalMaxOperations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"queue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"quorumVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum NikiGovernorAlpha.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"contract NikiTimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"proposalMaxOperations()\":{\"notice\":\"The maximum number of actions that can be included in a proposal\"},\"proposalThreshold()\":{\"notice\":\"The number of votes required in order for a voter to become a proposer\"},\"quorumVotes()\":{\"notice\":\"The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\"},\"votingDelay()\":{\"notice\":\"The delay before voting on a proposal may take place, once proposed\"},\"votingPeriod()\":{\"notice\":\"The duration of voting on a proposal, in blocks\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiGovernorAlpha.sol\":\"NikiGovernorAlpha\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiGovernorAlpha.sol\":{\"keccak256\":\"0x1138e6901403e56f98152f61e4cc83d711ff07646082a0f0a3c346b1a7200188\",\"urls\":[\"bzz-raw://be985d973b0b96b0c3f2346f26e1e74e83a7c474ac4eded29456f879298cc718\",\"dweb:/ipfs/QmPAkwKqbjUhisWdkDqci4v5t8WfjAv33W9pxH9CSjgwmJ\"]}},\"version\":1}",
      "bytecode": "60806040523480156200001157600080fd5b50604051620039db380380620039db833981016040819052620000349162000079565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000e4565b80516200007381620000ca565b92915050565b600080604083850312156200008d57600080fd5b60006200009b858562000066565b9250506020620000ae8582860162000066565b9150509250929050565b60006001600160a01b03821662000073565b620000d581620000b8565b8114620000e157600080fd5b50565b6138e780620000f46000396000f3fe6080604052600436106101755760003560e01c80634634c61f116100cb578063da35c6641161007f578063deaaa7cc11610059578063deaaa7cc146103d0578063e23a9a52146103e5578063fe0d94c11461041257610175565b8063da35c6641461037b578063da95691a14610390578063ddf0b009146103b057610175565b8063b58131b0116100b0578063b58131b01461032f578063d30c0b9114610344578063d33219b41461036657610175565b80634634c61f146102fa5780637bdbe4d01461031a57610175565b806320606b701161012d5780633932abb1116101075780633932abb1146102985780633e4f49e6146102ad57806340e58ee5146102da57610175565b806320606b701461023e57806324bc1a6414610253578063328dd9821461026857610175565b806306fdde031161015e57806306fdde03146101da57806315373e3d146101fc57806317977c611461021e57610175565b8063013cf08b1461017a57806302a251a3146101b8575b600080fd5b34801561018657600080fd5b5061019a6101953660046125d0565b610425565b6040516101af9998979695949392919061364f565b60405180910390f35b3480156101c457600080fd5b506101cd61048b565b6040516101af91906133bc565b3480156101e657600080fd5b506101ef610492565b6040516101af9190613478565b34801561020857600080fd5b5061021c610217366004612628565b6104cb565b005b34801561022a57600080fd5b506101cd61023936600461244d565b6104da565b34801561024a57600080fd5b506101cd6104ec565b34801561025f57600080fd5b506101cd610503565b34801561027457600080fd5b506102886102833660046125d0565b610513565b6040516101af949392919061336f565b3480156102a457600080fd5b506101cd6107eb565b3480156102b957600080fd5b506102cd6102c83660046125d0565b6107f0565b6040516101af919061346a565b3480156102e657600080fd5b5061021c6102f53660046125d0565b6109bb565b34801561030657600080fd5b5061021c610315366004612658565b610c8d565b34801561032657600080fd5b506101cd610e6f565b34801561033b57600080fd5b506101cd610e74565b34801561035057600080fd5b50610359610e83565b6040516101af919061345c565b34801561037257600080fd5b50610359610e9f565b34801561038757600080fd5b506101cd610ebb565b34801561039c57600080fd5b506101cd6103ab366004612473565b610ec1565b3480156103bc57600080fd5b5061021c6103cb3660046125d0565b6113d2565b3480156103dc57600080fd5b506101cd6116c9565b3480156103f157600080fd5b506104056104003660046125ee565b6116d5565b6040516101af9190613599565b61021c6104203660046125d0565b611756565b6003602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b619d805b90565b6040518060400160405280601381526020017f4e696b6920476f7665726e6f7220416c7068610000000000000000000000000081525081565b6104d633838361198a565b5050565b60046020526000908152604090205481565b6040516104f890613260565b604051809103902081565b6b014adf4b7320334b9000000090565b606080606080600060036000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156105a257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610577575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156105f457602002820191906000526020600020905b8154815260200190600101908083116105e0575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156106e55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152602001906001019061061c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156107d55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b50505050508152602001906001019061070c565b5050505090509450945094509450509193509193565b600190565b600081600254101580156108045750600082115b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613489565b60405180910390fd5b6000828152600360205260409020600b81015460ff16156108685760029150506109b6565b8060070154431161087d5760009150506109b6565b806008015443116108925760019150506109b6565b80600a015481600901541115806108b357506108ac610503565b8160090154105b156108c25760039150506109b6565b60028101546108d55760049150506109b6565b600b810154610100900460ff16156108f15760079150506109b6565b6002810154600054604080517fc1a287e200000000000000000000000000000000000000000000000000000000815290516109a0939273ffffffffffffffffffffffffffffffffffffffff169163c1a287e2916004808301926020929190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b919081019061257d565b611c15565b42106109b05760069150506109b6565b60059150505b919050565b60006109c6826107f0565b905060078160078111156109d657fe5b1415610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134c9565b6000828152600360205260409020610a24610e74565b600180548382015473ffffffffffffffffffffffffffffffffffffffff9182169263782d6fe19290911690610a5a904390611c5b565b6040518363ffffffff1660e01b8152600401610a77929190613291565b60206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac791908101906126c0565b6bffffffffffffffffffffffff1610610b0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613519565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560005b6003820154811015610c505760005460038301805473ffffffffffffffffffffffffffffffffffffffff9092169163591fcdfe919084908110610b7b57fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff9092169185908110610bb057fe5b9060005260206000200154856005018581548110610bca57fe5b90600052602060002001866006018681548110610be357fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c1295949392919061332e565b600060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505060019092019150610b3c9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610c8091906133bc565b60405180910390a1505050565b6000604051610c9b90613260565b60408051918290038220828201909152601382527f4e696b6920476f7665726e6f7220416c706861000000000000000000000000006020909201919091527f6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207610d02611c9d565b30604051602001610d1694939291906133ca565b6040516020818303038152906040528051906020012090506000604051610d3c9061326b565b604051908190038120610d5591899089906020016133ff565b60405160208183030381529060405280519060200120905060008282604051602001610d8292919061322f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dbf9493929190613427565b6020604051602081039080840390855afa158015610de1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134a9565b610e64818a8a61198a565b505050505050505050565b600a90565b6a52b7d2dcc80cd2e400000090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610ecb610e74565b6001805473ffffffffffffffffffffffffffffffffffffffff169063782d6fe1903390610ef9904390611c5b565b6040518363ffffffff1660e01b8152600401610f16929190613276565b60206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6691908101906126c0565b6bffffffffffffffffffffffff1611610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134b9565b84518651148015610fbd575083518651145b8015610fca575082518651145b611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613579565b8551611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134f9565b611040610e6f565b8651111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613569565b33600090815260046020526040902054801561112b57600061109b826107f0565b905060018160078111156110ab57fe5b14156110e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134e9565b60008160078111156110f157fe5b1415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134d9565b505b60006111394361099b6107eb565b905060006111498261099b61048b565b600280546001019055905061115c611e4d565b604051806101a0016040528060025481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060036000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019080519060200190611266929190611ecf565b5060808201518051611282916004840191602090910190611f59565b5060a0820151805161129e916005840191602090910190611fa0565b5060c082015180516112ba916006840191602090910190611ff9565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050806000015160046000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516113ba999897969594939291906135a7565b60405180910390a15193505050505b95945050505050565b60046113dd826107f0565b60078111156113e857fe5b1461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613559565b6000818152600360209081526040808320835482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949361149e93429373ffffffffffffffffffffffffffffffffffffffff90931692636a42b8f892600480840193919291829003018186803b15801561096357600080fd5b905060005b600383015481101561168f576116878360030182815481106114c157fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff90921691849081106114f657fe5b906000526020600020015485600501848154811061151057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050508660060185815481106115d057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018716150201909416939093049283018590048502810185019091528181529283018282801561167c5780601f106116515761010080835404028352916020019161167c565b820191906000526020600020905b81548152906001019060200180831161165f57829003601f168201915b505050505086611ca1565b6001016114a3565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610c8090859084906136d5565b6040516104f89061326b565b6116dd612052565b50600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046bffffffffffffffffffffffff16918101919091525b92915050565b6005611761826107f0565b600781111561176c57fe5b146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613499565b6000818152600360205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055905b600382015481101561194e5760005460048301805473ffffffffffffffffffffffffffffffffffffffff90921691630825f38f91908490811061182057fe5b906000526020600020015484600301848154811061183a57fe5b60009182526020909120015460048601805473ffffffffffffffffffffffffffffffffffffffff909216918690811061186f57fe5b906000526020600020015486600501868154811061188957fe5b906000526020600020018760060187815481106118a257fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118d195949392919061332e565b6000604051808303818588803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611945919081019061259b565b506001016117e1565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161197e91906133bc565b60405180910390a15050565b6001611995836107f0565b60078111156119a057fe5b146119d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613539565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452600c8101909252909120805460ff1615611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613549565b60015460078301546040517f782d6fe100000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff169163782d6fe191611aa3918a91600401613291565b60206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611af391908101906126c0565b90508315611b2157611b178360090154826bffffffffffffffffffffffff16611c15565b6009840155611b43565b611b3d83600a0154826bffffffffffffffffffffffff16611c15565b600a8401555b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010085151502177fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff16620100006bffffffffffffffffffffffff8316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611c0590889088908890869061329f565b60405180910390a1505050505050565b600082820183811015611c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613509565b9392505050565b600082821115611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613589565b50900390565b4690565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091169063f2b0653790611cdc90889088908890889088906020016132d4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611d0e91906133bc565b60206040518083038186803b158015611d2657600080fd5b505afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5e919081019061255f565b15611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613529565b6000546040517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f90190611df390889088908890889088906004016132d4565b602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e45919081019061257d565b505050505050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611f49579160200282015b82811115611f4957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190611eef565b50611f55929150612072565b5090565b828054828255906000526020600020908101928215611f94579160200282015b82811115611f94578251825591602001919060010190611f79565b50611f559291506120ae565b828054828255906000526020600020908101928215611fed579160200282015b82811115611fed5782518051611fdd9184916020909101906120c8565b5091602001919060010190611fc0565b50611f55929150612135565b828054828255906000526020600020908101928215612046579160200282015b8281111561204657825180516120369184916020909101906120c8565b5091602001919060010190612019565b50611f55929150612158565b604080516060810182526000808252602082018190529181019190915290565b61048f91905b80821115611f555780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101612078565b61048f91905b80821115611f5557600081556001016120b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210957805160ff1916838001178555611f94565b82800160010185558215611f945791820182811115611f94578251825591602001919060010190611f79565b61048f91905b80821115611f5557600061214f828261217b565b5060010161213b565b61048f91905b80821115611f55576000612172828261217b565b5060010161215e565b50805460018160011615610100020316600290046000825580601f106121a157506121bf565b601f0160209004906000526020600020908101906121bf91906120ae565b50565b80356117508161386c565b600082601f8301126121de57600080fd5b81356121f16121ec8261370a565b6136e3565b9150818183526020840193506020810190508385602084028201111561221657600080fd5b60005b83811015612242578161222c88826121c2565b8452506020928301929190910190600101612219565b5050505092915050565b600082601f83011261225d57600080fd5b813561226b6121ec8261370a565b81815260209384019390925082018360005b83811015612242578135860161229388826123a2565b845250602092830192919091019060010161227d565b600082601f8301126122ba57600080fd5b81356122c86121ec8261370a565b81815260209384019390925082018360005b8381101561224257813586016122f088826123a2565b84525060209283019291909101906001016122da565b600082601f83011261231757600080fd5b81356123256121ec8261370a565b9150818183526020840193506020810190508385602084028201111561234a57600080fd5b60005b838110156122425781612360888261238c565b845250602092830192919091019060010161234d565b803561175081613880565b805161175081613880565b803561175081613889565b805161175081613889565b600082601f8301126123b357600080fd5b81356123c16121ec8261372b565b915080825260208301602083018583830111156123dd57600080fd5b6123e8838284613802565b50505092915050565b600082601f83011261240257600080fd5b81516124106121ec8261372b565b9150808252602083016020830185838301111561242c57600080fd5b6123e883828461380e565b803561175081613892565b80516117508161389b565b60006020828403121561245f57600080fd5b600061246b84846121c2565b949350505050565b600080600080600060a0868803121561248b57600080fd5b853567ffffffffffffffff8111156124a257600080fd5b6124ae888289016121cd565b955050602086013567ffffffffffffffff8111156124cb57600080fd5b6124d788828901612306565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016122a9565b935050606086013567ffffffffffffffff81111561251d57600080fd5b6125298882890161224c565b925050608086013567ffffffffffffffff81111561254657600080fd5b612552888289016123a2565b9150509295509295909350565b60006020828403121561257157600080fd5b600061246b8484612381565b60006020828403121561258f57600080fd5b600061246b8484612397565b6000602082840312156125ad57600080fd5b815167ffffffffffffffff8111156125c457600080fd5b61246b848285016123f1565b6000602082840312156125e257600080fd5b600061246b848461238c565b6000806040838503121561260157600080fd5b600061260d858561238c565b925050602061261e858286016121c2565b9150509250929050565b6000806040838503121561263b57600080fd5b6000612647858561238c565b925050602061261e85828601612376565b600080600080600060a0868803121561267057600080fd5b600061267c888861238c565b955050602061268d88828901612376565b945050604061269e88828901612437565b93505060606126af8882890161238c565b92505060806125528882890161238c565b6000602082840312156126d257600080fd5b600061246b8484612442565b60006126ea8383612719565b505060200190565b6000611c5483836128bb565b60006126ea83836128a1565b612713816137da565b82525050565b61271381613790565b600061272d82613783565b6127378185613787565b935061274283613771565b8060005b8381101561277057815161275a88826126de565b975061276583613771565b925050600101612746565b509495945050505050565b600061278682613783565b6127908185613787565b9350836020820285016127a285613771565b8060005b858110156127dc57848403895281516127bf85826126f2565b94506127ca83613771565b60209a909a01999250506001016127a6565b5091979650505050505050565b60006127f482613783565b6127fe8185613787565b93508360208202850161281085613771565b8060005b858110156127dc578484038952815161282d85826126f2565b945061283883613771565b60209a909a0199925050600101612814565b600061285582613783565b61285f8185613787565b935061286a83613771565b8060005b8381101561277057815161288288826126fe565b975061288d83613771565b92505060010161286e565b6127138161379b565b6127138161048f565b6127136128b68261048f565b61048f565b60006128c682613783565b6128d08185613787565b93506128e081856020860161380e565b6128e98161383a565b9093019392505050565b600081546001811660008114612910576001811461295457612993565b607f60028304166129218187613787565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168152955050602085019250612993565b600282046129628187613787565b955061296d85613777565b60005b8281101561298c57815488820152600190910190602001612970565b8701945050505b505092915050565b612713816137e1565b612713816137ec565b60006129ba602d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c6981527f642070726f706f73616c20696400000000000000000000000000000000000000602082015260400192915050565b6000612a19604983613787565b7f4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f7081527f6f73616c2063616e206f6e6c792062652065786563757465642069662069742060208201527f6973207175657565640000000000000000000000000000000000000000000000604082015260600192915050565b6000612a9e6002836109b6565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000612ad7603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63617374566f7465427953696781527f3a20696e76616c6964207369676e617475726500000000000000000000000000602082015260400192915050565b6000612b36604383613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73657220766f7465732062656c6f772070726f706f73616c2074687265736860208201527f6f6c640000000000000000000000000000000000000000000000000000000000604082015260600192915050565b6000612bbb603a83613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f81527f742063616e63656c2065786563757465642070726f706f73616c000000000000602082015260400192915050565b6000612c1a605d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c72656164792070656e64696e672070726f706f73616c000000604082015260600192915050565b6000612c9f605c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c7265616479206163746976652070726f706f73616c00000000604082015260600192915050565b6000612d24603083613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d75737481527f2070726f7669646520616374696f6e7300000000000000000000000000000000602082015260400192915050565b6000612d83601183613787565b7f6164646974696f6e206f766572666c6f77000000000000000000000000000000815260200192915050565b6000612dbc6043836109b6565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000612e416027836109b6565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207381527f7570706f72742900000000000000000000000000000000000000000000000000602082015260270192915050565b6000612ea0603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f81527f7365722061626f7665207468726573686f6c6400000000000000000000000000602082015260400192915050565b6000612eff604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f71756575654f72526576657281527f743a2070726f706f73616c20616374696f6e20616c726561647920717565756560208201527f6420617420657461000000000000000000000000000000000000000000000000604082015260600192915050565b6000612f84602e83613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74696e6720697320636c6f736564000000000000000000000000000000000000602082015260400192915050565b6000612fe3603183613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74657220616c726561647920766f746564000000000000000000000000000000602082015260400192915050565b6000613042604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f7381527f616c2063616e206f6e6c7920626520717565756564206966206974206973207360208201527f7563636565646564000000000000000000000000000000000000000000000000604082015260600192915050565b60006130c7602c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f2081527f6d616e7920616374696f6e730000000000000000000000000000000000000000602082015260400192915050565b6000613126604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73616c2066756e6374696f6e20696e666f726d6174696f6e2061726974792060208201527f6d69736d61746368000000000000000000000000000000000000000000000000604082015260600192915050565b60006131ab601583613787565b7f7375627472616374696f6e20756e646572666c6f770000000000000000000000815260200192915050565b805160608301906131e88482612898565b5060208201516131fb6020850182612898565b50604082015161320e6040850182613226565b50505050565b612713816137c3565b612713816137f7565b612713816137c9565b600061323a82612a91565b915061324682856128aa565b60208201915061325682846128aa565b5060200192915050565b600061175082612daf565b600061175082612e34565b60408101613284828561270a565b611c5460208301846128a1565b604081016132848285612719565b608081016132ad8287612719565b6132ba60208301866128a1565b6132c76040830185612898565b6113c9606083018461321d565b60a081016132e28288612719565b6132ef60208301876128a1565b818103604083015261330181866128bb565b9050818103606083015261331581856128bb565b905061332460808301846128a1565b9695505050505050565b60a0810161333c8288612719565b61334960208301876128a1565b818103604083015261335b81866128f3565b9050818103606083015261331581856128f3565b608080825281016133808187612722565b90508181036020830152613394818661284a565b905081810360408301526133a881856127e9565b90508181036060830152613324818461277b565b6020810161175082846128a1565b608081016133d882876128a1565b6133e560208301866128a1565b6133f260408301856128a1565b6113c96060830184612719565b6060810161340d82866128a1565b61341a60208301856128a1565b61246b6040830184612898565b6080810161343582876128a1565b6134426020830186613214565b61344f60408301856128a1565b6113c960608301846128a1565b60208101611750828461299b565b6020810161175082846129a4565b60208082528101611c5481846128bb565b60208082528101611750816129ad565b6020808252810161175081612a0c565b6020808252810161175081612aca565b6020808252810161175081612b29565b6020808252810161175081612bae565b6020808252810161175081612c0d565b6020808252810161175081612c92565b6020808252810161175081612d17565b6020808252810161175081612d76565b6020808252810161175081612e93565b6020808252810161175081612ef2565b6020808252810161175081612f77565b6020808252810161175081612fd6565b6020808252810161175081613035565b60208082528101611750816130ba565b6020808252810161175081613119565b602080825281016117508161319e565b6060810161175082846131d7565b61012081016135b6828c6128a1565b6135c3602083018b61270a565b81810360408301526135d5818a612722565b905081810360608301526135e9818961284a565b905081810360808301526135fd81886127e9565b905081810360a0830152613611818761277b565b905061362060c08301866128a1565b61362d60e08301856128a1565b81810361010083015261364081846128bb565b9b9a5050505050505050505050565b610120810161365e828c6128a1565b61366b602083018b612719565b613678604083018a6128a1565b61368560608301896128a1565b61369260808301886128a1565b61369f60a08301876128a1565b6136ac60c08301866128a1565b6136b960e0830185612898565b6136c7610100830184612898565b9a9950505050505050505050565b6040810161328482856128a1565b60405181810167ffffffffffffffff8111828210171561370257600080fd5b604052919050565b600067ffffffffffffffff82111561372157600080fd5b5060209081020190565b600067ffffffffffffffff82111561374257600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611750826137aa565b151590565b806109b681613862565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b6000611750825b600061175082613790565b6000611750826137a0565b6000611750826137c9565b82818337506000910152565b60005b83811015613829578181015183820152602001613811565b8381111561320e5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600881106121bf57fe5b61387581613790565b81146121bf57600080fd5b6138758161379b565b6138758161048f565b613875816137c3565b613875816137c956fea365627a7a72315820026155fc5544e5f2875e2770628649b0cd78acc52d27edfc6cc12407af0d88c46c6578706572696d656e74616cf564736f6c63430005100040",
      "bin": "60806040523480156200001157600080fd5b50604051620039db380380620039db833981016040819052620000349162000079565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000e4565b80516200007381620000ca565b92915050565b600080604083850312156200008d57600080fd5b60006200009b858562000066565b9250506020620000ae8582860162000066565b9150509250929050565b60006001600160a01b03821662000073565b620000d581620000b8565b8114620000e157600080fd5b50565b6138e780620000f46000396000f3fe6080604052600436106101755760003560e01c80634634c61f116100cb578063da35c6641161007f578063deaaa7cc11610059578063deaaa7cc146103d0578063e23a9a52146103e5578063fe0d94c11461041257610175565b8063da35c6641461037b578063da95691a14610390578063ddf0b009146103b057610175565b8063b58131b0116100b0578063b58131b01461032f578063d30c0b9114610344578063d33219b41461036657610175565b80634634c61f146102fa5780637bdbe4d01461031a57610175565b806320606b701161012d5780633932abb1116101075780633932abb1146102985780633e4f49e6146102ad57806340e58ee5146102da57610175565b806320606b701461023e57806324bc1a6414610253578063328dd9821461026857610175565b806306fdde031161015e57806306fdde03146101da57806315373e3d146101fc57806317977c611461021e57610175565b8063013cf08b1461017a57806302a251a3146101b8575b600080fd5b34801561018657600080fd5b5061019a6101953660046125d0565b610425565b6040516101af9998979695949392919061364f565b60405180910390f35b3480156101c457600080fd5b506101cd61048b565b6040516101af91906133bc565b3480156101e657600080fd5b506101ef610492565b6040516101af9190613478565b34801561020857600080fd5b5061021c610217366004612628565b6104cb565b005b34801561022a57600080fd5b506101cd61023936600461244d565b6104da565b34801561024a57600080fd5b506101cd6104ec565b34801561025f57600080fd5b506101cd610503565b34801561027457600080fd5b506102886102833660046125d0565b610513565b6040516101af949392919061336f565b3480156102a457600080fd5b506101cd6107eb565b3480156102b957600080fd5b506102cd6102c83660046125d0565b6107f0565b6040516101af919061346a565b3480156102e657600080fd5b5061021c6102f53660046125d0565b6109bb565b34801561030657600080fd5b5061021c610315366004612658565b610c8d565b34801561032657600080fd5b506101cd610e6f565b34801561033b57600080fd5b506101cd610e74565b34801561035057600080fd5b50610359610e83565b6040516101af919061345c565b34801561037257600080fd5b50610359610e9f565b34801561038757600080fd5b506101cd610ebb565b34801561039c57600080fd5b506101cd6103ab366004612473565b610ec1565b3480156103bc57600080fd5b5061021c6103cb3660046125d0565b6113d2565b3480156103dc57600080fd5b506101cd6116c9565b3480156103f157600080fd5b506104056104003660046125ee565b6116d5565b6040516101af9190613599565b61021c6104203660046125d0565b611756565b6003602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b619d805b90565b6040518060400160405280601381526020017f4e696b6920476f7665726e6f7220416c7068610000000000000000000000000081525081565b6104d633838361198a565b5050565b60046020526000908152604090205481565b6040516104f890613260565b604051809103902081565b6b014adf4b7320334b9000000090565b606080606080600060036000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156105a257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610577575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156105f457602002820191906000526020600020905b8154815260200190600101908083116105e0575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156106e55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152602001906001019061061c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156107d55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b50505050508152602001906001019061070c565b5050505090509450945094509450509193509193565b600190565b600081600254101580156108045750600082115b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613489565b60405180910390fd5b6000828152600360205260409020600b81015460ff16156108685760029150506109b6565b8060070154431161087d5760009150506109b6565b806008015443116108925760019150506109b6565b80600a015481600901541115806108b357506108ac610503565b8160090154105b156108c25760039150506109b6565b60028101546108d55760049150506109b6565b600b810154610100900460ff16156108f15760079150506109b6565b6002810154600054604080517fc1a287e200000000000000000000000000000000000000000000000000000000815290516109a0939273ffffffffffffffffffffffffffffffffffffffff169163c1a287e2916004808301926020929190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b919081019061257d565b611c15565b42106109b05760069150506109b6565b60059150505b919050565b60006109c6826107f0565b905060078160078111156109d657fe5b1415610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134c9565b6000828152600360205260409020610a24610e74565b600180548382015473ffffffffffffffffffffffffffffffffffffffff9182169263782d6fe19290911690610a5a904390611c5b565b6040518363ffffffff1660e01b8152600401610a77929190613291565b60206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac791908101906126c0565b6bffffffffffffffffffffffff1610610b0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613519565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560005b6003820154811015610c505760005460038301805473ffffffffffffffffffffffffffffffffffffffff9092169163591fcdfe919084908110610b7b57fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff9092169185908110610bb057fe5b9060005260206000200154856005018581548110610bca57fe5b90600052602060002001866006018681548110610be357fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c1295949392919061332e565b600060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505060019092019150610b3c9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610c8091906133bc565b60405180910390a1505050565b6000604051610c9b90613260565b60408051918290038220828201909152601382527f4e696b6920476f7665726e6f7220416c706861000000000000000000000000006020909201919091527f6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207610d02611c9d565b30604051602001610d1694939291906133ca565b6040516020818303038152906040528051906020012090506000604051610d3c9061326b565b604051908190038120610d5591899089906020016133ff565b60405160208183030381529060405280519060200120905060008282604051602001610d8292919061322f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dbf9493929190613427565b6020604051602081039080840390855afa158015610de1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134a9565b610e64818a8a61198a565b505050505050505050565b600a90565b6a52b7d2dcc80cd2e400000090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610ecb610e74565b6001805473ffffffffffffffffffffffffffffffffffffffff169063782d6fe1903390610ef9904390611c5b565b6040518363ffffffff1660e01b8152600401610f16929190613276565b60206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6691908101906126c0565b6bffffffffffffffffffffffff1611610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134b9565b84518651148015610fbd575083518651145b8015610fca575082518651145b611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613579565b8551611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134f9565b611040610e6f565b8651111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613569565b33600090815260046020526040902054801561112b57600061109b826107f0565b905060018160078111156110ab57fe5b14156110e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134e9565b60008160078111156110f157fe5b1415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134d9565b505b60006111394361099b6107eb565b905060006111498261099b61048b565b600280546001019055905061115c611e4d565b604051806101a0016040528060025481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060036000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019080519060200190611266929190611ecf565b5060808201518051611282916004840191602090910190611f59565b5060a0820151805161129e916005840191602090910190611fa0565b5060c082015180516112ba916006840191602090910190611ff9565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050806000015160046000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516113ba999897969594939291906135a7565b60405180910390a15193505050505b95945050505050565b60046113dd826107f0565b60078111156113e857fe5b1461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613559565b6000818152600360209081526040808320835482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949361149e93429373ffffffffffffffffffffffffffffffffffffffff90931692636a42b8f892600480840193919291829003018186803b15801561096357600080fd5b905060005b600383015481101561168f576116878360030182815481106114c157fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff90921691849081106114f657fe5b906000526020600020015485600501848154811061151057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050508660060185815481106115d057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018716150201909416939093049283018590048502810185019091528181529283018282801561167c5780601f106116515761010080835404028352916020019161167c565b820191906000526020600020905b81548152906001019060200180831161165f57829003601f168201915b505050505086611ca1565b6001016114a3565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610c8090859084906136d5565b6040516104f89061326b565b6116dd612052565b50600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046bffffffffffffffffffffffff16918101919091525b92915050565b6005611761826107f0565b600781111561176c57fe5b146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613499565b6000818152600360205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055905b600382015481101561194e5760005460048301805473ffffffffffffffffffffffffffffffffffffffff90921691630825f38f91908490811061182057fe5b906000526020600020015484600301848154811061183a57fe5b60009182526020909120015460048601805473ffffffffffffffffffffffffffffffffffffffff909216918690811061186f57fe5b906000526020600020015486600501868154811061188957fe5b906000526020600020018760060187815481106118a257fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118d195949392919061332e565b6000604051808303818588803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611945919081019061259b565b506001016117e1565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161197e91906133bc565b60405180910390a15050565b6001611995836107f0565b60078111156119a057fe5b146119d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613539565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452600c8101909252909120805460ff1615611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613549565b60015460078301546040517f782d6fe100000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff169163782d6fe191611aa3918a91600401613291565b60206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611af391908101906126c0565b90508315611b2157611b178360090154826bffffffffffffffffffffffff16611c15565b6009840155611b43565b611b3d83600a0154826bffffffffffffffffffffffff16611c15565b600a8401555b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010085151502177fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff16620100006bffffffffffffffffffffffff8316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611c0590889088908890869061329f565b60405180910390a1505050505050565b600082820183811015611c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613509565b9392505050565b600082821115611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613589565b50900390565b4690565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091169063f2b0653790611cdc90889088908890889088906020016132d4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611d0e91906133bc565b60206040518083038186803b158015611d2657600080fd5b505afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5e919081019061255f565b15611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613529565b6000546040517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f90190611df390889088908890889088906004016132d4565b602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e45919081019061257d565b505050505050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611f49579160200282015b82811115611f4957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190611eef565b50611f55929150612072565b5090565b828054828255906000526020600020908101928215611f94579160200282015b82811115611f94578251825591602001919060010190611f79565b50611f559291506120ae565b828054828255906000526020600020908101928215611fed579160200282015b82811115611fed5782518051611fdd9184916020909101906120c8565b5091602001919060010190611fc0565b50611f55929150612135565b828054828255906000526020600020908101928215612046579160200282015b8281111561204657825180516120369184916020909101906120c8565b5091602001919060010190612019565b50611f55929150612158565b604080516060810182526000808252602082018190529181019190915290565b61048f91905b80821115611f555780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101612078565b61048f91905b80821115611f5557600081556001016120b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210957805160ff1916838001178555611f94565b82800160010185558215611f945791820182811115611f94578251825591602001919060010190611f79565b61048f91905b80821115611f5557600061214f828261217b565b5060010161213b565b61048f91905b80821115611f55576000612172828261217b565b5060010161215e565b50805460018160011615610100020316600290046000825580601f106121a157506121bf565b601f0160209004906000526020600020908101906121bf91906120ae565b50565b80356117508161386c565b600082601f8301126121de57600080fd5b81356121f16121ec8261370a565b6136e3565b9150818183526020840193506020810190508385602084028201111561221657600080fd5b60005b83811015612242578161222c88826121c2565b8452506020928301929190910190600101612219565b5050505092915050565b600082601f83011261225d57600080fd5b813561226b6121ec8261370a565b81815260209384019390925082018360005b83811015612242578135860161229388826123a2565b845250602092830192919091019060010161227d565b600082601f8301126122ba57600080fd5b81356122c86121ec8261370a565b81815260209384019390925082018360005b8381101561224257813586016122f088826123a2565b84525060209283019291909101906001016122da565b600082601f83011261231757600080fd5b81356123256121ec8261370a565b9150818183526020840193506020810190508385602084028201111561234a57600080fd5b60005b838110156122425781612360888261238c565b845250602092830192919091019060010161234d565b803561175081613880565b805161175081613880565b803561175081613889565b805161175081613889565b600082601f8301126123b357600080fd5b81356123c16121ec8261372b565b915080825260208301602083018583830111156123dd57600080fd5b6123e8838284613802565b50505092915050565b600082601f83011261240257600080fd5b81516124106121ec8261372b565b9150808252602083016020830185838301111561242c57600080fd5b6123e883828461380e565b803561175081613892565b80516117508161389b565b60006020828403121561245f57600080fd5b600061246b84846121c2565b949350505050565b600080600080600060a0868803121561248b57600080fd5b853567ffffffffffffffff8111156124a257600080fd5b6124ae888289016121cd565b955050602086013567ffffffffffffffff8111156124cb57600080fd5b6124d788828901612306565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016122a9565b935050606086013567ffffffffffffffff81111561251d57600080fd5b6125298882890161224c565b925050608086013567ffffffffffffffff81111561254657600080fd5b612552888289016123a2565b9150509295509295909350565b60006020828403121561257157600080fd5b600061246b8484612381565b60006020828403121561258f57600080fd5b600061246b8484612397565b6000602082840312156125ad57600080fd5b815167ffffffffffffffff8111156125c457600080fd5b61246b848285016123f1565b6000602082840312156125e257600080fd5b600061246b848461238c565b6000806040838503121561260157600080fd5b600061260d858561238c565b925050602061261e858286016121c2565b9150509250929050565b6000806040838503121561263b57600080fd5b6000612647858561238c565b925050602061261e85828601612376565b600080600080600060a0868803121561267057600080fd5b600061267c888861238c565b955050602061268d88828901612376565b945050604061269e88828901612437565b93505060606126af8882890161238c565b92505060806125528882890161238c565b6000602082840312156126d257600080fd5b600061246b8484612442565b60006126ea8383612719565b505060200190565b6000611c5483836128bb565b60006126ea83836128a1565b612713816137da565b82525050565b61271381613790565b600061272d82613783565b6127378185613787565b935061274283613771565b8060005b8381101561277057815161275a88826126de565b975061276583613771565b925050600101612746565b509495945050505050565b600061278682613783565b6127908185613787565b9350836020820285016127a285613771565b8060005b858110156127dc57848403895281516127bf85826126f2565b94506127ca83613771565b60209a909a01999250506001016127a6565b5091979650505050505050565b60006127f482613783565b6127fe8185613787565b93508360208202850161281085613771565b8060005b858110156127dc578484038952815161282d85826126f2565b945061283883613771565b60209a909a0199925050600101612814565b600061285582613783565b61285f8185613787565b935061286a83613771565b8060005b8381101561277057815161288288826126fe565b975061288d83613771565b92505060010161286e565b6127138161379b565b6127138161048f565b6127136128b68261048f565b61048f565b60006128c682613783565b6128d08185613787565b93506128e081856020860161380e565b6128e98161383a565b9093019392505050565b600081546001811660008114612910576001811461295457612993565b607f60028304166129218187613787565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168152955050602085019250612993565b600282046129628187613787565b955061296d85613777565b60005b8281101561298c57815488820152600190910190602001612970565b8701945050505b505092915050565b612713816137e1565b612713816137ec565b60006129ba602d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c6981527f642070726f706f73616c20696400000000000000000000000000000000000000602082015260400192915050565b6000612a19604983613787565b7f4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f7081527f6f73616c2063616e206f6e6c792062652065786563757465642069662069742060208201527f6973207175657565640000000000000000000000000000000000000000000000604082015260600192915050565b6000612a9e6002836109b6565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000612ad7603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63617374566f7465427953696781527f3a20696e76616c6964207369676e617475726500000000000000000000000000602082015260400192915050565b6000612b36604383613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73657220766f7465732062656c6f772070726f706f73616c2074687265736860208201527f6f6c640000000000000000000000000000000000000000000000000000000000604082015260600192915050565b6000612bbb603a83613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f81527f742063616e63656c2065786563757465642070726f706f73616c000000000000602082015260400192915050565b6000612c1a605d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c72656164792070656e64696e672070726f706f73616c000000604082015260600192915050565b6000612c9f605c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c7265616479206163746976652070726f706f73616c00000000604082015260600192915050565b6000612d24603083613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d75737481527f2070726f7669646520616374696f6e7300000000000000000000000000000000602082015260400192915050565b6000612d83601183613787565b7f6164646974696f6e206f766572666c6f77000000000000000000000000000000815260200192915050565b6000612dbc6043836109b6565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000612e416027836109b6565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207381527f7570706f72742900000000000000000000000000000000000000000000000000602082015260270192915050565b6000612ea0603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f81527f7365722061626f7665207468726573686f6c6400000000000000000000000000602082015260400192915050565b6000612eff604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f71756575654f72526576657281527f743a2070726f706f73616c20616374696f6e20616c726561647920717565756560208201527f6420617420657461000000000000000000000000000000000000000000000000604082015260600192915050565b6000612f84602e83613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74696e6720697320636c6f736564000000000000000000000000000000000000602082015260400192915050565b6000612fe3603183613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74657220616c726561647920766f746564000000000000000000000000000000602082015260400192915050565b6000613042604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f7381527f616c2063616e206f6e6c7920626520717565756564206966206974206973207360208201527f7563636565646564000000000000000000000000000000000000000000000000604082015260600192915050565b60006130c7602c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f2081527f6d616e7920616374696f6e730000000000000000000000000000000000000000602082015260400192915050565b6000613126604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73616c2066756e6374696f6e20696e666f726d6174696f6e2061726974792060208201527f6d69736d61746368000000000000000000000000000000000000000000000000604082015260600192915050565b60006131ab601583613787565b7f7375627472616374696f6e20756e646572666c6f770000000000000000000000815260200192915050565b805160608301906131e88482612898565b5060208201516131fb6020850182612898565b50604082015161320e6040850182613226565b50505050565b612713816137c3565b612713816137f7565b612713816137c9565b600061323a82612a91565b915061324682856128aa565b60208201915061325682846128aa565b5060200192915050565b600061175082612daf565b600061175082612e34565b60408101613284828561270a565b611c5460208301846128a1565b604081016132848285612719565b608081016132ad8287612719565b6132ba60208301866128a1565b6132c76040830185612898565b6113c9606083018461321d565b60a081016132e28288612719565b6132ef60208301876128a1565b818103604083015261330181866128bb565b9050818103606083015261331581856128bb565b905061332460808301846128a1565b9695505050505050565b60a0810161333c8288612719565b61334960208301876128a1565b818103604083015261335b81866128f3565b9050818103606083015261331581856128f3565b608080825281016133808187612722565b90508181036020830152613394818661284a565b905081810360408301526133a881856127e9565b90508181036060830152613324818461277b565b6020810161175082846128a1565b608081016133d882876128a1565b6133e560208301866128a1565b6133f260408301856128a1565b6113c96060830184612719565b6060810161340d82866128a1565b61341a60208301856128a1565b61246b6040830184612898565b6080810161343582876128a1565b6134426020830186613214565b61344f60408301856128a1565b6113c960608301846128a1565b60208101611750828461299b565b6020810161175082846129a4565b60208082528101611c5481846128bb565b60208082528101611750816129ad565b6020808252810161175081612a0c565b6020808252810161175081612aca565b6020808252810161175081612b29565b6020808252810161175081612bae565b6020808252810161175081612c0d565b6020808252810161175081612c92565b6020808252810161175081612d17565b6020808252810161175081612d76565b6020808252810161175081612e93565b6020808252810161175081612ef2565b6020808252810161175081612f77565b6020808252810161175081612fd6565b6020808252810161175081613035565b60208082528101611750816130ba565b6020808252810161175081613119565b602080825281016117508161319e565b6060810161175082846131d7565b61012081016135b6828c6128a1565b6135c3602083018b61270a565b81810360408301526135d5818a612722565b905081810360608301526135e9818961284a565b905081810360808301526135fd81886127e9565b905081810360a0830152613611818761277b565b905061362060c08301866128a1565b61362d60e08301856128a1565b81810361010083015261364081846128bb565b9b9a5050505050505050505050565b610120810161365e828c6128a1565b61366b602083018b612719565b613678604083018a6128a1565b61368560608301896128a1565b61369260808301886128a1565b61369f60a08301876128a1565b6136ac60c08301866128a1565b6136b960e0830185612898565b6136c7610100830184612898565b9a9950505050505050505050565b6040810161328482856128a1565b60405181810167ffffffffffffffff8111828210171561370257600080fd5b604052919050565b600067ffffffffffffffff82111561372157600080fd5b5060209081020190565b600067ffffffffffffffff82111561374257600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611750826137aa565b151590565b806109b681613862565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b6000611750825b600061175082613790565b6000611750826137a0565b6000611750826137c9565b82818337506000910152565b60005b83811015613829578181015183820152602001613811565b8381111561320e5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600881106121bf57fe5b61387581613790565b81146121bf57600080fd5b6138758161379b565b6138758161048f565b613875816137c3565b613875816137c956fea365627a7a72315820026155fc5544e5f2875e2770628649b0cd78acc52d27edfc6cc12407af0d88c46c6578706572696d656e74616cf564736f6c63430005100040",
      "bin-runtime": "6080604052600436106101755760003560e01c80634634c61f116100cb578063da35c6641161007f578063deaaa7cc11610059578063deaaa7cc146103d0578063e23a9a52146103e5578063fe0d94c11461041257610175565b8063da35c6641461037b578063da95691a14610390578063ddf0b009146103b057610175565b8063b58131b0116100b0578063b58131b01461032f578063d30c0b9114610344578063d33219b41461036657610175565b80634634c61f146102fa5780637bdbe4d01461031a57610175565b806320606b701161012d5780633932abb1116101075780633932abb1146102985780633e4f49e6146102ad57806340e58ee5146102da57610175565b806320606b701461023e57806324bc1a6414610253578063328dd9821461026857610175565b806306fdde031161015e57806306fdde03146101da57806315373e3d146101fc57806317977c611461021e57610175565b8063013cf08b1461017a57806302a251a3146101b8575b600080fd5b34801561018657600080fd5b5061019a6101953660046125d0565b610425565b6040516101af9998979695949392919061364f565b60405180910390f35b3480156101c457600080fd5b506101cd61048b565b6040516101af91906133bc565b3480156101e657600080fd5b506101ef610492565b6040516101af9190613478565b34801561020857600080fd5b5061021c610217366004612628565b6104cb565b005b34801561022a57600080fd5b506101cd61023936600461244d565b6104da565b34801561024a57600080fd5b506101cd6104ec565b34801561025f57600080fd5b506101cd610503565b34801561027457600080fd5b506102886102833660046125d0565b610513565b6040516101af949392919061336f565b3480156102a457600080fd5b506101cd6107eb565b3480156102b957600080fd5b506102cd6102c83660046125d0565b6107f0565b6040516101af919061346a565b3480156102e657600080fd5b5061021c6102f53660046125d0565b6109bb565b34801561030657600080fd5b5061021c610315366004612658565b610c8d565b34801561032657600080fd5b506101cd610e6f565b34801561033b57600080fd5b506101cd610e74565b34801561035057600080fd5b50610359610e83565b6040516101af919061345c565b34801561037257600080fd5b50610359610e9f565b34801561038757600080fd5b506101cd610ebb565b34801561039c57600080fd5b506101cd6103ab366004612473565b610ec1565b3480156103bc57600080fd5b5061021c6103cb3660046125d0565b6113d2565b3480156103dc57600080fd5b506101cd6116c9565b3480156103f157600080fd5b506104056104003660046125ee565b6116d5565b6040516101af9190613599565b61021c6104203660046125d0565b611756565b6003602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b619d805b90565b6040518060400160405280601381526020017f4e696b6920476f7665726e6f7220416c7068610000000000000000000000000081525081565b6104d633838361198a565b5050565b60046020526000908152604090205481565b6040516104f890613260565b604051809103902081565b6b014adf4b7320334b9000000090565b606080606080600060036000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156105a257602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610577575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156105f457602002820191906000526020600020905b8154815260200190600101908083116105e0575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156106e55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b50505050508152602001906001019061061c565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156107d55760008481526020908190208301805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b50505050508152602001906001019061070c565b5050505090509450945094509450509193509193565b600190565b600081600254101580156108045750600082115b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613489565b60405180910390fd5b6000828152600360205260409020600b81015460ff16156108685760029150506109b6565b8060070154431161087d5760009150506109b6565b806008015443116108925760019150506109b6565b80600a015481600901541115806108b357506108ac610503565b8160090154105b156108c25760039150506109b6565b60028101546108d55760049150506109b6565b600b810154610100900460ff16156108f15760079150506109b6565b6002810154600054604080517fc1a287e200000000000000000000000000000000000000000000000000000000815290516109a0939273ffffffffffffffffffffffffffffffffffffffff169163c1a287e2916004808301926020929190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061099b919081019061257d565b611c15565b42106109b05760069150506109b6565b60059150505b919050565b60006109c6826107f0565b905060078160078111156109d657fe5b1415610a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134c9565b6000828152600360205260409020610a24610e74565b600180548382015473ffffffffffffffffffffffffffffffffffffffff9182169263782d6fe19290911690610a5a904390611c5b565b6040518363ffffffff1660e01b8152600401610a77929190613291565b60206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac791908101906126c0565b6bffffffffffffffffffffffff1610610b0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613519565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560005b6003820154811015610c505760005460038301805473ffffffffffffffffffffffffffffffffffffffff9092169163591fcdfe919084908110610b7b57fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff9092169185908110610bb057fe5b9060005260206000200154856005018581548110610bca57fe5b90600052602060002001866006018681548110610be357fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c1295949392919061332e565b600060405180830381600087803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b505060019092019150610b3c9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610c8091906133bc565b60405180910390a1505050565b6000604051610c9b90613260565b60408051918290038220828201909152601382527f4e696b6920476f7665726e6f7220416c706861000000000000000000000000006020909201919091527f6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207610d02611c9d565b30604051602001610d1694939291906133ca565b6040516020818303038152906040528051906020012090506000604051610d3c9061326b565b604051908190038120610d5591899089906020016133ff565b60405160208183030381529060405280519060200120905060008282604051602001610d8292919061322f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dbf9493929190613427565b6020604051602081039080840390855afa158015610de1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134a9565b610e64818a8a61198a565b505050505050505050565b600a90565b6a52b7d2dcc80cd2e400000090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610ecb610e74565b6001805473ffffffffffffffffffffffffffffffffffffffff169063782d6fe1903390610ef9904390611c5b565b6040518363ffffffff1660e01b8152600401610f16929190613276565b60206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6691908101906126c0565b6bffffffffffffffffffffffff1611610fab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134b9565b84518651148015610fbd575083518651145b8015610fca575082518651145b611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613579565b8551611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134f9565b611040610e6f565b8651111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613569565b33600090815260046020526040902054801561112b57600061109b826107f0565b905060018160078111156110ab57fe5b14156110e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134e9565b60008160078111156110f157fe5b1415611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906134d9565b505b60006111394361099b6107eb565b905060006111498261099b61048b565b600280546001019055905061115c611e4d565b604051806101a0016040528060025481526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060036000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003019080519060200190611266929190611ecf565b5060808201518051611282916004840191602090910190611f59565b5060a0820151805161129e916005840191602090910190611fa0565b5060c082015180516112ba916006840191602090910190611ff9565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff021916908315150217905550905050806000015160046000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e6040516113ba999897969594939291906135a7565b60405180910390a15193505050505b95945050505050565b60046113dd826107f0565b60078111156113e857fe5b1461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613559565b6000818152600360209081526040808320835482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949361149e93429373ffffffffffffffffffffffffffffffffffffffff90931692636a42b8f892600480840193919291829003018186803b15801561096357600080fd5b905060005b600383015481101561168f576116878360030182815481106114c157fe5b60009182526020909120015460048501805473ffffffffffffffffffffffffffffffffffffffff90921691849081106114f657fe5b906000526020600020015485600501848154811061151057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941693909304928301859004850281018501909152818152928301828280156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050508660060185815481106115d057fe5b600091825260209182902001805460408051601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018716150201909416939093049283018590048502810185019091528181529283018282801561167c5780601f106116515761010080835404028352916020019161167c565b820191906000526020600020905b81548152906001019060200180831161165f57829003601f168201915b505050505086611ca1565b6001016114a3565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610c8090859084906136d5565b6040516104f89061326b565b6116dd612052565b50600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046bffffffffffffffffffffffff16918101919091525b92915050565b6005611761826107f0565b600781111561176c57fe5b146117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613499565b6000818152600360205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055905b600382015481101561194e5760005460048301805473ffffffffffffffffffffffffffffffffffffffff90921691630825f38f91908490811061182057fe5b906000526020600020015484600301848154811061183a57fe5b60009182526020909120015460048601805473ffffffffffffffffffffffffffffffffffffffff909216918690811061186f57fe5b906000526020600020015486600501868154811061188957fe5b906000526020600020018760060187815481106118a257fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118d195949392919061332e565b6000604051808303818588803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611945919081019061259b565b506001016117e1565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161197e91906133bc565b60405180910390a15050565b6001611995836107f0565b60078111156119a057fe5b146119d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613539565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452600c8101909252909120805460ff1615611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613549565b60015460078301546040517f782d6fe100000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff169163782d6fe191611aa3918a91600401613291565b60206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611af391908101906126c0565b90508315611b2157611b178360090154826bffffffffffffffffffffffff16611c15565b6009840155611b43565b611b3d83600a0154826bffffffffffffffffffffffff16611c15565b600a8401555b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010085151502177fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff16620100006bffffffffffffffffffffffff8316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611c0590889088908890869061329f565b60405180910390a1505050505050565b600082820183811015611c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613509565b9392505050565b600082821115611c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613589565b50900390565b4690565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091169063f2b0653790611cdc90889088908890889088906020016132d4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611d0e91906133bc565b60206040518083038186803b158015611d2657600080fd5b505afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5e919081019061255f565b15611d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613529565b6000546040517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f90190611df390889088908890889088906004016132d4565b602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e45919081019061257d565b505050505050565b604051806101a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611f49579160200282015b82811115611f4957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190611eef565b50611f55929150612072565b5090565b828054828255906000526020600020908101928215611f94579160200282015b82811115611f94578251825591602001919060010190611f79565b50611f559291506120ae565b828054828255906000526020600020908101928215611fed579160200282015b82811115611fed5782518051611fdd9184916020909101906120c8565b5091602001919060010190611fc0565b50611f55929150612135565b828054828255906000526020600020908101928215612046579160200282015b8281111561204657825180516120369184916020909101906120c8565b5091602001919060010190612019565b50611f55929150612158565b604080516060810182526000808252602082018190529181019190915290565b61048f91905b80821115611f555780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101612078565b61048f91905b80821115611f5557600081556001016120b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210957805160ff1916838001178555611f94565b82800160010185558215611f945791820182811115611f94578251825591602001919060010190611f79565b61048f91905b80821115611f5557600061214f828261217b565b5060010161213b565b61048f91905b80821115611f55576000612172828261217b565b5060010161215e565b50805460018160011615610100020316600290046000825580601f106121a157506121bf565b601f0160209004906000526020600020908101906121bf91906120ae565b50565b80356117508161386c565b600082601f8301126121de57600080fd5b81356121f16121ec8261370a565b6136e3565b9150818183526020840193506020810190508385602084028201111561221657600080fd5b60005b83811015612242578161222c88826121c2565b8452506020928301929190910190600101612219565b5050505092915050565b600082601f83011261225d57600080fd5b813561226b6121ec8261370a565b81815260209384019390925082018360005b83811015612242578135860161229388826123a2565b845250602092830192919091019060010161227d565b600082601f8301126122ba57600080fd5b81356122c86121ec8261370a565b81815260209384019390925082018360005b8381101561224257813586016122f088826123a2565b84525060209283019291909101906001016122da565b600082601f83011261231757600080fd5b81356123256121ec8261370a565b9150818183526020840193506020810190508385602084028201111561234a57600080fd5b60005b838110156122425781612360888261238c565b845250602092830192919091019060010161234d565b803561175081613880565b805161175081613880565b803561175081613889565b805161175081613889565b600082601f8301126123b357600080fd5b81356123c16121ec8261372b565b915080825260208301602083018583830111156123dd57600080fd5b6123e8838284613802565b50505092915050565b600082601f83011261240257600080fd5b81516124106121ec8261372b565b9150808252602083016020830185838301111561242c57600080fd5b6123e883828461380e565b803561175081613892565b80516117508161389b565b60006020828403121561245f57600080fd5b600061246b84846121c2565b949350505050565b600080600080600060a0868803121561248b57600080fd5b853567ffffffffffffffff8111156124a257600080fd5b6124ae888289016121cd565b955050602086013567ffffffffffffffff8111156124cb57600080fd5b6124d788828901612306565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016122a9565b935050606086013567ffffffffffffffff81111561251d57600080fd5b6125298882890161224c565b925050608086013567ffffffffffffffff81111561254657600080fd5b612552888289016123a2565b9150509295509295909350565b60006020828403121561257157600080fd5b600061246b8484612381565b60006020828403121561258f57600080fd5b600061246b8484612397565b6000602082840312156125ad57600080fd5b815167ffffffffffffffff8111156125c457600080fd5b61246b848285016123f1565b6000602082840312156125e257600080fd5b600061246b848461238c565b6000806040838503121561260157600080fd5b600061260d858561238c565b925050602061261e858286016121c2565b9150509250929050565b6000806040838503121561263b57600080fd5b6000612647858561238c565b925050602061261e85828601612376565b600080600080600060a0868803121561267057600080fd5b600061267c888861238c565b955050602061268d88828901612376565b945050604061269e88828901612437565b93505060606126af8882890161238c565b92505060806125528882890161238c565b6000602082840312156126d257600080fd5b600061246b8484612442565b60006126ea8383612719565b505060200190565b6000611c5483836128bb565b60006126ea83836128a1565b612713816137da565b82525050565b61271381613790565b600061272d82613783565b6127378185613787565b935061274283613771565b8060005b8381101561277057815161275a88826126de565b975061276583613771565b925050600101612746565b509495945050505050565b600061278682613783565b6127908185613787565b9350836020820285016127a285613771565b8060005b858110156127dc57848403895281516127bf85826126f2565b94506127ca83613771565b60209a909a01999250506001016127a6565b5091979650505050505050565b60006127f482613783565b6127fe8185613787565b93508360208202850161281085613771565b8060005b858110156127dc578484038952815161282d85826126f2565b945061283883613771565b60209a909a0199925050600101612814565b600061285582613783565b61285f8185613787565b935061286a83613771565b8060005b8381101561277057815161288288826126fe565b975061288d83613771565b92505060010161286e565b6127138161379b565b6127138161048f565b6127136128b68261048f565b61048f565b60006128c682613783565b6128d08185613787565b93506128e081856020860161380e565b6128e98161383a565b9093019392505050565b600081546001811660008114612910576001811461295457612993565b607f60028304166129218187613787565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168152955050602085019250612993565b600282046129628187613787565b955061296d85613777565b60005b8281101561298c57815488820152600190910190602001612970565b8701945050505b505092915050565b612713816137e1565b612713816137ec565b60006129ba602d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c6981527f642070726f706f73616c20696400000000000000000000000000000000000000602082015260400192915050565b6000612a19604983613787565b7f4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f7081527f6f73616c2063616e206f6e6c792062652065786563757465642069662069742060208201527f6973207175657565640000000000000000000000000000000000000000000000604082015260600192915050565b6000612a9e6002836109b6565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b6000612ad7603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63617374566f7465427953696781527f3a20696e76616c6964207369676e617475726500000000000000000000000000602082015260400192915050565b6000612b36604383613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73657220766f7465732062656c6f772070726f706f73616c2074687265736860208201527f6f6c640000000000000000000000000000000000000000000000000000000000604082015260600192915050565b6000612bbb603a83613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f81527f742063616e63656c2065786563757465642070726f706f73616c000000000000602082015260400192915050565b6000612c1a605d83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c72656164792070656e64696e672070726f706f73616c000000604082015260600192915050565b6000612c9f605c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e652081527f6c6976652070726f706f73616c207065722070726f706f7365722c20666f756e60208201527f6420616e20616c7265616479206163746976652070726f706f73616c00000000604082015260600192915050565b6000612d24603083613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d75737481527f2070726f7669646520616374696f6e7300000000000000000000000000000000602082015260400192915050565b6000612d83601183613787565b7f6164646974696f6e206f766572666c6f77000000000000000000000000000000815260200192915050565b6000612dbc6043836109b6565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b6000612e416027836109b6565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c207381527f7570706f72742900000000000000000000000000000000000000000000000000602082015260270192915050565b6000612ea0603383613787565b7f4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f81527f7365722061626f7665207468726573686f6c6400000000000000000000000000602082015260400192915050565b6000612eff604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f71756575654f72526576657281527f743a2070726f706f73616c20616374696f6e20616c726561647920717565756560208201527f6420617420657461000000000000000000000000000000000000000000000000604082015260600192915050565b6000612f84602e83613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74696e6720697320636c6f736564000000000000000000000000000000000000602082015260400192915050565b6000612fe3603183613787565b7f4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f81527f74657220616c726561647920766f746564000000000000000000000000000000602082015260400192915050565b6000613042604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f7381527f616c2063616e206f6e6c7920626520717565756564206966206974206973207360208201527f7563636565646564000000000000000000000000000000000000000000000000604082015260600192915050565b60006130c7602c83613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f2081527f6d616e7920616374696f6e730000000000000000000000000000000000000000602082015260400192915050565b6000613126604883613787565b7f4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f7081527f6f73616c2066756e6374696f6e20696e666f726d6174696f6e2061726974792060208201527f6d69736d61746368000000000000000000000000000000000000000000000000604082015260600192915050565b60006131ab601583613787565b7f7375627472616374696f6e20756e646572666c6f770000000000000000000000815260200192915050565b805160608301906131e88482612898565b5060208201516131fb6020850182612898565b50604082015161320e6040850182613226565b50505050565b612713816137c3565b612713816137f7565b612713816137c9565b600061323a82612a91565b915061324682856128aa565b60208201915061325682846128aa565b5060200192915050565b600061175082612daf565b600061175082612e34565b60408101613284828561270a565b611c5460208301846128a1565b604081016132848285612719565b608081016132ad8287612719565b6132ba60208301866128a1565b6132c76040830185612898565b6113c9606083018461321d565b60a081016132e28288612719565b6132ef60208301876128a1565b818103604083015261330181866128bb565b9050818103606083015261331581856128bb565b905061332460808301846128a1565b9695505050505050565b60a0810161333c8288612719565b61334960208301876128a1565b818103604083015261335b81866128f3565b9050818103606083015261331581856128f3565b608080825281016133808187612722565b90508181036020830152613394818661284a565b905081810360408301526133a881856127e9565b90508181036060830152613324818461277b565b6020810161175082846128a1565b608081016133d882876128a1565b6133e560208301866128a1565b6133f260408301856128a1565b6113c96060830184612719565b6060810161340d82866128a1565b61341a60208301856128a1565b61246b6040830184612898565b6080810161343582876128a1565b6134426020830186613214565b61344f60408301856128a1565b6113c960608301846128a1565b60208101611750828461299b565b6020810161175082846129a4565b60208082528101611c5481846128bb565b60208082528101611750816129ad565b6020808252810161175081612a0c565b6020808252810161175081612aca565b6020808252810161175081612b29565b6020808252810161175081612bae565b6020808252810161175081612c0d565b6020808252810161175081612c92565b6020808252810161175081612d17565b6020808252810161175081612d76565b6020808252810161175081612e93565b6020808252810161175081612ef2565b6020808252810161175081612f77565b6020808252810161175081612fd6565b6020808252810161175081613035565b60208082528101611750816130ba565b6020808252810161175081613119565b602080825281016117508161319e565b6060810161175082846131d7565b61012081016135b6828c6128a1565b6135c3602083018b61270a565b81810360408301526135d5818a612722565b905081810360608301526135e9818961284a565b905081810360808301526135fd81886127e9565b905081810360a0830152613611818761277b565b905061362060c08301866128a1565b61362d60e08301856128a1565b81810361010083015261364081846128bb565b9b9a5050505050505050505050565b610120810161365e828c6128a1565b61366b602083018b612719565b613678604083018a6128a1565b61368560608301896128a1565b61369260808301886128a1565b61369f60a08301876128a1565b6136ac60c08301866128a1565b6136b960e0830185612898565b6136c7610100830184612898565b9a9950505050505050505050565b6040810161328482856128a1565b60405181810167ffffffffffffffff8111828210171561370257600080fd5b604052919050565b600067ffffffffffffffff82111561372157600080fd5b5060209081020190565b600067ffffffffffffffff82111561374257600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611750826137aa565b151590565b806109b681613862565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b6000611750825b600061175082613790565b6000611750826137a0565b6000611750826137c9565b82818337506000910152565b60005b83811015613829578181015183820152602001613811565b8381111561320e5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600881106121bf57fe5b61387581613790565b81146121bf57600080fd5b6138758161379b565b6138758161048f565b613875816137c3565b613875816137c956fea365627a7a72315820026155fc5544e5f2875e2770628649b0cd78acc52d27edfc6cc12407af0d88c46c6578706572696d656e74616cf564736f6c63430005100040",
      "srcmap": "63:13172:3:-;;;4950:153;8:9:-1;5:2;;;30:1;27;20:12;5:2;4950:153:3;;;;;;;;;;;;;;;;;;;;;5014:8;:43;;-1:-1:-1;;;;;5014:43:3;;;-1:-1:-1;;;;;;5014:43:3;;;;;;;;5068:27;;;;;;;;;;;63:13172;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:399;;;278:2;266:9;257:7;253:23;249:32;246:2;;;294:1;291;284:12;246:2;329:1;346:64;402:7;382:9;346:64;;;336:74;;308:108;447:2;465:64;521:7;512:6;501:9;497:22;465:64;;;455:74;;426:109;240:305;;;;;;552:91;;-1:-1;;;;;712:54;;614:24;695:76;778:117;847:24;865:5;847:24;;;840:5;837:35;827:2;;886:1;883;876:12;827:2;821:74;;;63:13172:3;;;;;;",
      "srcmap-runtime": "63:13172:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3632:43:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1033:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1033:69:3;;;:::i;:::-;;;;;;;;140:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;140:51:3;;;:::i;:::-;;;;;;;;11128:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11128:124:3;;;;;;;;:::i;:::-;;3739:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3739:50:3;;;;;;;;:::i;3862:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3862:122:3;;;:::i;333:76::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;333:76:3;;;:::i;9616:287::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9616:287:3;;;;;;;;:::i;:::-;;;;;;;;;;;886:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;886:63:3;;;:::i;10071:1049::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10071:1049:3;;;;;;;;:::i;:::-;;;;;;;;8877:731;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8877:731:3;;;;;;;;:::i;11260:629::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11260:629:3;;;;;;;;:::i;705:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:74:3;;;:::i;519:82::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;519:82:3;;;:::i;1316:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1316:25:3;;;:::i;:::-;;;;;;;;1212:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1212:37:3;;;:::i;1397:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1397:25:3;;;:::i;5111:2196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5111:2196:3;;;;;;;;:::i;7315:581::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7315:581:3;;;;;;;;:::i;4074:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4074:94:3;;;:::i;9911:152::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9911:152:3;;;;;;;;:::i;:::-;;;;;;;;8292:577;;;;;;;;;:::i;3632:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1033:69::-;1093:6;1033:69;;:::o;140:51::-;;;;;;;;;;;;;;;;;;;:::o;11128:124::-;11202:42;11212:10;11224;11236:7;11202:9;:42::i;:::-;11128:124;;:::o;3739:50::-;;;;;;;;;;;;;:::o;3862:122::-;3904:80;;;;;;;;;;;;;;3862:122;:::o;333:76::-;392:14;333:76;:::o;9616:287::-;9674:24;9700:20;9722:26;9750:24;9787:18;9808:9;:21;9818:10;9808:21;;;;;;;;;;;9787:42;;9848:1;:9;;9859:1;:8;;9869:1;:12;;9883:1;:11;;9840:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9616:287;;;;;:::o;886:63::-;945:1;886:63;:::o;10071:1049::-;10124:13;10175:10;10158:13;;:27;;:45;;;;;10202:1;10189:10;:14;10158:45;10150:103;;;;;;;;;;;;;;;;;;;;;;10264:25;10292:21;;;:9;:21;;;;;10328:17;;;;;;10324:789;;;10369:22;10362:29;;;;;10324:789;10429:8;:19;;;10413:12;:35;10409:704;;10472:21;10465:28;;;;;10409:704;10531:8;:17;;;10515:12;:33;10511:602;;10572:20;10565:27;;;;;10511:602;10635:8;:21;;;10614:8;:17;;;:42;;:79;;;;10680:13;:11;:13::i;:::-;10660:8;:17;;;:33;10614:79;10610:503;;;10717:22;10710:29;;;;;10610:503;10761:12;;;;10757:356;;10802:23;10795:30;;;;;10757:356;10847:17;;;;;;;;;10843:270;;;10888:22;10881:29;;;;;10843:270;10958:12;;;;10972:8;;:23;;;;;;;;10951:45;;10958:12;10972:8;;;:21;;:23;;;;;;;;;;;;;;:8;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;10972:23:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10972:23:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10972:23:3;;;;;;;;;10951:6;:45::i;:::-;10932:15;:64;10928:185;;11020:21;11013:28;;;;;10928:185;11081:20;11074:27;;;10071:1049;;;;:::o;8877:731::-;8928:19;8950:17;8956:10;8950:5;:17::i;:::-;8928:39;-1:-1:-1;8995:22:3;8986:5;:31;;;;;;;;;;8978:102;;;;;;;;;;;;;;9093:25;9121:21;;;:9;:21;;;;;9226:19;:17;:19::i;:::-;9161:4;;;9180:17;;;;9161:4;;;;;:18;;9180:17;;;;9199:23;;9206:12;;9199:6;:23::i;:::-;9161:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9161:62:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9161:62:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9161:62:3;;;;;;;;;:84;;;9153:148;;;;;;;;;;;;;;9314:17;;;:24;;;;9334:4;9314:24;;;:17;9349:206;9370:16;;;:23;9366:27;;9349:206;;;9415:8;;9442:16;;;:19;;9415:8;;;;;:26;;9442:16;9459:1;;9442:19;;;;;;;;;;;;;;;;9463:15;;;:18;;9442:19;;;;;9479:1;;9463:18;;;;;;;;;;;;;;9483:8;:19;;9503:1;9483:22;;;;;;;;;;;;;;;9507:8;:18;;9526:1;9507:21;;;;;;;;;;;;;;;9530:8;:12;;;9415:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9415:128:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9395:3:3;;;;;-1:-1:-1;9349:206:3;;-1:-1:-1;9349:206:3;;;9572:28;9589:10;9572:28;;;;;;;;;;;;;;;8877:731;;;:::o;11260:629::-;11363:23;3904:80;;;;;;;;;;;;;;;;11443:4;;;;;;;;;;;;;;;;;;11427:22;11451:12;:10;:12::i;:::-;11473:4;11399:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11399:80:3;;;11389:91;;;;;;11363:117;;11491:18;4116:52;;;;;;;;;;;;;;;11522:48;;11550:10;;11562:7;;11522:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11522:48:3;;;11512:59;;;;;;11491:80;;11582:14;11638:15;11655:10;11609:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11609:57:3;;;11599:68;;;;;;11582:85;;11678:17;11698:26;11708:6;11716:1;11719;11722;11698:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11698:26:3;;;;;;-1:-1:-1;;11743:23:3;;;11735:87;;;;;;;;;;;;;;11840:41;11850:9;11861:10;11873:7;11840:9;:41::i;:::-;11833:48;;;;11260:629;;;;;:::o;705:74::-;774:2;705:74;:::o;519:82::-;584:14;519:82;:::o;1316:25::-;;;;;;:::o;1212:37::-;;;;;;:::o;1397:25::-;;;;:::o;5111:2196::-;5273:4;5356:19;:17;:19::i;:::-;5298:4;;;;;;:18;;5317:10;;5329:23;;5336:12;;5329:6;:23::i;:::-;5298:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5298:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5298:55:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5298:55:3;;;;;;;;;:77;;;5290:157;;;;;;;;;;;;;;5484:6;:13;5466:7;:14;:31;:70;;;;;5519:10;:17;5501:7;:14;:35;5466:70;:108;;;;;5558:9;:16;5540:7;:14;:34;5466:108;5458:193;;;;;;;;;;;;;;5670:14;;5662:80;;;;;;;;;;;;;;5779:23;:21;:23::i;:::-;5761:7;:14;:41;;5753:98;;;;;;;;;;;;;;5906:10;5864:21;5888:29;;;:17;:29;;;;;;5932:21;;5928:462;;5968:42;6013:23;6019:16;6013:5;:23::i;:::-;5968:68;-1:-1:-1;6089:20:3;6057:28;:52;;;;;;;;;;6049:157;;;;;;;;;;;;;;6259:21;6227:28;:53;;;;;;;;;;6219:159;;;;;;;;;;;;;;5928:462;;6402:15;6420:35;6427:12;6441:13;:11;:13::i;6420:35::-;6402:53;;6466:13;6482:34;6489:10;6501:14;:12;:14::i;6482:34::-;6529:13;:15;;;;;;6466:50;-1:-1:-1;6555:27:3;;:::i;:::-;6585:427;;;;;;;;6613:13;;6585:427;;;;6651:10;6585:427;;;;;;6681:1;6585:427;;;;6706:7;6585:427;;;;6736:6;6585:427;;;;6769:10;6585:427;;;;6805:9;6585:427;;;;6841:10;6585:427;;;;6876:8;6585:427;;;;6909:1;6585:427;;;;6939:1;6585:427;;;;6965:5;6585:427;;;;;;6995:5;6585:427;;;;;6555:457;;7053:11;7025:9;:25;7035:11;:14;;;7025:25;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7025:39:3;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7117:11;:14;;;7075:17;:39;7093:11;:20;;;7075:39;;;;;;;;;;;;;;;:56;;;;7149:118;7165:11;:14;;;7181:10;7193:7;7202:6;7210:10;7222:9;7233:10;7245:8;7255:11;7149:118;;;;;;;;;;;;;;;;;;;;;;;7285:14;;-1:-1:-1;;;;5111:2196:3;;;;;;;;:::o;7315:581::-;7394:23;7373:17;7379:10;7373:5;:17::i;:::-;:44;;;;;;;;;7365:129;;;;;;;;;;;;;;7505:25;7533:21;;;:9;:21;;;;;;;;7600:8;;:16;;;;;;;7533:21;;7505:25;7576:41;;7583:15;;7600:8;;;;;:14;;:16;;;;;7533:21;;7600:16;;;;;;:8;:16;;;5:2:-1;;;;30:1;27;20:12;7576:41:3;7565:52;-1:-1:-1;7633:6:3;7628:185;7649:16;;;:23;7645:27;;7628:185;;;7694:107;7709:8;:16;;7726:1;7709:19;;;;;;;;;;;;;;;;;;7730:15;;;:18;;7709:19;;;;;7746:1;;7730:18;;;;;;;;;;;;;;7750:8;:19;;7770:1;7750:22;;;;;;;;;;;;;;;;;;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7750:22;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7774:8;:18;;7793:1;7774:21;;;;;;;;;;;;;;;;;;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7774:21;7694:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7797:3;7694:14;:107::i;:::-;7674:3;;7628:185;;;-1:-1:-1;7823:12:3;;;:18;;;7857:31;;;;;;7872:10;;7838:3;;7857:31;;4074:94;4116:52;;;;;;9911:152;9984:14;;:::i;:::-;-1:-1:-1;10018:21:3;;;;:9;:21;;;;;;;;:37;;;;;:30;;:37;;;;;;10011:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9911:152;;;;;:::o;8292:577::-;8381:20;8360:17;8366:10;8360:5;:17::i;:::-;:41;;;;;;;;;8352:127;;;;;;;;;;;;;;8490:25;8518:21;;;:9;:21;;;;;8550:17;;;:24;;;;;;;;8518:21;8585:233;8606:16;;;:23;8602:27;;8585:233;;;8651:8;;8685:15;;;:18;;8651:8;;;;;:27;;8685:15;8701:1;;8685:18;;;;;;;;;;;;;;8705:8;:16;;8722:1;8705:19;;;;;;;;;;;;;;;;;;8726:15;;;:18;;8705:19;;;;;8742:1;;8726:18;;;;;;;;;;;;;;8746:8;:19;;8766:1;8746:22;;;;;;;;;;;;;;;8770:8;:18;;8789:1;8770:21;;;;;;;;;;;;;;;8793:8;:12;;;8651:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8651:155:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8651:155:3;;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8651:155:3;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;8651:155:3;;;;;;;;;-1:-1:-1;8631:3:3;;8585:233;;;;8833:28;8850:10;8833:28;;;;;;;;;;;;;;;8292:577;;:::o;11897:846::-;12011:20;11990:17;11996:10;11990:5;:17::i;:::-;:41;;;;;;;;;11982:100;;;;;;;;;;;;;;12093:25;12121:21;;;:9;:21;;;;;;;;12179:24;;;;;:17;;;:24;;;;;;12222:16;;;;:25;12214:87;;;;;;;;;;;;;;12327:4;;12353:19;;;;12327:46;;;;;12312:12;;12327:4;;;:18;;:46;;12346:5;;12327:46;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12327:46:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12327:46:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12327:46:3;;;;;;;;;12312:61;;12390:7;12386:185;;;12434:32;12441:8;:17;;;12460:5;12434:32;;:6;:32::i;:::-;12414:17;;;:52;12386:185;;;12523:36;12530:8;:21;;;12553:5;12523:36;;:6;:36::i;:::-;12499:21;;;:60;12386:185;12583:23;;12602:4;12583:23;;;;;12617:25;;12583:23;12617:25;;;;;12653:21;;;;;;;;;;12692:43;;;;;;12701:5;;12708:10;;12617:25;;12653:21;;12692:43;;;;;;;;;;11897:846;;;;;;:::o;12751:166::-;12812:4;12838:5;;;12862:6;;;;12854:36;;;;;;;;;;;;;;12908:1;12751:166;-1:-1:-1;;;12751:166:3:o;12925:149::-;12986:4;13016:1;13011;:6;;13003:40;;;;;;;;;;;;;;-1:-1:-1;13061:5:3;;;12925:149::o;13082:150::-;13189:9;13082:150;:::o;7904:380::-;8039:8;;8077:47;;8039:8;;;;;:27;;8077:47;;8088:6;;8096:5;;8103:9;;8114:4;;8120:3;;8077:47;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8077:47:3;;;8067:58;;;;;;8039:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8039:87:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8039:87:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8039:87:3;;;;;;;;;8038:88;8030:173;;;;;;;;;;;;;;8214:8;;:62;;;;;:8;;;;;:25;;:62;;8240:6;;8248:5;;8255:9;;8266:4;;8272:3;;8214:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8214:62:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8214:62:3;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8214:62:3;;;;;;;;;;7904:380;;;;;:::o;63:13172::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;63:13172:3;;;-1:-1:-1;63:13172:3;:::i;:::-;;;;;;;;;-1:-1:-1;63:13172:3;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;1090:85;1203:21;;;1247:4;1235:17;;;;1081:94;;-1:-1;1260:14;;1235:17;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1460:55;;-1:-1;1538:4;1529:14;;;;1557;;;;;1387:1;1380:9;1340:238;;1609:696;;1732:3;1725:4;1717:6;1713:17;1709:27;1699:2;;1750:1;1747;1740:12;1699:2;1787:6;1774:20;1809:86;1824:70;1887:6;1824:70;;1809:86;1923:21;;;1967:4;1955:17;;;;1800:95;;-1:-1;1980:14;;1955:17;2075:1;2060:239;2085:6;2082:1;2079:13;2060:239;;;2168:3;2155:17;2147:6;2143:30;2192:43;2231:3;2219:10;2192:43;;;2180:56;;-1:-1;2259:4;2250:14;;;;2278;;;;;2107:1;2100:9;2060:239;;2331:707;;2448:3;2441:4;2433:6;2429:17;2425:27;2415:2;;2466:1;2463;2456:12;2415:2;2503:6;2490:20;2525:80;2540:64;2597:6;2540:64;;2525:80;2516:89;;2622:5;2647:6;2640:5;2633:21;2677:4;2669:6;2665:17;2655:27;;2699:4;2694:3;2690:14;2683:21;;2752:6;2799:3;2791:4;2783:6;2779:17;2774:3;2770:27;2767:36;2764:2;;;2816:1;2813;2806:12;2764:2;2841:1;2826:206;2851:6;2848:1;2845:13;2826:206;;;2909:3;2931:37;2964:3;2952:10;2931:37;;;2919:50;;-1:-1;2992:4;2983:14;;;;3011;;;;;2873:1;2866:9;2826:206;;3046:124;3110:20;;3135:30;3110:20;3135:30;;3177:128;3252:13;;3270:30;3252:13;3270:30;;3312:130;3379:20;;3404:33;3379:20;3404:33;;3449:134;3527:13;;3545:33;3527:13;3545:33;;3591:432;;3688:3;3681:4;3673:6;3669:17;3665:27;3655:2;;3706:1;3703;3696:12;3655:2;3743:6;3730:20;3765:60;3780:44;3817:6;3780:44;;3765:60;3756:69;;3845:6;3838:5;3831:21;3881:4;3873:6;3869:17;3914:4;3907:5;3903:16;3949:3;3940:6;3935:3;3931:16;3928:25;3925:2;;;3966:1;3963;3956:12;3925:2;3976:41;4010:6;4005:3;4000;3976:41;;;3648:375;;;;;;;;4032:442;;4144:3;4137:4;4129:6;4125:17;4121:27;4111:2;;4162:1;4159;4152:12;4111:2;4192:6;4186:13;4214:64;4229:48;4270:6;4229:48;;4214:64;4205:73;;4298:6;4291:5;4284:21;4334:4;4326:6;4322:17;4367:4;4360:5;4356:16;4402:3;4393:6;4388:3;4384:16;4381:25;4378:2;;;4419:1;4416;4409:12;4378:2;4429:39;4461:6;4456:3;4451;4429:39;;5654:126;5719:20;;5744:31;5719:20;5744:31;;5787:132;5864:13;;5882:32;5864:13;5882:32;;5926:241;;6030:2;6018:9;6009:7;6005:23;6001:32;5998:2;;;6046:1;6043;6036:12;5998:2;6081:1;6098:53;6143:7;6123:9;6098:53;;;6088:63;5992:175;-1:-1;;;;5992:175;6174:1415;;;;;;6467:3;6455:9;6446:7;6442:23;6438:33;6435:2;;;6484:1;6481;6474:12;6435:2;6519:31;;6570:18;6559:30;;6556:2;;;6602:1;6599;6592:12;6556:2;6622:78;6692:7;6683:6;6672:9;6668:22;6622:78;;;6612:88;;6498:208;6765:2;6754:9;6750:18;6737:32;6789:18;6781:6;6778:30;6775:2;;;6821:1;6818;6811:12;6775:2;6841:78;6911:7;6902:6;6891:9;6887:22;6841:78;;;6831:88;;6716:209;6984:2;6973:9;6969:18;6956:32;7008:18;7000:6;6997:30;6994:2;;;7040:1;7037;7030:12;6994:2;7060:84;7136:7;7127:6;7116:9;7112:22;7060:84;;;7050:94;;6935:215;7209:2;7198:9;7194:18;7181:32;7233:18;7225:6;7222:30;7219:2;;;7265:1;7262;7255:12;7219:2;7285:83;7360:7;7351:6;7340:9;7336:22;7285:83;;;7275:93;;7160:214;7433:3;7422:9;7418:19;7405:33;7458:18;7450:6;7447:30;7444:2;;;7490:1;7487;7480:12;7444:2;7510:63;7565:7;7556:6;7545:9;7541:22;7510:63;;;7500:73;;7384:195;6429:1160;;;;;;;;;7596:257;;7708:2;7696:9;7687:7;7683:23;7679:32;7676:2;;;7724:1;7721;7714:12;7676:2;7759:1;7776:61;7829:7;7809:9;7776:61;;7860:263;;7975:2;7963:9;7954:7;7950:23;7946:32;7943:2;;;7991:1;7988;7981:12;7943:2;8026:1;8043:64;8099:7;8079:9;8043:64;;8130:360;;8254:2;8242:9;8233:7;8229:23;8225:32;8222:2;;;8270:1;8267;8260:12;8222:2;8305:24;;8349:18;8338:30;;8335:2;;;8381:1;8378;8371:12;8335:2;8401:73;8466:7;8457:6;8446:9;8442:22;8401:73;;8497:241;;8601:2;8589:9;8580:7;8576:23;8572:32;8569:2;;;8617:1;8614;8607:12;8569:2;8652:1;8669:53;8714:7;8694:9;8669:53;;9015:366;;;9136:2;9124:9;9115:7;9111:23;9107:32;9104:2;;;9152:1;9149;9142:12;9104:2;9187:1;9204:53;9249:7;9229:9;9204:53;;;9194:63;;9166:97;9294:2;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;;;9302:63;;9273:98;9098:283;;;;;;9388:360;;;9506:2;9494:9;9485:7;9481:23;9477:32;9474:2;;;9522:1;9519;9512:12;9474:2;9557:1;9574:53;9619:7;9599:9;9574:53;;;9564:63;;9536:97;9664:2;9682:50;9724:7;9715:6;9704:9;9700:22;9682:50;;9755:733;;;;;;9922:3;9910:9;9901:7;9897:23;9893:33;9890:2;;;9939:1;9936;9929:12;9890:2;9974:1;9991:53;10036:7;10016:9;9991:53;;;9981:63;;9953:97;10081:2;10099:50;10141:7;10132:6;10121:9;10117:22;10099:50;;;10089:60;;10060:95;10186:2;10204:51;10247:7;10238:6;10227:9;10223:22;10204:51;;;10194:61;;10165:96;10292:2;10310:53;10355:7;10346:6;10335:9;10331:22;10310:53;;;10300:63;;10271:98;10400:3;10419:53;10464:7;10455:6;10444:9;10440:22;10419:53;;10495:261;;10609:2;10597:9;10588:7;10584:23;10580:32;10577:2;;;10625:1;10622;10615:12;10577:2;10660:1;10677:63;10732:7;10712:9;10677:63;;10764:173;;10851:46;10893:3;10885:6;10851:46;;;-1:-1;;10926:4;10917:14;;10844:93;10946:177;;11057:60;11113:3;11105:6;11057:60;;11322:173;;11409:46;11451:3;11443:6;11409:46;;11503:142;11594:45;11633:5;11594:45;;;11589:3;11582:58;11576:69;;;11652:103;11725:24;11743:5;11725:24;;11913:690;;12058:54;12106:5;12058:54;;;12125:86;12204:6;12199:3;12125:86;;;12118:93;;12232:56;12282:5;12232:56;;;12308:7;12336:1;12321:260;12346:6;12343:1;12340:13;12321:260;;;12413:6;12407:13;12434:63;12493:3;12478:13;12434:63;;;12427:70;;12514:60;12567:6;12514:60;;;12504:70;-1:-1;;12368:1;12361:9;12321:260;;;-1:-1;12594:3;;12037:566;-1:-1;;;;;12037:566;12638:888;;12793:59;12846:5;12793:59;;;12865:91;12949:6;12944:3;12865:91;;;12858:98;;12979:3;13021:4;13013:6;13009:17;13004:3;13000:27;13048:61;13103:5;13048:61;;;13129:7;13157:1;13142:345;13167:6;13164:1;13161:13;13142:345;;;13229:9;13223:4;13219:20;13214:3;13207:33;13274:6;13268:13;13296:74;13365:4;13350:13;13296:74;;;13288:82;;13387:65;13445:6;13387:65;;;13475:4;13466:14;;;;;13377:75;-1:-1;;13189:1;13182:9;13142:345;;;-1:-1;13500:4;;12772:754;-1:-1;;;;;;;12772:754;13563:896;;13720:60;13774:5;13720:60;;;13793:92;13878:6;13873:3;13793:92;;;13786:99;;13908:3;13950:4;13942:6;13938:17;13933:3;13929:27;13977:62;14033:5;13977:62;;;14059:7;14087:1;14072:348;14097:6;14094:1;14091:13;14072:348;;;14159:9;14153:4;14149:20;14144:3;14137:33;14204:6;14198:13;14226:76;14297:4;14282:13;14226:76;;;14218:84;;14319:66;14378:6;14319:66;;;14408:4;14399:14;;;;;14309:76;-1:-1;;14119:1;14112:9;14072:348;;14498:690;;14643:54;14691:5;14643:54;;;14710:86;14789:6;14784:3;14710:86;;;14703:93;;14817:56;14867:5;14817:56;;;14893:7;14921:1;14906:260;14931:6;14928:1;14925:13;14906:260;;;14998:6;14992:13;15019:63;15078:3;15063:13;15019:63;;;15012:70;;15099:60;15152:6;15099:60;;;15089:70;-1:-1;;14953:1;14946:9;14906:260;;15196:94;15263:21;15278:5;15263:21;;15408:113;15491:24;15509:5;15491:24;;15528:152;15629:45;15649:24;15667:5;15649:24;;;15629:45;;15687:343;;15797:38;15829:5;15797:38;;;15847:70;15910:6;15905:3;15847:70;;;15840:77;;15922:52;15967:6;15962:3;15955:4;15948:5;15944:16;15922:52;;;15995:29;16017:6;15995:29;;;15986:39;;;;15777:253;-1:-1;;;15777:253;16382:818;;16499:5;16493:12;16533:1;16522:9;16518:17;16546:1;16541:247;;;;16799:1;16794:400;;;;16511:683;;16541:247;16619:4;16615:1;16604:9;16600:17;16596:28;16638:70;16701:6;16696:3;16638:70;;;16742:9;16727:25;;16715:38;;16631:77;-1:-1;;16776:4;16767:14;;;-1:-1;16541:247;;16794:400;16863:1;16852:9;16848:17;16879:70;16942:6;16937:3;16879:70;;;16872:77;;16971:37;17002:5;16971:37;;;17024:1;17032:130;17046:6;17043:1;17040:13;17032:130;;;17105:14;;17092:11;;;17085:35;17152:1;17139:15;;;;17068:4;17061:12;17032:130;;;17176:11;;;-1:-1;;;16511:683;;16469:731;;;;;;17208:170;17313:59;17366:5;17313:59;;17578:158;17677:53;17724:5;17677:53;;19626:382;;19786:67;19850:2;19845:3;19786:67;;;19886:34;19866:55;;19955:15;19950:2;19941:12;;19934:37;19999:2;19990:12;;19772:236;-1:-1;;19772:236;20017:447;;20177:67;20241:2;20236:3;20177:67;;;20277:34;20257:55;;20346:34;20341:2;20332:12;;20325:56;20415:11;20410:2;20401:12;;20394:33;20455:2;20446:12;;20163:301;-1:-1;;20163:301;20473:398;;20651:84;20733:1;20728:3;20651:84;;;20768:66;20748:87;;20863:1;20854:11;;20637:234;-1:-1;;20637:234;20880:388;;21040:67;21104:2;21099:3;21040:67;;;21140:34;21120:55;;21209:21;21204:2;21195:12;;21188:43;21259:2;21250:12;;21026:242;-1:-1;;21026:242;21277:441;;21437:67;21501:2;21496:3;21437:67;;;21537:34;21517:55;;21606:34;21601:2;21592:12;;21585:56;21675:5;21670:2;21661:12;;21654:27;21709:2;21700:12;;21423:295;-1:-1;;21423:295;21727:395;;21887:67;21951:2;21946:3;21887:67;;;21987:34;21967:55;;22056:28;22051:2;22042:12;;22035:50;22113:2;22104:12;;21873:249;-1:-1;;21873:249;22131:467;;22291:67;22355:2;22350:3;22291:67;;;22391:34;22371:55;;22460:34;22455:2;22446:12;;22439:56;22529:31;22524:2;22515:12;;22508:53;22589:2;22580:12;;22277:321;-1:-1;;22277:321;22607:466;;22767:67;22831:2;22826:3;22767:67;;;22867:34;22847:55;;22936:34;22931:2;22922:12;;22915:56;23005:30;23000:2;22991:12;;22984:52;23064:2;23055:12;;22753:320;-1:-1;;22753:320;23082:385;;23242:67;23306:2;23301:3;23242:67;;;23342:34;23322:55;;23411:18;23406:2;23397:12;;23390:40;23458:2;23449:12;;23228:239;-1:-1;;23228:239;23476:317;;23636:67;23700:2;23695:3;23636:67;;;23736:19;23716:40;;23784:2;23775:12;;23622:171;-1:-1;;23622:171;23802:477;;23980:85;24062:2;24057:3;23980:85;;;24098:34;24078:55;;24167:34;24162:2;24153:12;;24146:56;24236:5;24231:2;24222:12;;24215:27;24270:2;24261:12;;23966:313;-1:-1;;23966:313;24288:412;;24466:85;24548:2;24543:3;24466:85;;;24584:34;24564:55;;24653:9;24648:2;24639:12;;24632:31;24691:2;24682:12;;24452:248;-1:-1;;24452:248;24709:388;;24869:67;24933:2;24928:3;24869:67;;;24969:34;24949:55;;25038:21;25033:2;25024:12;;25017:43;25088:2;25079:12;;24855:242;-1:-1;;24855:242;25106:446;;25266:67;25330:2;25325:3;25266:67;;;25366:34;25346:55;;25435:34;25430:2;25421:12;;25414:56;25504:10;25499:2;25490:12;;25483:32;25543:2;25534:12;;25252:300;-1:-1;;25252:300;25561:383;;25721:67;25785:2;25780:3;25721:67;;;25821:34;25801:55;;25890:16;25885:2;25876:12;;25869:38;25935:2;25926:12;;25707:237;-1:-1;;25707:237;25953:386;;26113:67;26177:2;26172:3;26113:67;;;26213:34;26193:55;;26282:19;26277:2;26268:12;;26261:41;26330:2;26321:12;;26099:240;-1:-1;;26099:240;26348:446;;26508:67;26572:2;26567:3;26508:67;;;26608:34;26588:55;;26677:34;26672:2;26663:12;;26656:56;26746:10;26741:2;26732:12;;26725:32;26785:2;26776:12;;26494:300;-1:-1;;26494:300;26803:381;;26963:67;27027:2;27022:3;26963:67;;;27063:34;27043:55;;27132:14;27127:2;27118:12;;27111:36;27175:2;27166:12;;26949:235;-1:-1;;26949:235;27193:446;;27353:67;27417:2;27412:3;27353:67;;;27453:34;27433:55;;27522:34;27517:2;27508:12;;27501:56;27591:10;27586:2;27577:12;;27570:32;27630:2;27621:12;;27339:300;-1:-1;;27339:300;27648:321;;27808:67;27872:2;27867:3;27808:67;;;27908:23;27888:44;;27960:2;27951:12;;27794:175;-1:-1;;27794:175;28052:624;28265:23;;28195:4;28186:14;;;28294:57;28190:3;28265:23;28294:57;;;28215:142;28433:4;28426:5;28422:16;28416:23;28445:57;28496:4;28491:3;28487:14;28473:12;28445:57;;;28367:141;28582:4;28575:5;28571:16;28565:23;28594:61;28649:4;28644:3;28640:14;28626:12;28594:61;;;28518:143;28168:508;;;;28913:107;28992:22;29008:5;28992:22;;29027:124;29109:36;29139:5;29109:36;;29158:100;29229:23;29246:5;29229:23;;29265:650;;29520:148;29664:3;29520:148;;;29513:155;;29679:75;29750:3;29741:6;29679:75;;;29776:2;29771:3;29767:12;29760:19;;29790:75;29861:3;29852:6;29790:75;;;-1:-1;29887:2;29878:12;;29501:414;-1:-1;;29501:414;29922:372;;30121:148;30265:3;30121:148;;30301:372;;30500:148;30644:3;30500:148;;30680:340;30834:2;30819:18;;30848:79;30823:9;30900:6;30848:79;;;30938:72;31006:2;30995:9;30991:18;30982:6;30938:72;;31027:324;31173:2;31158:18;;31187:71;31162:9;31231:6;31187:71;;31358:533;31553:3;31538:19;;31568:71;31542:9;31612:6;31568:71;;;31650:72;31718:2;31707:9;31703:18;31694:6;31650:72;;;31733:66;31795:2;31784:9;31780:18;31771:6;31733:66;;;31810:71;31877:2;31866:9;31862:18;31853:6;31810:71;;31898:831;32166:3;32151:19;;32181:71;32155:9;32225:6;32181:71;;;32263:72;32331:2;32320:9;32316:18;32307:6;32263:72;;;32383:9;32377:4;32373:20;32368:2;32357:9;32353:18;32346:48;32408:78;32481:4;32472:6;32408:78;;;32400:86;;32534:9;32528:4;32524:20;32519:2;32508:9;32504:18;32497:48;32559:76;32630:4;32621:6;32559:76;;;32551:84;;32646:73;32714:3;32703:9;32699:19;32690:6;32646:73;;;32137:592;;;;;;;;;32736:819;32998:3;32983:19;;33013:71;32987:9;33057:6;33013:71;;;33095:72;33163:2;33152:9;33148:18;33139:6;33095:72;;;33215:9;33209:4;33205:20;33200:2;33189:9;33185:18;33178:48;33240:75;33310:4;33301:6;33240:75;;;33232:83;;33363:9;33357:4;33353:20;33348:2;33337:9;33333:18;33326:48;33388:73;33456:4;33447:6;33388:73;;33562:1183;33986:3;34001:47;;;33971:19;;34062:108;33971:19;34156:6;34062:108;;;34054:116;;34218:9;34212:4;34208:20;34203:2;34192:9;34188:18;34181:48;34243:108;34346:4;34337:6;34243:108;;;34235:116;;34399:9;34393:4;34389:20;34384:2;34373:9;34369:18;34362:48;34424:120;34539:4;34530:6;34424:120;;;34416:128;;34592:9;34586:4;34582:20;34577:2;34566:9;34562:18;34555:48;34617:118;34730:4;34721:6;34617:118;;34752:213;34870:2;34855:18;;34884:71;34859:9;34928:6;34884:71;;34972:547;35174:3;35159:19;;35189:71;35163:9;35233:6;35189:71;;;35271:72;35339:2;35328:9;35324:18;35315:6;35271:72;;;35354;35422:2;35411:9;35407:18;35398:6;35354:72;;;35437;35505:2;35494:9;35490:18;35481:6;35437:72;;35526:423;35694:2;35679:18;;35708:71;35683:9;35752:6;35708:71;;;35790:72;35858:2;35847:9;35843:18;35834:6;35790:72;;;35873:66;35935:2;35924:9;35920:18;35911:6;35873:66;;35956:539;36154:3;36139:19;;36169:71;36143:9;36213:6;36169:71;;;36251:68;36315:2;36304:9;36300:18;36291:6;36251:68;;;36330:72;36398:2;36387:9;36383:18;36374:6;36330:72;;;36413;36481:2;36470:9;36466:18;36457:6;36413:72;;36502:257;36642:2;36627:18;;36656:93;36631:9;36722:6;36656:93;;37046:245;37180:2;37165:18;;37194:87;37169:9;37254:6;37194:87;;37298:293;37432:2;37446:47;;;37417:18;;37507:74;37417:18;37567:6;37507:74;;37598:407;37789:2;37803:47;;;37774:18;;37864:131;37774:18;37864:131;;38012:407;38203:2;38217:47;;;38188:18;;38278:131;38188:18;38278:131;;38426:407;38617:2;38631:47;;;38602:18;;38692:131;38602:18;38692:131;;38840:407;39031:2;39045:47;;;39016:18;;39106:131;39016:18;39106:131;;39254:407;39445:2;39459:47;;;39430:18;;39520:131;39430:18;39520:131;;39668:407;39859:2;39873:47;;;39844:18;;39934:131;39844:18;39934:131;;40082:407;40273:2;40287:47;;;40258:18;;40348:131;40258:18;40348:131;;40496:407;40687:2;40701:47;;;40672:18;;40762:131;40672:18;40762:131;;40910:407;41101:2;41115:47;;;41086:18;;41176:131;41086:18;41176:131;;41324:407;41515:2;41529:47;;;41500:18;;41590:131;41500:18;41590:131;;41738:407;41929:2;41943:47;;;41914:18;;42004:131;41914:18;42004:131;;42152:407;42343:2;42357:47;;;42328:18;;42418:131;42328:18;42418:131;;42566:407;42757:2;42771:47;;;42742:18;;42832:131;42742:18;42832:131;;42980:407;43171:2;43185:47;;;43156:18;;43246:131;43156:18;43246:131;;43394:407;43585:2;43599:47;;;43570:18;;43660:131;43570:18;43660:131;;43808:407;43999:2;44013:47;;;43984:18;;44074:131;43984:18;44074:131;;44222:407;44413:2;44427:47;;;44398:18;;44488:131;44398:18;44488:131;;44636:313;44804:2;44789:18;;44818:121;44793:9;44912:6;44818:121;;45176:1847;45768:3;45753:19;;45783:71;45757:9;45827:6;45783:71;;;45865:80;45941:2;45930:9;45926:18;45917:6;45865:80;;;45993:9;45987:4;45983:20;45978:2;45967:9;45963:18;45956:48;46018:108;46121:4;46112:6;46018:108;;;46010:116;;46174:9;46168:4;46164:20;46159:2;46148:9;46144:18;46137:48;46199:108;46302:4;46293:6;46199:108;;;46191:116;;46356:9;46350:4;46346:20;46340:3;46329:9;46325:19;46318:49;46381:120;46496:4;46487:6;46381:120;;;46373:128;;46550:9;46544:4;46540:20;46534:3;46523:9;46519:19;46512:49;46575:118;46688:4;46679:6;46575:118;;;46567:126;;46704:73;46772:3;46761:9;46757:19;46748:6;46704:73;;;46788;46856:3;46845:9;46841:19;46832:6;46788:73;;;46910:9;46904:4;46900:20;46894:3;46883:9;46879:19;46872:49;46935:78;47008:4;46999:6;46935:78;;;46927:86;45739:1284;-1:-1;;;;;;;;;;;45739:1284;47030:1083;47360:3;47345:19;;47375:71;47349:9;47419:6;47375:71;;;47457:72;47525:2;47514:9;47510:18;47501:6;47457:72;;;47540;47608:2;47597:9;47593:18;47584:6;47540:72;;;47623;47691:2;47680:9;47676:18;47667:6;47623:72;;;47706:73;47774:3;47763:9;47759:19;47750:6;47706:73;;;47790;47858:3;47847:9;47843:19;47834:6;47790:73;;;47874;47942:3;47931:9;47927:19;47918:6;47874:73;;;47958:67;48020:3;48009:9;48005:19;47996:6;47958:67;;;48036;48098:3;48087:9;48083:19;48074:6;48036:67;;;47331:782;;;;;;;;;;;;;48120:324;48266:2;48251:18;;48280:71;48255:9;48324:6;48280:71;;48451:256;48513:2;48507:9;48539:17;;;48614:18;48599:34;;48635:22;;;48596:62;48593:2;;;48671:1;48668;48661:12;48593:2;48687;48680:22;48491:216;;-1:-1;48491:216;48714:304;;48873:18;48865:6;48862:30;48859:2;;;48905:1;48902;48895:12;48859:2;-1:-1;48940:4;48928:17;;;48993:15;;48796:222;49969:317;;50108:18;50100:6;50097:30;50094:2;;;50140:1;50137;50130:12;50094:2;-1:-1;50271:4;50207;50184:17;;;;50203:9;50180:33;50261:15;;50031:255;51275:151;51399:4;51390:14;;51347:79;51918:157;;52012:14;;;52054:4;52041:18;;;51971:104;52247:137;52350:12;;52321:63;53812:178;53930:19;;;53979:4;53970:14;;53923:67;55390:91;;55452:24;55470:5;55452:24;;55488:85;55554:13;55547:21;;55530:43;55659:142;55739:5;55745:51;55739:5;55745:51;;55808:121;55881:42;55870:54;;55853:76;56015:81;56086:4;56075:16;;56058:38;56103:104;56175:26;56164:38;;56147:60;56214:129;;56301:37;56332:5;56350:165;;56451:59;56504:5;56451:59;;56992:142;;57087:42;57123:5;57087:42;;57384:106;;57462:23;57479:5;57462:23;;57498:145;57579:6;57574:3;57569;57556:30;-1:-1;57635:1;57617:16;;57610:27;57549:94;57652:268;57717:1;57724:101;57738:6;57735:1;57732:13;57724:101;;;57805:11;;;57799:18;57786:11;;;57779:39;57760:2;57753:10;57724:101;;;57840:6;57837:1;57834:13;57831:2;;;-1:-1;;57905:1;57887:16;;57880:27;57701:219;58009:97;58097:2;58077:14;58093:7;58073:28;;58057:49;58114:109;58201:1;58194:5;58191:12;58181:2;;58207:9;58230:117;58299:24;58317:5;58299:24;;;58292:5;58289:35;58279:2;;58338:1;58335;58328:12;58354:111;58420:21;58435:5;58420:21;;58472:117;58541:24;58559:5;58541:24;;58720:113;58787:22;58803:5;58787:22;;58840:115;58908:23;58925:5;58908:23;"
    },
    "contracts/NikiGovernorAlpha.sol:NikiInterface": {
      "abi": [
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "blockNumber",
              "type": "uint256"
            }
          ],
          "name": "getPriorVotes",
          "outputs": [
            {
              "internalType": "uint96",
              "name": "",
              "type": "uint96"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiGovernorAlpha.sol\":\"NikiInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiGovernorAlpha.sol\":{\"keccak256\":\"0x1138e6901403e56f98152f61e4cc83d711ff07646082a0f0a3c346b1a7200188\",\"urls\":[\"bzz-raw://be985d973b0b96b0c3f2346f26e1e74e83a7c474ac4eded29456f879298cc718\",\"dweb:/ipfs/QmPAkwKqbjUhisWdkDqci4v5t8WfjAv33W9pxH9CSjgwmJ\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiGovernorAlpha.sol:NikiTimelockInterface": {
      "abi": [
        {
          "constant": true,
          "inputs": [],
          "name": "GRACE_PERIOD",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [],
          "name": "acceptAdmin",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "cancelTransaction",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "delay",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "executeTransaction",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ],
          "payable": true,
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "queueTransaction",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "queuedTransactions",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiGovernorAlpha.sol\":\"NikiTimelockInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiGovernorAlpha.sol\":{\"keccak256\":\"0x1138e6901403e56f98152f61e4cc83d711ff07646082a0f0a3c346b1a7200188\",\"urls\":[\"bzz-raw://be985d973b0b96b0c3f2346f26e1e74e83a7c474ac4eded29456f879298cc718\",\"dweb:/ipfs/QmPAkwKqbjUhisWdkDqci4v5t8WfjAv33W9pxH9CSjgwmJ\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiTimelock.sol:NikiTimelock": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "admin_",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "delay_",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "txHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "CancelTransaction",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "txHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "ExecuteTransaction",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "newAdmin",
              "type": "address"
            }
          ],
          "name": "NewAdmin",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint256",
              "name": "newDelay",
              "type": "uint256"
            }
          ],
          "name": "NewDelay",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "newPendingAdmin",
              "type": "address"
            }
          ],
          "name": "NewPendingAdmin",
          "type": "event"
        },
        {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "txHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "QueueTransaction",
          "type": "event"
        },
        {
          "payable": true,
          "stateMutability": "payable",
          "type": "fallback"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "GRACE_PERIOD",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "MAXIMUM_DELAY",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "MINIMUM_DELAY",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [],
          "name": "acceptAdmin",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "admin",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "cancelTransaction",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "delay",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "executeTransaction",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ],
          "payable": true,
          "stateMutability": "payable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "pendingAdmin",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "signature",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "eta",
              "type": "uint256"
            }
          ],
          "name": "queueTransaction",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "name": "queuedTransactions",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "uint256",
              "name": "delay_",
              "type": "uint256"
            }
          ],
          "name": "setDelay",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "pendingAdmin_",
              "type": "address"
            }
          ],
          "name": "setPendingAdmin",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b50604051611c6f380380611c6f8339818101604052604081101561003357600080fd5b5080516020909101516202a30081101561007e5760405162461bcd60e51b815260040180806020018281038252603b815260200180611c34603b913960400191505060405180910390fd5b62278d008111156100c05760405162461bcd60e51b815260040180806020018281038252603c815260200180611bf8603c913960400191505060405180910390fd5b600080546001600160a01b039093166001600160a01b031990931692909217909155600255611b04806100f46000396000f3fe6080604052600436106100d25760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e21461063a578063e177246e1461064f578063f2b0653714610679578063f851a440146106b7576100d2565b80636a42b8f8146105fb5780637d645fab14610610578063b1b43ae514610625576100d2565b80633a66f901116100b05780633a66f901146102ed5780634dd18bf51461045d578063591fcdfe1461049d576100d2565b80630825f38f146100d45780630e18b6811461029a57806326782247146102af575b005b610225600480360360a08110156100ea57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ae57600080fd5b8201836020820111156101c057600080fd5b803590602001918460018302840111640100000000831117156101e257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506106cc915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025f578181015183820152602001610247565b50505050905090810190601f16801561028c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a657600080fd5b506100d2610d4a565b3480156102bb57600080fd5b506102c4610e32565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f957600080fd5b5061044b600480360360a081101561031057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561034d57600080fd5b82018360208201111561035f57600080fd5b8035906020019184600183028401116401000000008311171561038157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610e4e915050565b60408051918252519081900360200190f35b34801561046957600080fd5b506100d26004803603602081101561048057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b3480156104a957600080fd5b506100d2600480360360a08110156104c057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135918101906060810160408201356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184600183028401116401000000008311171561053157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561058457600080fd5b82018360208201111561059657600080fd5b803590602001918460018302840111640100000000831117156105b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611294915050565b34801561060757600080fd5b5061044b611598565b34801561061c57600080fd5b5061044b61159e565b34801561063157600080fd5b5061044b6115a5565b34801561064657600080fd5b5061044b6115ac565b34801561065b57600080fd5b506100d26004803603602081101561067257600080fd5b50356115b3565b34801561068557600080fd5b506106a36004803603602081101561069c57600080fd5b50356116f6565b604080519115158252519081900360200190f35b3480156106c357600080fd5b506102c461170b565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611898603c913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107c85781810151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610828578181015183820152602001610810565b50505050905090810190601f1680156108555780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490995060ff1697506108fe9650505050505050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806118576041913960600191505060405180910390fd5b82610907611727565b101561095e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806119d56049913960600191505060405180910390fd5b610971836212750063ffffffff61172b16565b610979611727565b11156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806117a76037913960400191505060405180910390fd5b600081815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558451606090610a14575083610ae9565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610ab157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a74565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610b5357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b509150915081610c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806117de6041913960600191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c9f578181015183820152602001610c87565b50505050905090810190601f168015610ccc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610cff578181015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a58603c913960400191505060405180910390fd5b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178083556001805490921690915560405173ffffffffffffffffffffffffffffffffffffffff909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611a1e603a913960400191505060405180910390fd5b610ed9600254610ecd611727565b9063ffffffff61172b16565b821015610f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180611914604d913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561101a578181015183820152602001611002565b50505050905090810190601f1680156110475780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561111f578181015183820152602001611107565b50505050905090810190601f16801561114c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b33301461121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806118d46040913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611961603b913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561138d578181015183820152602001611375565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156113ed5781810151838201526020016113d5565b50505050905090810190601f16801561141a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561155257818101518382015260200161153a565b50505050905090810190601f16801561157f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b33301461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061199c6039913960400191505060405180910390fd5b6202a300811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061181f6038913960400191505060405180910390fd5b62278d008111156116c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a94603c913960400191505060405180910390fd5b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60008282018381101561179f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792ea265627a7a7231582044bdfb1898a38b65d91e9826ad7b35e53781b74757ace16b3b48379bb61f551564736f6c634300051000324e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e4e696b6954696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C6F CODESIZE SUB DUP1 PUSH2 0x1C6F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0x7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C34 PUSH1 0x3B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0xC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1BF8 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE PUSH2 0x1B04 DUP1 PUSH2 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xD2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x679 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x6B7 JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x5FB JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x625 JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x49D JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x2AF JUMPI JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0x6CC SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x28C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH2 0xD4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH2 0xE32 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0xE4E SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0x1294 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x607 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x1598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x159E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x15A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x15AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x15B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x16F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH2 0x170B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x73F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1898 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7C8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7B0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x7F5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x828 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x810 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x855 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP10 POP PUSH1 0xFF AND SWAP8 POP PUSH2 0x8FE SWAP7 POP POP POP POP POP POP POP JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x41 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1857 PUSH1 0x41 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x907 PUSH2 0x1727 JUMP JUMPDEST LT ISZERO PUSH2 0x95E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x19D5 PUSH1 0x49 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x971 DUP4 PUSH3 0x127500 PUSH4 0xFFFFFFFF PUSH2 0x172B AND JUMP JUMPDEST PUSH2 0x979 PUSH2 0x1727 JUMP JUMPDEST GT ISZERO PUSH2 0x9D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x17A7 PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE DUP5 MLOAD PUSH1 0x60 SWAP1 PUSH2 0xA14 JUMPI POP DUP4 PUSH2 0xAE9 JUMP JUMPDEST DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x4 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xAB1 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xB53 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBB5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBBA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xC15 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x41 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x17DE PUSH1 0x41 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC9F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC87 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xCCC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xCFF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD2C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDBA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A58 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR DUP1 DUP4 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP3 AND SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH32 0x71614071B88DEE5E0B2AE578A9DD7B2EBBE9AE832BA419DC0242CD065A290B6C SWAP2 LOG2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A1E PUSH1 0x3A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED9 PUSH1 0x2 SLOAD PUSH2 0xECD PUSH2 0x1727 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x172B AND JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0xF31 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x4D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1914 PUSH1 0x4D SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFE7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x101A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1002 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1047 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP4 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 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1107 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x114C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x117F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1167 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11AC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x18D4 PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1304 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1961 PUSH1 0x3B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x138D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1375 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x13ED JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x13D5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x141A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 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 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14DA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x151F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1552 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x153A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x157F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x278D00 DUP2 JUMP JUMPDEST PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH3 0x127500 DUP2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x160B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x199C PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0x1667 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x181F PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A94 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x948B1F6A42EE138B7E34058BA85A37F716D55FF25FF05A763F15BED6A04C8D2C SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x179F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206973207374616C PUSH6 0x2E4E696B6954 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH6 0x786563757469 PUSH16 0x6E2072657665727465642E4E696B6954 PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D75737420657863 PUSH6 0x6564206D696E PUSH10 0x6D756D2064656C61792E 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206861736E277420 PUSH3 0x65656E KECCAK256 PUSH18 0x75657565642E4E696B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A2043616C6C206D7573 PUSH21 0x20636F6D652066726F6D2061646D696E2E4E696B69 SLOAD PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x50656E64696E6741646D696E3A2043616C6C206D75 PUSH20 0x7420636F6D652066726F6D204E696B6954696D65 PUSH13 0x6F636B2E4E696B6954696D656C PUSH16 0x636B3A3A71756575655472616E736163 PUSH21 0x696F6E3A20457374696D6174656420657865637574 PUSH10 0x6F6E20626C6F636B206D PUSH22 0x737420736174697366792064656C61792E4E696B6954 PUSH10 0x6D656C6F636B3A3A6361 PUSH15 0x63656C5472616E73616374696F6E3A KECCAK256 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E4E696B6954696D65 PUSH13 0x6F636B3A3A73657444656C6179 GASPRICE KECCAK256 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 0x4E PUSH10 0x6B6954696D656C6F636B 0x2E 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206861736E277420 PUSH20 0x75727061737365642074696D65206C6F636B2E4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH18 0x756575655472616E73616374696F6E3A2043 PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E4E696B6954696D65 PUSH13 0x6F636B3A3A6163636570744164 PUSH14 0x696E3A2043616C6C206D75737420 PUSH4 0x6F6D6520 PUSH7 0x726F6D2070656E PUSH5 0x696E674164 PUSH14 0x696E2E4E696B6954696D656C6F63 PUSH12 0x3A3A73657444656C61793A20 DIFFICULTY PUSH6 0x6C6179206D75 PUSH20 0x74206E6F7420657863656564206D6178696D756D KECCAK256 PUSH5 0x656C61792E LOG2 PUSH6 0x627A7A723158 KECCAK256 DIFFICULTY 0xBD 0xFB XOR SWAP9 LOG3 DUP12 PUSH6 0xD91E9826AD7B CALLDATALOAD 0xE5 CALLDATACOPY DUP2 0xB7 SELFBALANCE JUMPI 0xAC 0xE1 PUSH12 0x3B48379BB61F551564736F6C PUSH4 0x43000510 STOP ORIGIN 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH20 0x657444656C61793A2044656C6179206D75737420 PUSH15 0x6F7420657863656564206D6178696D PUSH22 0x6D2064656C61792E4E696B6954696D656C6F636B3A3A PUSH4 0x6F6E7374 PUSH19 0x7563746F723A2044656C6179206D7573742065 PUSH25 0x63656564206D696E696D756D2064656C61792E000000000000 ",
          "sourceMap": "56:4812:4:-;;;965:321;8:9:-1;5:2;;;30:1;27;20:12;5:2;965:321:4;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;965:321:4;;;;;;;750:6;1032:23;;;1024:95;;;;-1:-1:-1;;;1024:95:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:7;1138:6;:23;;1130:96;;;;-1:-1:-1;;;1130:96:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1239:5;:14;;-1:-1:-1;;;;;1239:14:4;;;-1:-1:-1;;;;;;1239:14:4;;;;;;;;;;1264:5;:14;56:4812;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "6080604052600436106100d25760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e21461063a578063e177246e1461064f578063f2b0653714610679578063f851a440146106b7576100d2565b80636a42b8f8146105fb5780637d645fab14610610578063b1b43ae514610625576100d2565b80633a66f901116100b05780633a66f901146102ed5780634dd18bf51461045d578063591fcdfe1461049d576100d2565b80630825f38f146100d45780630e18b6811461029a57806326782247146102af575b005b610225600480360360a08110156100ea57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ae57600080fd5b8201836020820111156101c057600080fd5b803590602001918460018302840111640100000000831117156101e257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506106cc915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025f578181015183820152602001610247565b50505050905090810190601f16801561028c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a657600080fd5b506100d2610d4a565b3480156102bb57600080fd5b506102c4610e32565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f957600080fd5b5061044b600480360360a081101561031057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561034d57600080fd5b82018360208201111561035f57600080fd5b8035906020019184600183028401116401000000008311171561038157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610e4e915050565b60408051918252519081900360200190f35b34801561046957600080fd5b506100d26004803603602081101561048057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b3480156104a957600080fd5b506100d2600480360360a08110156104c057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135918101906060810160408201356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184600183028401116401000000008311171561053157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561058457600080fd5b82018360208201111561059657600080fd5b803590602001918460018302840111640100000000831117156105b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611294915050565b34801561060757600080fd5b5061044b611598565b34801561061c57600080fd5b5061044b61159e565b34801561063157600080fd5b5061044b6115a5565b34801561064657600080fd5b5061044b6115ac565b34801561065b57600080fd5b506100d26004803603602081101561067257600080fd5b50356115b3565b34801561068557600080fd5b506106a36004803603602081101561069c57600080fd5b50356116f6565b604080519115158252519081900360200190f35b3480156106c357600080fd5b506102c461170b565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611898603c913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107c85781810151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610828578181015183820152602001610810565b50505050905090810190601f1680156108555780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490995060ff1697506108fe9650505050505050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806118576041913960600191505060405180910390fd5b82610907611727565b101561095e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806119d56049913960600191505060405180910390fd5b610971836212750063ffffffff61172b16565b610979611727565b11156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806117a76037913960400191505060405180910390fd5b600081815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558451606090610a14575083610ae9565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610ab157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a74565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610b5357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b509150915081610c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806117de6041913960600191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c9f578181015183820152602001610c87565b50505050905090810190601f168015610ccc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610cff578181015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a58603c913960400191505060405180910390fd5b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178083556001805490921690915560405173ffffffffffffffffffffffffffffffffffffffff909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611a1e603a913960400191505060405180910390fd5b610ed9600254610ecd611727565b9063ffffffff61172b16565b821015610f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180611914604d913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561101a578181015183820152602001611002565b50505050905090810190601f1680156110475780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561111f578181015183820152602001611107565b50505050905090810190601f16801561114c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b33301461121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806118d46040913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611961603b913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561138d578181015183820152602001611375565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156113ed5781810151838201526020016113d5565b50505050905090810190601f16801561141a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561155257818101518382015260200161153a565b50505050905090810190601f16801561157f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b33301461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061199c6039913960400191505060405180910390fd5b6202a300811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061181f6038913960400191505060405180910390fd5b62278d008111156116c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a94603c913960400191505060405180910390fd5b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60008282018381101561179f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792ea265627a7a7231582044bdfb1898a38b65d91e9826ad7b35e53781b74757ace16b3b48379bb61f551564736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xD2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x679 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x6B7 JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x5FB JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x625 JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x49D JUMPI PUSH2 0xD2 JUMP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x2AF JUMPI JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0x6CC SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x28C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH2 0xD4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH2 0xE32 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x381 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0xE4E SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x4C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 CALLDATALOAD AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x531 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 SWAP5 SWAP4 PUSH1 0x20 DUP2 ADD SWAP4 POP CALLDATALOAD SWAP2 POP POP PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP SWAP2 CALLDATALOAD SWAP3 POP PUSH2 0x1294 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x607 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x1598 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x159E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x15A5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B PUSH2 0x15AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x15B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x16F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH2 0x170B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x73F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1898 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7C8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7B0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x7F5 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x828 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x810 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x855 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP10 POP PUSH1 0xFF AND SWAP8 POP PUSH2 0x8FE SWAP7 POP POP POP POP POP POP POP JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x41 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1857 PUSH1 0x41 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0x907 PUSH2 0x1727 JUMP JUMPDEST LT ISZERO PUSH2 0x95E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x19D5 PUSH1 0x49 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x971 DUP4 PUSH3 0x127500 PUSH4 0xFFFFFFFF PUSH2 0x172B AND JUMP JUMPDEST PUSH2 0x979 PUSH2 0x1727 JUMP JUMPDEST GT ISZERO PUSH2 0x9D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x17A7 PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE DUP5 MLOAD PUSH1 0x60 SWAP1 PUSH2 0xA14 JUMPI POP DUP4 PUSH2 0xAE9 JUMP JUMPDEST DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x4 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xAB1 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xB53 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xBB5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBBA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xC15 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x41 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x17DE PUSH1 0x41 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC9F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC87 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xCCC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xCFF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCE7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xD2C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDBA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A58 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD CALLER PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR DUP1 DUP4 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP3 AND SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH32 0x71614071B88DEE5E0B2AE578A9DD7B2EBBE9AE832BA419DC0242CD065A290B6C SWAP2 LOG2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A1E PUSH1 0x3A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xED9 PUSH1 0x2 SLOAD PUSH2 0xECD PUSH2 0x1727 JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x172B AND JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0xF31 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x4D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1914 PUSH1 0x4D SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFBA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xFA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xFE7 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x101A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1002 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1047 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP4 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 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1107 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x114C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x117F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1167 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11AC JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x18D4 PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1304 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1961 PUSH1 0x3B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x138D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1375 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x13ED JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x13D5 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x141A JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 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 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14DA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x151F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 MLOAD DUP2 MSTORE DUP6 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 DUP8 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1552 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x153A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x157F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x278D00 DUP2 JUMP JUMPDEST PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH3 0x127500 DUP2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x160B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x199C PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0x1667 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x181F PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x16C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A94 PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x948B1F6A42EE138B7E34058BA85A37F716D55FF25FF05A763F15BED6A04C8D2C SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x179F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206973207374616C PUSH6 0x2E4E696B6954 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH6 0x786563757469 PUSH16 0x6E2072657665727465642E4E696B6954 PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D75737420657863 PUSH6 0x6564206D696E PUSH10 0x6D756D2064656C61792E 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206861736E277420 PUSH3 0x65656E KECCAK256 PUSH18 0x75657565642E4E696B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A2043616C6C206D7573 PUSH21 0x20636F6D652066726F6D2061646D696E2E4E696B69 SLOAD PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x50656E64696E6741646D696E3A2043616C6C206D75 PUSH20 0x7420636F6D652066726F6D204E696B6954696D65 PUSH13 0x6F636B2E4E696B6954696D656C PUSH16 0x636B3A3A71756575655472616E736163 PUSH21 0x696F6E3A20457374696D6174656420657865637574 PUSH10 0x6F6E20626C6F636B206D PUSH22 0x737420736174697366792064656C61792E4E696B6954 PUSH10 0x6D656C6F636B3A3A6361 PUSH15 0x63656C5472616E73616374696F6E3A KECCAK256 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E4E696B6954696D65 PUSH13 0x6F636B3A3A73657444656C6179 GASPRICE KECCAK256 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 0x4E PUSH10 0x6B6954696D656C6F636B 0x2E 0x4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206861736E277420 PUSH20 0x75727061737365642074696D65206C6F636B2E4E PUSH10 0x6B6954696D656C6F636B GASPRICE GASPRICE PUSH18 0x756575655472616E73616374696F6E3A2043 PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E4E696B6954696D65 PUSH13 0x6F636B3A3A6163636570744164 PUSH14 0x696E3A2043616C6C206D75737420 PUSH4 0x6F6D6520 PUSH7 0x726F6D2070656E PUSH5 0x696E674164 PUSH14 0x696E2E4E696B6954696D656C6F63 PUSH12 0x3A3A73657444656C61793A20 DIFFICULTY PUSH6 0x6C6179206D75 PUSH20 0x74206E6F7420657863656564206D6178696D756D KECCAK256 PUSH5 0x656C61792E LOG2 PUSH6 0x627A7A723158 KECCAK256 DIFFICULTY 0xBD 0xFB XOR SWAP9 LOG3 DUP12 PUSH6 0xD91E9826AD7B CALLDATALOAD 0xE5 CALLDATACOPY DUP2 0xB7 SELFBALANCE JUMPI 0xAC 0xE1 PUSH12 0x3B48379BB61F551564736F6C PUSH4 0x43000510 STOP ORIGIN ",
          "sourceMap": "56:4812:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3359:1336;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3359:1336:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3359:1336:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3359:1336:4;;;;;;;;-1:-1:-1;3359:1336:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;3359:1336:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3359:1336:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3359:1336:4;;-1:-1:-1;;3359:1336:4;;;-1:-1:-1;3359:1336:4;;-1:-1:-1;;3359:1336:4:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:246;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1763:246:4;;;:::i;843:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;843:27:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2289:615;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2289:615:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2289:615:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2289:615:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2289:615:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2289:615:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2289:615:4;;;;;;;;-1:-1:-1;2289:615:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;2289:615:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2289:615:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2289:615:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2289:615:4;;-1:-1:-1;;2289:615:4;;;-1:-1:-1;2289:615:4;;-1:-1:-1;;2289:615:4:i;:::-;;;;;;;;;;;;;;;;2017:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:264:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2017:264:4;;;;:::i;2912:439::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2912:439:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2912:439:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2912:439:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2912:439:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2912:439:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2912:439:4;;;;;;;;-1:-1:-1;2912:439:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;2912:439:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2912:439:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2912:439:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2912:439:4;;-1:-1:-1;;2912:439:4;;;-1:-1:-1;2912:439:4;;-1:-1:-1;;2912:439:4:i;877:17::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;877:17:4;;;:::i;763:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;763:44:4;;;:::i;713:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;713:43:4;;;:::i;663:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;663:43:4;;;:::i;1333:422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1333:422:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1333:422:4;;:::i;903:51::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;903:51:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;903:51:4;;:::i;:::-;;;;;;;;;;;;;;;;;;816:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;816:20:4;;;:::i;3359:1336::-;3540:5;;3493:12;;3540:5;;3526:10;:19;3518:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:14;3661:6;3669:5;3676:9;3687:4;3693:3;3650:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3650:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3650:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3650:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3650:47:4;;;22:32:-1;26:21;;;22:32;6:49;;3650:47:4;;;3640:58;;49:4:-1;3640:58:4;;;;3717:26;;;;:18;:26;;;;;;3640:58;;-1:-1:-1;3717:26:4;;;-1:-1:-1;3709:104:4;;-1:-1:-1;;;;;;;3709:104:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3855:3;3832:19;:17;:19::i;:::-;:26;;3824:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:21;:3;699:7;3978:21;:7;:21;:::i;:::-;3955:19;:17;:19::i;:::-;:44;;3947:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4101:5;4072:26;;;:18;:26;;;;;:34;;;;;;4157:23;;4119:21;;4153:179;;-1:-1:-1;4213:4:4;4153:179;;;4301:9;4285:27;;;;;;4315:4;4261:59;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4261:59:4;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4261:59:4;;;4250:70;;4153:179;4405:12;4419:23;4446:6;:11;;4464:5;4471:8;4446:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4446:34:4;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4404:76:4;;;;4499:7;4491:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:6;4594:63;;4613:6;4594:63;4629:5;4636:9;4647:4;4653:3;4594:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4594:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4594:63:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4594:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4677:10;3359:1336;-1:-1:-1;;;;;;;;;3359:1336:4:o;1763:246::-;1826:12;;;;1812:10;:26;1804:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:5;:18;;1922:10;1914:18;;;;;;;;-1:-1:-1;1943:25:4;;;;;;;;1986:15;;1914:18;1995:5;;;;1986:15;;;1763:246::o;843:27::-;;;;;;:::o;2289:615::-;2413:7;2455:5;;;;2441:10;:19;2433:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2549:30;2573:5;;2549:19;:17;:19::i;:::-;:23;:30;:23;:30;:::i;:::-;2542:3;:37;;2534:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2674:14;2712:6;2720:5;2727:9;2738:4;2744:3;2701:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2701:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2701:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2701:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2701:47:4;;;2691:58;;;;;;2674:75;;2789:4;2760:18;:26;2779:6;2760:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2836:6;2811:61;;2828:6;2811:61;2844:5;2851:9;2862:4;2868:3;2811:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2811:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2811:61:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2811:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2890:6;2289:615;-1:-1:-1;;;;;;2289:615:4:o;2017:264::-;2091:10;2113:4;2091:27;2083:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:12;:28;;;;;;;;;;;;;;;;2244:29;;2260:12;;;2244:29;;-1:-1:-1;;2244:29:4;2017:264;:::o;2912:439::-;3061:5;;;;3047:10;:19;3039:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3143:14;3181:6;3189:5;3196:9;3207:4;3213:3;3170:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3170:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3170:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3170:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3170:47:4;;;3160:58;;;;;;3143:75;;3258:5;3229:18;:26;3248:6;3229:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3307:6;3281:62;;3299:6;3281:62;3315:5;3322:9;3333:4;3339:3;3281:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3281:62:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3281:62:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3281:62:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2912:439;;;;;;:::o;877:17::-;;;;:::o;763:44::-;800:7;763:44;:::o;713:43::-;750:6;713:43;:::o;663:::-;699:7;663:43;:::o;1333:422::-;1390:10;1412:4;1390:27;1382:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:6;1498;:23;;1490:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:7;1601:6;:23;;1593:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:5;:14;;;1732:15;;1708:6;;1732:15;;;;;1333:422;:::o;903:51::-;;;;;;;;;;;;;;;:::o;816:20::-;;;;;;:::o;4703:162::-;4842:15;4703:162;:::o;986:181:7:-;1044:7;1076:5;;;1100:6;;;;1092:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:1;986:181;-1:-1:-1;;;986:181:7:o"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiTimelock.sol\":\"NikiTimelock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiTimelock.sol\":{\"keccak256\":\"0x77e97f448634ef02ed91b9165327b25d2b1b5d0667b43813f440ffd76a06c207\",\"urls\":[\"bzz-raw://859582ffcb641667e0a7723503f0cbf2cb578af9f11c780c8ff3c2cc534c8350\",\"dweb:/ipfs/QmXo4eER3CH2zqNLU3RuVSdnhDvWeGFqGz7xcCK5Xb7Tqk\"]},\"contracts/SafeMath.sol\":{\"keccak256\":\"0x8bd6fa5b7f9108ac202f2dc30e4e3edfa47fc26be4db598b9d42384177e880c0\",\"urls\":[\"bzz-raw://b5fa027da291fba188ae268e43c1c7a7ef2b55e3ab465f3a8b28c569cc159e5c\",\"dweb:/ipfs/QmdRvqojHRMGGqZ9Ute2gLE62i2s6Hd26XC4Jxi43P4om9\"]}},\"version\":1}",
      "bytecode": "608060405234801561001057600080fd5b50604051611c6f380380611c6f8339818101604052604081101561003357600080fd5b5080516020909101516202a30081101561007e5760405162461bcd60e51b815260040180806020018281038252603b815260200180611c34603b913960400191505060405180910390fd5b62278d008111156100c05760405162461bcd60e51b815260040180806020018281038252603c815260200180611bf8603c913960400191505060405180910390fd5b600080546001600160a01b039093166001600160a01b031990931692909217909155600255611b04806100f46000396000f3fe6080604052600436106100d25760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e21461063a578063e177246e1461064f578063f2b0653714610679578063f851a440146106b7576100d2565b80636a42b8f8146105fb5780637d645fab14610610578063b1b43ae514610625576100d2565b80633a66f901116100b05780633a66f901146102ed5780634dd18bf51461045d578063591fcdfe1461049d576100d2565b80630825f38f146100d45780630e18b6811461029a57806326782247146102af575b005b610225600480360360a08110156100ea57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ae57600080fd5b8201836020820111156101c057600080fd5b803590602001918460018302840111640100000000831117156101e257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506106cc915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025f578181015183820152602001610247565b50505050905090810190601f16801561028c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a657600080fd5b506100d2610d4a565b3480156102bb57600080fd5b506102c4610e32565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f957600080fd5b5061044b600480360360a081101561031057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561034d57600080fd5b82018360208201111561035f57600080fd5b8035906020019184600183028401116401000000008311171561038157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610e4e915050565b60408051918252519081900360200190f35b34801561046957600080fd5b506100d26004803603602081101561048057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b3480156104a957600080fd5b506100d2600480360360a08110156104c057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135918101906060810160408201356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184600183028401116401000000008311171561053157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561058457600080fd5b82018360208201111561059657600080fd5b803590602001918460018302840111640100000000831117156105b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611294915050565b34801561060757600080fd5b5061044b611598565b34801561061c57600080fd5b5061044b61159e565b34801561063157600080fd5b5061044b6115a5565b34801561064657600080fd5b5061044b6115ac565b34801561065b57600080fd5b506100d26004803603602081101561067257600080fd5b50356115b3565b34801561068557600080fd5b506106a36004803603602081101561069c57600080fd5b50356116f6565b604080519115158252519081900360200190f35b3480156106c357600080fd5b506102c461170b565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611898603c913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107c85781810151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610828578181015183820152602001610810565b50505050905090810190601f1680156108555780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490995060ff1697506108fe9650505050505050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806118576041913960600191505060405180910390fd5b82610907611727565b101561095e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806119d56049913960600191505060405180910390fd5b610971836212750063ffffffff61172b16565b610979611727565b11156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806117a76037913960400191505060405180910390fd5b600081815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558451606090610a14575083610ae9565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610ab157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a74565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610b5357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b509150915081610c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806117de6041913960600191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c9f578181015183820152602001610c87565b50505050905090810190601f168015610ccc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610cff578181015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a58603c913960400191505060405180910390fd5b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178083556001805490921690915560405173ffffffffffffffffffffffffffffffffffffffff909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611a1e603a913960400191505060405180910390fd5b610ed9600254610ecd611727565b9063ffffffff61172b16565b821015610f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180611914604d913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561101a578181015183820152602001611002565b50505050905090810190601f1680156110475780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561111f578181015183820152602001611107565b50505050905090810190601f16801561114c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b33301461121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806118d46040913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611961603b913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561138d578181015183820152602001611375565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156113ed5781810151838201526020016113d5565b50505050905090810190601f16801561141a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561155257818101518382015260200161153a565b50505050905090810190601f16801561157f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b33301461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061199c6039913960400191505060405180910390fd5b6202a300811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061181f6038913960400191505060405180910390fd5b62278d008111156116c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a94603c913960400191505060405180910390fd5b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60008282018381101561179f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792ea265627a7a7231582044bdfb1898a38b65d91e9826ad7b35e53781b74757ace16b3b48379bb61f551564736f6c634300051000324e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e4e696b6954696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e",
      "bin": "608060405234801561001057600080fd5b50604051611c6f380380611c6f8339818101604052604081101561003357600080fd5b5080516020909101516202a30081101561007e5760405162461bcd60e51b815260040180806020018281038252603b815260200180611c34603b913960400191505060405180910390fd5b62278d008111156100c05760405162461bcd60e51b815260040180806020018281038252603c815260200180611bf8603c913960400191505060405180910390fd5b600080546001600160a01b039093166001600160a01b031990931692909217909155600255611b04806100f46000396000f3fe6080604052600436106100d25760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e21461063a578063e177246e1461064f578063f2b0653714610679578063f851a440146106b7576100d2565b80636a42b8f8146105fb5780637d645fab14610610578063b1b43ae514610625576100d2565b80633a66f901116100b05780633a66f901146102ed5780634dd18bf51461045d578063591fcdfe1461049d576100d2565b80630825f38f146100d45780630e18b6811461029a57806326782247146102af575b005b610225600480360360a08110156100ea57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ae57600080fd5b8201836020820111156101c057600080fd5b803590602001918460018302840111640100000000831117156101e257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506106cc915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025f578181015183820152602001610247565b50505050905090810190601f16801561028c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a657600080fd5b506100d2610d4a565b3480156102bb57600080fd5b506102c4610e32565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f957600080fd5b5061044b600480360360a081101561031057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561034d57600080fd5b82018360208201111561035f57600080fd5b8035906020019184600183028401116401000000008311171561038157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610e4e915050565b60408051918252519081900360200190f35b34801561046957600080fd5b506100d26004803603602081101561048057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b3480156104a957600080fd5b506100d2600480360360a08110156104c057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135918101906060810160408201356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184600183028401116401000000008311171561053157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561058457600080fd5b82018360208201111561059657600080fd5b803590602001918460018302840111640100000000831117156105b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611294915050565b34801561060757600080fd5b5061044b611598565b34801561061c57600080fd5b5061044b61159e565b34801561063157600080fd5b5061044b6115a5565b34801561064657600080fd5b5061044b6115ac565b34801561065b57600080fd5b506100d26004803603602081101561067257600080fd5b50356115b3565b34801561068557600080fd5b506106a36004803603602081101561069c57600080fd5b50356116f6565b604080519115158252519081900360200190f35b3480156106c357600080fd5b506102c461170b565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611898603c913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107c85781810151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610828578181015183820152602001610810565b50505050905090810190601f1680156108555780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490995060ff1697506108fe9650505050505050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806118576041913960600191505060405180910390fd5b82610907611727565b101561095e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806119d56049913960600191505060405180910390fd5b610971836212750063ffffffff61172b16565b610979611727565b11156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806117a76037913960400191505060405180910390fd5b600081815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558451606090610a14575083610ae9565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610ab157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a74565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610b5357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b509150915081610c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806117de6041913960600191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c9f578181015183820152602001610c87565b50505050905090810190601f168015610ccc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610cff578181015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a58603c913960400191505060405180910390fd5b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178083556001805490921690915560405173ffffffffffffffffffffffffffffffffffffffff909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611a1e603a913960400191505060405180910390fd5b610ed9600254610ecd611727565b9063ffffffff61172b16565b821015610f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180611914604d913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561101a578181015183820152602001611002565b50505050905090810190601f1680156110475780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561111f578181015183820152602001611107565b50505050905090810190601f16801561114c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b33301461121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806118d46040913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611961603b913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561138d578181015183820152602001611375565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156113ed5781810151838201526020016113d5565b50505050905090810190601f16801561141a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561155257818101518382015260200161153a565b50505050905090810190601f16801561157f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b33301461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061199c6039913960400191505060405180910390fd5b6202a300811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061181f6038913960400191505060405180910390fd5b62278d008111156116c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a94603c913960400191505060405180910390fd5b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60008282018381101561179f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792ea265627a7a7231582044bdfb1898a38b65d91e9826ad7b35e53781b74757ace16b3b48379bb61f551564736f6c634300051000324e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e4e696b6954696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e",
      "bin-runtime": "6080604052600436106100d25760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e21461063a578063e177246e1461064f578063f2b0653714610679578063f851a440146106b7576100d2565b80636a42b8f8146105fb5780637d645fab14610610578063b1b43ae514610625576100d2565b80633a66f901116100b05780633a66f901146102ed5780634dd18bf51461045d578063591fcdfe1461049d576100d2565b80630825f38f146100d45780630e18b6811461029a57806326782247146102af575b005b610225600480360360a08110156100ea57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ae57600080fd5b8201836020820111156101c057600080fd5b803590602001918460018302840111640100000000831117156101e257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506106cc915050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025f578181015183820152602001610247565b50505050905090810190601f16801561028c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a657600080fd5b506100d2610d4a565b3480156102bb57600080fd5b506102c4610e32565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f957600080fd5b5061044b600480360360a081101561031057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169160208101359181019060608101604082013564010000000081111561034d57600080fd5b82018360208201111561035f57600080fd5b8035906020019184600183028401116401000000008311171561038157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610e4e915050565b60408051918252519081900360200190f35b34801561046957600080fd5b506100d26004803603602081101561048057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b3480156104a957600080fd5b506100d2600480360360a08110156104c057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135918101906060810160408201356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184600183028401116401000000008311171561053157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561058457600080fd5b82018360208201111561059657600080fd5b803590602001918460018302840111640100000000831117156105b857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611294915050565b34801561060757600080fd5b5061044b611598565b34801561061c57600080fd5b5061044b61159e565b34801561063157600080fd5b5061044b6115a5565b34801561064657600080fd5b5061044b6115ac565b34801561065b57600080fd5b506100d26004803603602081101561067257600080fd5b50356115b3565b34801561068557600080fd5b506106a36004803603602081101561069c57600080fd5b50356116f6565b604080519115158252519081900360200190f35b3480156106c357600080fd5b506102c461170b565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611898603c913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156107c85781810151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610828578181015183820152602001610810565b50505050905090810190601f1680156108555780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490995060ff1697506108fe9650505050505050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806118576041913960600191505060405180910390fd5b82610907611727565b101561095e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806119d56049913960600191505060405180910390fd5b610971836212750063ffffffff61172b16565b610979611727565b11156109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806117a76037913960400191505060405180910390fd5b600081815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558451606090610a14575083610ae9565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610ab157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a74565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610b5357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b16565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b509150915081610c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806117de6041913960600191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610c9f578181015183820152602001610c87565b50505050905090810190601f168015610ccc5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610cff578181015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39998505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610dba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a58603c913960400191505060405180910390fd5b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178083556001805490921690915560405173ffffffffffffffffffffffffffffffffffffffff909116917f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c91a2565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611a1e603a913960400191505060405180910390fd5b610ed9600254610ecd611727565b9063ffffffff61172b16565b821015610f31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180611914604d913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561101a578181015183820152602001611002565b50505050905090810190601f1680156110475780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561111f578181015183820152602001611107565b50505050905090810190601f16801561114c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a39695505050505050565b33301461121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806118d46040913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180611961603b913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561138d578181015183820152602001611375565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156113ed5781810151838201526020016113d5565b50505050905090810190601f16801561141a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561155257818101518382015260200161153a565b50505050905090810190601f16801561157f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b33301461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603981526020018061199c6039913960400191505060405180910390fd5b6202a300811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061181f6038913960400191505060405180910390fd5b62278d008111156116c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180611a94603c913960400191505060405180910390fd5b600281905560405181907f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c90600090a250565b60036020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b4290565b60008282018381101561179f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792ea265627a7a7231582044bdfb1898a38b65d91e9826ad7b35e53781b74757ace16b3b48379bb61f551564736f6c63430005100032",
      "srcmap": "56:4812:4:-;;;965:321;8:9:-1;5:2;;;30:1;27;20:12;5:2;965:321:4;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;965:321:4;;;;;;;750:6;1032:23;;;1024:95;;;;-1:-1:-1;;;1024:95:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:7;1138:6;:23;;1130:96;;;;-1:-1:-1;;;1130:96:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1239:5;:14;;-1:-1:-1;;;;;1239:14:4;;;-1:-1:-1;;;;;;1239:14:4;;;;;;;;;;1264:5;:14;56:4812;;;;;;",
      "srcmap-runtime": "56:4812:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3359:1336;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3359:1336:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3359:1336:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3359:1336:4;;;;;;;;-1:-1:-1;3359:1336:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;3359:1336:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3359:1336:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3359:1336:4;;-1:-1:-1;;3359:1336:4;;;-1:-1:-1;3359:1336:4;;-1:-1:-1;;3359:1336:4:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3359:1336:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:246;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1763:246:4;;;:::i;843:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;843:27:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2289:615;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2289:615:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2289:615:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2289:615:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2289:615:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2289:615:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2289:615:4;;;;;;;;-1:-1:-1;2289:615:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;2289:615:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2289:615:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2289:615:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2289:615:4;;-1:-1:-1;;2289:615:4;;;-1:-1:-1;2289:615:4;;-1:-1:-1;;2289:615:4:i;:::-;;;;;;;;;;;;;;;;2017:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:264:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2017:264:4;;;;:::i;2912:439::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2912:439:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2912:439:4;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2912:439:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2912:439:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2912:439:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2912:439:4;;;;;;;;-1:-1:-1;2912:439:4;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;2912:439:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2912:439:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2912:439:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2912:439:4;;-1:-1:-1;;2912:439:4;;;-1:-1:-1;2912:439:4;;-1:-1:-1;;2912:439:4:i;877:17::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;877:17:4;;;:::i;763:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;763:44:4;;;:::i;713:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;713:43:4;;;:::i;663:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;663:43:4;;;:::i;1333:422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1333:422:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1333:422:4;;:::i;903:51::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;903:51:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;903:51:4;;:::i;:::-;;;;;;;;;;;;;;;;;;816:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;816:20:4;;;:::i;3359:1336::-;3540:5;;3493:12;;3540:5;;3526:10;:19;3518:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:14;3661:6;3669:5;3676:9;3687:4;3693:3;3650:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3650:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3650:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3650:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3650:47:4;;;22:32:-1;26:21;;;22:32;6:49;;3650:47:4;;;3640:58;;49:4:-1;3640:58:4;;;;3717:26;;;;:18;:26;;;;;;3640:58;;-1:-1:-1;3717:26:4;;;-1:-1:-1;3709:104:4;;-1:-1:-1;;;;;;;3709:104:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3855:3;3832:19;:17;:19::i;:::-;:26;;3824:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:21;:3;699:7;3978:21;:7;:21;:::i;:::-;3955:19;:17;:19::i;:::-;:44;;3947:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4101:5;4072:26;;;:18;:26;;;;;:34;;;;;;4157:23;;4119:21;;4153:179;;-1:-1:-1;4213:4:4;4153:179;;;4301:9;4285:27;;;;;;4315:4;4261:59;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4261:59:4;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4261:59:4;;;4250:70;;4153:179;4405:12;4419:23;4446:6;:11;;4464:5;4471:8;4446:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4446:34:4;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4404:76:4;;;;4499:7;4491:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:6;4594:63;;4613:6;4594:63;4629:5;4636:9;4647:4;4653:3;4594:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4594:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4594:63:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4594:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4677:10;3359:1336;-1:-1:-1;;;;;;;;;3359:1336:4:o;1763:246::-;1826:12;;;;1812:10;:26;1804:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:5;:18;;1922:10;1914:18;;;;;;;;-1:-1:-1;1943:25:4;;;;;;;;1986:15;;1914:18;1995:5;;;;1986:15;;;1763:246::o;843:27::-;;;;;;:::o;2289:615::-;2413:7;2455:5;;;;2441:10;:19;2433:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2549:30;2573:5;;2549:19;:17;:19::i;:::-;:23;:30;:23;:30;:::i;:::-;2542:3;:37;;2534:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2674:14;2712:6;2720:5;2727:9;2738:4;2744:3;2701:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2701:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2701:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2701:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2701:47:4;;;2691:58;;;;;;2674:75;;2789:4;2760:18;:26;2779:6;2760:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2836:6;2811:61;;2828:6;2811:61;2844:5;2851:9;2862:4;2868:3;2811:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2811:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2811:61:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2811:61:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2890:6;2289:615;-1:-1:-1;;;;;;2289:615:4:o;2017:264::-;2091:10;2113:4;2091:27;2083:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:12;:28;;;;;;;;;;;;;;;;2244:29;;2260:12;;;2244:29;;-1:-1:-1;;2244:29:4;2017:264;:::o;2912:439::-;3061:5;;;;3047:10;:19;3039:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3143:14;3181:6;3189:5;3196:9;3207:4;3213:3;3170:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3170:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3170:47:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3170:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3170:47:4;;;3160:58;;;;;;3143:75;;3258:5;3229:18;:26;3248:6;3229:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3307:6;3281:62;;3299:6;3281:62;3315:5;3322:9;3333:4;3339:3;3281:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3281:62:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3281:62:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3281:62:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2912:439;;;;;;:::o;877:17::-;;;;:::o;763:44::-;800:7;763:44;:::o;713:43::-;750:6;713:43;:::o;663:::-;699:7;663:43;:::o;1333:422::-;1390:10;1412:4;1390:27;1382:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:6;1498;:23;;1490:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:7;1601:6;:23;;1593:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:5;:14;;;1732:15;;1708:6;;1732:15;;;;;1333:422;:::o;903:51::-;;;;;;;;;;;;;;;:::o;816:20::-;;;;;;:::o;4703:162::-;4842:15;4703:162;:::o;986:181:7:-;1044:7;1076:5;;;1100:6;;;;1092:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:1;986:181;-1:-1:-1;;;986:181:7:o"
    },
    "contracts/NikiToSetter.sol:INikiswapV2Factory": {
      "abi": [
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "setFeeTo",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "name": "setFeeToSetter",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiToSetter.sol\":\"INikiswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiToSetter.sol\":{\"keccak256\":\"0x2e4540e7069c3f6b54e2c265fbc26cecacf1a66ad3d0568f445d4ab5980e0abc\",\"urls\":[\"bzz-raw://339b49ec16be050a32bda6488db9bdc3eb00560f38f72ccb0b3fa4ce0d79910a\",\"dweb:/ipfs/QmZWqdZuhBvbgwUZ71Aztta3WbPyUYSRUjLfz8NTGWkUby\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiToSetter.sol:NikiFeeToSetter": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "factory_",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "vestingEnd_",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "feeTo_",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "factory",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "feeTo",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "feeToSetter_",
              "type": "address"
            }
          ],
          "name": "setFeeToSetter",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "owner_",
              "type": "address"
            }
          ],
          "name": "setOwner",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "bool",
              "name": "on",
              "type": "bool"
            }
          ],
          "name": "toggleFees",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingEnd",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820cebbc7c78615df376f0b289705a3730ff573cd65cb12bfda728f26e1fdd4828f64736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x75B CODESIZE SUB DUP1 PUSH2 0x75B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 TIMESTAMP DUP4 GT PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x71C PUSH1 0x3F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP3 DUP6 AND SWAP3 DUP5 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH2 0x642 DUP1 PUSH2 0xDA 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 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0xA69EA776 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15C JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x84A1931F EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF0 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x23D JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD ISZERO ISZERO PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x8A PUSH2 0x521 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x53E PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5E1 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x58D PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA2E74AF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA2E74AF6 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x564 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5B9 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF46901ED DUP3 PUSH2 0x4A5 JUMPI PUSH1 0x0 PUSH2 0x4BF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID 0x4E PUSH10 0x6B69466565546F536574 PUSH21 0x65723A3A7365744F776E65723A206E6F7420616C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A746F67 PUSH8 0x6C65466565733A20 PUSH15 0x6F742074696D65207965744E696B69 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A3A736574466565546F5365747465723A206E PUSH16 0x7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x5365747465723A3A746F67676C654665 PUSH6 0x733A206E6F74 KECCAK256 PUSH2 0x6C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A736574 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A206E6F742074696D6520796574A265627A7A PUSH19 0x315820CEBBC7C78615DF376F0B289705A3730F CREATE2 PUSH20 0xCD65CB12BFDA728F26E1FDD4828F64736F6C6343 STOP SDIV LT STOP ORIGIN 0x4E PUSH10 0x6B69466565546F536574 PUSH21 0x65723A3A636F6E7374727563746F723A2076657374 PUSH10 0x6E67206D75737420656E PUSH5 0x2061667465 PUSH19 0x206465706C6F796D656E740000000000000000 ",
          "sourceMap": "149:1442:5:-;;;316:325;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:325:5;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;316:325:5;;;;;;;;;;;;;;;;;;;436:15;422:29;;414:105;;;;-1:-1:-1;;;414:105:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:7;:18;;-1:-1:-1;;;;;530:18:5;;;-1:-1:-1;;;;;;530:18:5;;;;;;;;559:24;;;;594:5;:14;;;;;;;;;;;;;;;619:5;:14;;;;;;;;;;;149:1442;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820cebbc7c78615df376f0b289705a3730ff573cd65cb12bfda728f26e1fdd4828f64736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x102 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0xA69EA776 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15C JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x84A1931F EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF0 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x23D JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD ISZERO ISZERO PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x8A PUSH2 0x521 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x53E PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5E1 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x58D PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA2E74AF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA2E74AF6 SWAP3 PUSH1 0x24 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD TIMESTAMP LT ISZERO PUSH2 0x40B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x564 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5B9 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF46901ED DUP3 PUSH2 0x4A5 JUMPI PUSH1 0x0 PUSH2 0x4BF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID 0x4E PUSH10 0x6B69466565546F536574 PUSH21 0x65723A3A7365744F776E65723A206E6F7420616C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A746F67 PUSH8 0x6C65466565733A20 PUSH15 0x6F742074696D65207965744E696B69 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A3A736574466565546F5365747465723A206E PUSH16 0x7420616C6C6F7765644E696B69466565 SLOAD PUSH16 0x5365747465723A3A746F67676C654665 PUSH6 0x733A206E6F74 KECCAK256 PUSH2 0x6C6C PUSH16 0x7765644E696B69466565546F53657474 PUSH6 0x723A3A736574 CHAINID PUSH6 0x65546F536574 PUSH21 0x65723A206E6F742074696D6520796574A265627A7A PUSH19 0x315820CEBBC7C78615DF376F0B289705A3730F CREATE2 PUSH20 0xCD65CB12BFDA728F26E1FDD4828F64736F6C6343 STOP SDIV LT STOP ORIGIN ",
          "sourceMap": "149:1442:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:1442:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;699:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;699:155:5;;;;:::i;:::-;;229:22;;;:::i;:::-;;;;;;;;;;;;;;;;287:20;;;:::i;919:313::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;919:313:5;;;;:::i;1295:293::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1295:293:5;;;;:::i;200:22::-;;;:::i;258:20::-;;;;;;:::o;699:155::-;773:5;;;;759:10;:19;751:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:5;:14;;;;;;;;;;;;;;;699:155::o;229:22::-;;;;:::o;287:20::-;;;;;;:::o;919:313::-;1010:10;;991:15;:29;;983:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:5;;;;1089:10;:19;1081:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:7;;;1168:56;;;;;;1187:7;1168:56;;;;;;;;;1187:7;;;;;1168:42;;:56;;;;;;;;;;;1187:7;;1168:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1168:56:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1168:56:5;;;;919:313;:::o;1295:293::-;1369:10;;1350:15;:29;;1342:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1458:5;;;;1444:10;:19;1436:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1538:7;;;;1519:36;1556:2;:23;;1577:1;1556:23;;;1561:5;;;;1556:23;1519:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;200:22:5;;;;;;:::o"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeTo_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeToSetter_\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"on\",\"type\":\"bool\"}],\"name\":\"toggleFees\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiToSetter.sol\":\"NikiFeeToSetter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiToSetter.sol\":{\"keccak256\":\"0x2e4540e7069c3f6b54e2c265fbc26cecacf1a66ad3d0568f445d4ab5980e0abc\",\"urls\":[\"bzz-raw://339b49ec16be050a32bda6488db9bdc3eb00560f38f72ccb0b3fa4ce0d79910a\",\"dweb:/ipfs/QmZWqdZuhBvbgwUZ71Aztta3WbPyUYSRUjLfz8NTGWkUby\"]}},\"version\":1}",
      "bytecode": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820cebbc7c78615df376f0b289705a3730ff573cd65cb12bfda728f26e1fdd4828f64736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
      "bin": "608060405234801561001057600080fd5b5060405161075b38038061075b8339818101604052608081101561003357600080fd5b50805160208201516040830151606090930151919290914283116100885760405162461bcd60e51b815260040180806020018281038252603f81526020018061071c603f913960400191505060405180910390fd5b600080546001600160a01b039586166001600160a01b031991821617909155600193909355600380549285169284169290921790915560028054919093169116179055610642806100da6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820cebbc7c78615df376f0b289705a3730ff573cd65cb12bfda728f26e1fdd4828f64736f6c634300051000324e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
      "bin-runtime": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610102578063a2e74af61461010a578063a69ea7761461013d578063c45a01551461015c5761007d565b8063017e7e581461008257806313af4035146100b357806384a1931f146100e8575b600080fd5b61008a610164565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e6600480360360208110156100c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610180565b005b6100f0610237565b60408051918252519081900360200190f35b61008a61023d565b6100e66004803603602081101561012057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610259565b6100e66004803603602081101561015357600080fd5b503515156103b0565b61008a610521565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061053e6026913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001544210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806105e1602d913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff163314610324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061058d602c913960400191505060405180910390fd5b60008054604080517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169263a2e74af6926024808201939182900301818387803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b5050505050565b60015442101561040b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806105646029913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff16331461047b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105b96028913960400191505060405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1663f46901ed826104a55760006104bf565b60025473ffffffffffffffffffffffffffffffffffffffff165b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561039557600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff168156fe4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d65207965744e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f7765644e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574a265627a7a72315820cebbc7c78615df376f0b289705a3730ff573cd65cb12bfda728f26e1fdd4828f64736f6c63430005100032",
      "srcmap": "149:1442:5:-;;;316:325;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:325:5;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;316:325:5;;;;;;;;;;;;;;;;;;;436:15;422:29;;414:105;;;;-1:-1:-1;;;414:105:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:7;:18;;-1:-1:-1;;;;;530:18:5;;;-1:-1:-1;;;;;;530:18:5;;;;;;;;559:24;;;;594:5;:14;;;;;;;;;;;;;;;619:5;:14;;;;;;;;;;;149:1442;;;;;;",
      "srcmap-runtime": "149:1442:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:1442:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;699:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;699:155:5;;;;:::i;:::-;;229:22;;;:::i;:::-;;;;;;;;;;;;;;;;287:20;;;:::i;919:313::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;919:313:5;;;;:::i;1295:293::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1295:293:5;;;;:::i;200:22::-;;;:::i;258:20::-;;;;;;:::o;699:155::-;773:5;;;;759:10;:19;751:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:5;:14;;;;;;;;;;;;;;;699:155::o;229:22::-;;;;:::o;287:20::-;;;;;;:::o;919:313::-;1010:10;;991:15;:29;;983:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:5;;;;1089:10;:19;1081:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:7;;;1168:56;;;;;;1187:7;1168:56;;;;;;;;;1187:7;;;;;1168:42;;:56;;;;;;;;;;;1187:7;;1168:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1168:56:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1168:56:5;;;;919:313;:::o;1295:293::-;1369:10;;1350:15;:29;;1342:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1458:5;;;;1444:10;:19;1436:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1538:7;;;;1519:36;1556:2;:23;;1577:1;1556:23;;;1561:5;;;;1556:23;1519:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;200:22:5;;;;;;:::o"
    },
    "contracts/NikiTreasuryVester.sol:INiki": {
      "abi": [
        {
          "constant": true,
          "inputs": [
            {
              "internalType": "address",
              "name": "account",
              "type": "address"
            }
          ],
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "dst",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rawAmount",
              "type": "uint256"
            }
          ],
          "name": "transfer",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "",
          "opcodes": "",
          "sourceMap": ""
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiTreasuryVester.sol\":\"INiki\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiTreasuryVester.sol\":{\"keccak256\":\"0x2fdb77c65892136e1753aab8acff345644836bec977527247dfd776d7aa9b0b2\",\"urls\":[\"bzz-raw://93b50ce19c7d39fed5f376295eadc7b4cff227ee87a950a3eb22e7f60cf15d5a\",\"dweb:/ipfs/QmarUMYks4GWNZH5K3ZvpyjWw4ko6e14vQuHwy8zWSHiF3\"]},\"contracts/SafeMath.sol\":{\"keccak256\":\"0x8bd6fa5b7f9108ac202f2dc30e4e3edfa47fc26be4db598b9d42384177e880c0\",\"urls\":[\"bzz-raw://b5fa027da291fba188ae268e43c1c7a7ef2b55e3ab465f3a8b28c569cc159e5c\",\"dweb:/ipfs/QmdRvqojHRMGGqZ9Ute2gLE62i2s6Hd26XC4Jxi43P4om9\"]}},\"version\":1}",
      "bytecode": "",
      "bin": "",
      "bin-runtime": "",
      "srcmap": "",
      "srcmap-runtime": ""
    },
    "contracts/NikiTreasuryVester.sol:NikiTreasuryVester": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "niki_",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "recipient_",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "vestingAmount_",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vestingBegin_",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vestingCliff_",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "vestingEnd_",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "constant": false,
          "inputs": [],
          "name": "claim",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "lastUpdate",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "niki",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "recipient",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": false,
          "inputs": [
            {
              "internalType": "address",
              "name": "recipient_",
              "type": "address"
            }
          ],
          "name": "setRecipient",
          "outputs": [],
          "payable": false,
          "stateMutability": "nonpayable",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingAmount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingBegin",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingCliff",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        },
        {
          "constant": true,
          "inputs": [],
          "name": "vestingEnd",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ],
          "payable": false,
          "stateMutability": "view",
          "type": "function"
        }
      ],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b50604051610880380380610880833981810160405260c081101561003357600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091428310156100975760405162461bcd60e51b81526004018080602001828103825260398152602001806108476039913960400191505060405180910390fd5b828210156100d65760405162461bcd60e51b81526004018080602001828103825260348152602001806108136034913960400191505060405180910390fd5b8181116101145760405162461bcd60e51b81526004018080602001828103825260328152602001806107e16032913960400191505060405180910390fd5b600080546001600160a01b039788166001600160a01b031991821617909155600180549690971695169490941790945560029190915560038190556004929092556005556006556106778061016a6000396000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fae318fe1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661015d565b005b6100f4610214565b610106610405565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610421565b6100af610427565b6100af61042d565b6100af610433565b610106610439565b60025481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610614602f913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045442101561026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105cb6028913960400191505060405180910390fd5b6000600554421061031e57600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d602081101561031557600080fd5b50519050610354565b61034d60035460055403610341600654420360025461045590919063ffffffff16565b9063ffffffff6104d116565b4260065590505b60008054600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156103d657600080fd5b505af11580156103ea573d6000803e3d6000fd5b505050506040513d602081101561040057600080fd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60065481565b60035481565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600082610464575060006104cb565b8282028284828161047157fe5b04146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806105f36021913960400191505060405180910390fd5b90505b92915050565b60006104c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836105b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105c057fe5b049594505050505056fe456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a265627a7a72315820aa08471db565d3a69534a5ef6dd25bd2506aba9023d3b2243cb2caffef86ebe764736f6c63430005100032456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20656e6420697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20636c69666620697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a2076657374696e6720626567696e20746f6f206561726c79",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x880 CODESIZE SUB DUP1 PUSH2 0x880 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0xC0 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0xA0 SWAP1 SWAP6 ADD MLOAD SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 TIMESTAMP DUP4 LT ISZERO PUSH2 0x97 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x847 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x813 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 GT PUSH2 0x114 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x7E1 PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP7 SWAP1 SWAP8 AND SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP5 SSTORE PUSH1 0x2 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x4 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x5 SSTORE PUSH1 0x6 SSTORE PUSH2 0x677 DUP1 PUSH2 0x16A 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 0xA2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84A1931F GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xE29BC68B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xE29BC68B EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0xF3640E74 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0xFAE318FE EQ PUSH2 0x14F JUMPI PUSH2 0xA2 JUMP JUMPDEST DUP1 PUSH4 0x84A1931F EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x137 JUMPI PUSH2 0xA2 JUMP JUMPDEST DUP1 PUSH3 0x728F76 EQ PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3BBED4A0 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x4E71D92D EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x66D003AC EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAF PUSH2 0x157 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x15D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF4 PUSH2 0x214 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAF PUSH2 0x421 JUMP JUMPDEST PUSH2 0xAF PUSH2 0x427 JUMP JUMPDEST PUSH2 0xAF PUSH2 0x42D JUMP JUMPDEST PUSH2 0xAF PUSH2 0x433 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x614 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5CB PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0x31E JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x354 JUMP JUMPDEST PUSH2 0x34D PUSH1 0x3 SLOAD PUSH1 0x5 SLOAD SUB PUSH2 0x341 PUSH1 0x6 SLOAD TIMESTAMP SUB PUSH1 0x2 SLOAD PUSH2 0x455 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4D1 AND JUMP JUMPDEST TIMESTAMP PUSH1 0x6 SSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH1 0x44 DUP1 DUP3 ADD SWAP4 PUSH1 0x20 SWAP4 SWAP1 SWAP3 DUP4 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x464 JUMPI POP PUSH1 0x0 PUSH2 0x4CB JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x471 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5F3 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C8 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH1 0x0 DUP2 DUP4 PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x579 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x561 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5A6 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x5C0 JUMPI INVALID JUMPDEST DIV SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID GASLIMIT PUSH13 0x69746554726561737572795665 PUSH20 0x7465723A3A636C61696D3A206E6F742074696D65 KECCAK256 PUSH26 0x6574536166654D6174683A206D756C7469706C69636174696F6E KECCAK256 PUSH16 0x766572666C6F77456C69746554726561 PUSH20 0x7572795665737465723A3A736574526563697069 PUSH6 0x6E743A20756E PUSH2 0x7574 PUSH9 0x6F72697A6564A26562 PUSH27 0x7A72315820AA08471DB565D3A69534A5EF6DD25BD2506ABA9023D3 0xB2 0x24 EXTCODECOPY 0xB2 0xCA SELFDESTRUCT 0xEF DUP7 0xEB 0xE7 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN GASLIMIT PUSH13 0x69746554726561737572795665 PUSH20 0x7465723A3A636F6E7374727563746F723A20656E PUSH5 0x2069732074 PUSH16 0x6F206561726C79456C69746554726561 PUSH20 0x7572795665737465723A3A636F6E737472756374 PUSH16 0x723A20636C69666620697320746F6F20 PUSH6 0x61726C79456C PUSH10 0x74655472656173757279 JUMP PUSH6 0x737465723A3A PUSH4 0x6F6E7374 PUSH19 0x7563746F723A2076657374696E672062656769 PUSH15 0x20746F6F206561726C790000000000 ",
          "sourceMap": "56:1738:6:-;;;338:774;8:9:-1;5:2;;;30:1;27;20:12;5:2;338:774:6;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;338:774:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;568:15;551:32;;;543:102;;;;-1:-1:-1;;;543:102:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;664;:30;;656:95;;;;-1:-1:-1;;;656:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;784:13;770:11;:27;762:90;;;;-1:-1:-1;;;762:90:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;:12;;-1:-1:-1;;;;;865:12:6;;;-1:-1:-1;;;;;;865:12:6;;;;;;;;888:22;;;;;;;;;;;;;;;923:13;:30;;;;964:12;:28;;;1003:12;:28;;;;1042:10;:24;1079:10;:25;56:1738;;;;;;"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fae318fe1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661015d565b005b6100f4610214565b610106610405565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610421565b6100af610427565b6100af61042d565b6100af610433565b610106610439565b60025481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610614602f913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045442101561026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105cb6028913960400191505060405180910390fd5b6000600554421061031e57600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d602081101561031557600080fd5b50519050610354565b61034d60035460055403610341600654420360025461045590919063ffffffff16565b9063ffffffff6104d116565b4260065590505b60008054600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156103d657600080fd5b505af11580156103ea573d6000803e3d6000fd5b505050506040513d602081101561040057600080fd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60065481565b60035481565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600082610464575060006104cb565b8282028284828161047157fe5b04146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806105f36021913960400191505060405180910390fd5b90505b92915050565b60006104c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836105b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105c057fe5b049594505050505056fe456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a265627a7a72315820aa08471db565d3a69534a5ef6dd25bd2506aba9023d3b2243cb2caffef86ebe764736f6c63430005100032",
          "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84A1931F GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xE29BC68B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xE29BC68B EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0xF3640E74 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0xFAE318FE EQ PUSH2 0x14F JUMPI PUSH2 0xA2 JUMP JUMPDEST DUP1 PUSH4 0x84A1931F EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x137 JUMPI PUSH2 0xA2 JUMP JUMPDEST DUP1 PUSH3 0x728F76 EQ PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3BBED4A0 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x4E71D92D EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x66D003AC EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAF PUSH2 0x157 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x15D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF4 PUSH2 0x214 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xAF PUSH2 0x421 JUMP JUMPDEST PUSH2 0xAF PUSH2 0x427 JUMP JUMPDEST PUSH2 0xAF PUSH2 0x42D JUMP JUMPDEST PUSH2 0xAF PUSH2 0x433 JUMP JUMPDEST PUSH2 0x106 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x614 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP LT ISZERO PUSH2 0x26F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5CB PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD TIMESTAMP LT PUSH2 0x31E JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x354 JUMP JUMPDEST PUSH2 0x34D PUSH1 0x3 SLOAD PUSH1 0x5 SLOAD SUB PUSH2 0x341 PUSH1 0x6 SLOAD TIMESTAMP SUB PUSH1 0x2 SLOAD PUSH2 0x455 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x4D1 AND JUMP JUMPDEST TIMESTAMP PUSH1 0x6 SSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 PUSH4 0xA9059CBB SWAP3 PUSH1 0x44 DUP1 DUP3 ADD SWAP4 PUSH1 0x20 SWAP4 SWAP1 SWAP3 DUP4 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP3 SWAP1 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x464 JUMPI POP PUSH1 0x0 PUSH2 0x4CB JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x471 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5F3 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C8 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH1 0x0 DUP2 DUP4 PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x579 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x561 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x5A6 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x5C0 JUMPI INVALID JUMPDEST DIV SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID GASLIMIT PUSH13 0x69746554726561737572795665 PUSH20 0x7465723A3A636C61696D3A206E6F742074696D65 KECCAK256 PUSH26 0x6574536166654D6174683A206D756C7469706C69636174696F6E KECCAK256 PUSH16 0x766572666C6F77456C69746554726561 PUSH20 0x7572795665737465723A3A736574526563697069 PUSH6 0x6E743A20756E PUSH2 0x7574 PUSH9 0x6F72697A6564A26562 PUSH27 0x7A72315820AA08471DB565D3A69534A5EF6DD25BD2506ABA9023D3 0xB2 0x24 EXTCODECOPY 0xB2 0xCA SELFDESTRUCT 0xEF DUP7 0xEB 0xE7 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
          "sourceMap": "56:1738:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;56:1738:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:25;;;:::i;:::-;;;;;;;;;;;;;;;;1120:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1120:184:6;;;;:::i;:::-;;1312:479;;;:::i;149:24::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;276:22;;;:::i;307:::-;;;:::i;214:24::-;;;:::i;245:::-;;;:::i;123:19::-;;;:::i;182:25::-;;;;:::o;1120:184::-;1202:9;;;;1188:10;:23;1180:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:9;:22;;;;;;;;;;;;;;;1120:184::o;1312:479::-;1374:12;;1355:15;:31;;1347:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1442:11;1487:10;;1468:15;:29;1464:270;;1529:4;;1523:36;;;;;;1553:4;1523:36;;;;;;1529:4;;;;;1523:21;;:36;;;;;;;;;;;;;;;1529:4;1523:36;;;5:2:-1;;;;30:1;27;20:12;5:2;1523:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1523:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1523:36:6;;-1:-1:-1;1464:270:6;;;1601:78;1666:12;;1653:10;;:25;1601:47;1637:10;;1619:15;:28;1601:13;;:17;;:47;;;;:::i;:::-;:51;:78;:51;:78;:::i;:::-;1707:15;1694:10;:28;1592:87;-1:-1:-1;1464:270:6;1750:4;;;;1765:9;1744:39;;;;;;1750:4;1765:9;;;1744:39;;;;;;;;;;;;1750:4;;;;;1744:20;;:39;;;;;;;;;;;;;;;;;;1750:4;1744:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1744:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1744:39:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;1312:479:6:o;149:24::-;;;;;;:::o;276:22::-;;;;:::o;307:::-;;;;:::o;214:24::-;;;;:::o;245:::-;;;;:::o;123:19::-;;;;;;:::o;2740:471:7:-;2798:7;3043:6;3039:47;;-1:-1:-1;3073:1:7;3066:8;;3039:47;3110:5;;;3114:1;3110;:5;:1;3134:5;;;;;:10;3126:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:1;-1:-1:-1;2740:471:7;;;;;:::o;4398:132::-;4456:7;4483:39;4487:1;4490;4483:39;;;;;;;;;;;;;;;;;5104:7;5206:12;5199:5;5191:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5191:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5230:9;5246:1;5242;:5;;;;;;;5018:345;-1:-1:-1;;;;;5018:345:7:o"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"niki_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vestingAmount_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingBegin_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingCliff_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vestingEnd_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"niki\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"}],\"name\":\"setRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingBegin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingCliff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vestingEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/NikiTreasuryVester.sol\":\"NikiTreasuryVester\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/NikiTreasuryVester.sol\":{\"keccak256\":\"0x2fdb77c65892136e1753aab8acff345644836bec977527247dfd776d7aa9b0b2\",\"urls\":[\"bzz-raw://93b50ce19c7d39fed5f376295eadc7b4cff227ee87a950a3eb22e7f60cf15d5a\",\"dweb:/ipfs/QmarUMYks4GWNZH5K3ZvpyjWw4ko6e14vQuHwy8zWSHiF3\"]},\"contracts/SafeMath.sol\":{\"keccak256\":\"0x8bd6fa5b7f9108ac202f2dc30e4e3edfa47fc26be4db598b9d42384177e880c0\",\"urls\":[\"bzz-raw://b5fa027da291fba188ae268e43c1c7a7ef2b55e3ab465f3a8b28c569cc159e5c\",\"dweb:/ipfs/QmdRvqojHRMGGqZ9Ute2gLE62i2s6Hd26XC4Jxi43P4om9\"]}},\"version\":1}",
      "bytecode": "608060405234801561001057600080fd5b50604051610880380380610880833981810160405260c081101561003357600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091428310156100975760405162461bcd60e51b81526004018080602001828103825260398152602001806108476039913960400191505060405180910390fd5b828210156100d65760405162461bcd60e51b81526004018080602001828103825260348152602001806108136034913960400191505060405180910390fd5b8181116101145760405162461bcd60e51b81526004018080602001828103825260328152602001806107e16032913960400191505060405180910390fd5b600080546001600160a01b039788166001600160a01b031991821617909155600180549690971695169490941790945560029190915560038190556004929092556005556006556106778061016a6000396000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fae318fe1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661015d565b005b6100f4610214565b610106610405565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610421565b6100af610427565b6100af61042d565b6100af610433565b610106610439565b60025481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610614602f913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045442101561026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105cb6028913960400191505060405180910390fd5b6000600554421061031e57600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d602081101561031557600080fd5b50519050610354565b61034d60035460055403610341600654420360025461045590919063ffffffff16565b9063ffffffff6104d116565b4260065590505b60008054600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156103d657600080fd5b505af11580156103ea573d6000803e3d6000fd5b505050506040513d602081101561040057600080fd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60065481565b60035481565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600082610464575060006104cb565b8282028284828161047157fe5b04146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806105f36021913960400191505060405180910390fd5b90505b92915050565b60006104c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836105b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105c057fe5b049594505050505056fe456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a265627a7a72315820aa08471db565d3a69534a5ef6dd25bd2506aba9023d3b2243cb2caffef86ebe764736f6c63430005100032456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20656e6420697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20636c69666620697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a2076657374696e6720626567696e20746f6f206561726c79",
      "bin": "608060405234801561001057600080fd5b50604051610880380380610880833981810160405260c081101561003357600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091428310156100975760405162461bcd60e51b81526004018080602001828103825260398152602001806108476039913960400191505060405180910390fd5b828210156100d65760405162461bcd60e51b81526004018080602001828103825260348152602001806108136034913960400191505060405180910390fd5b8181116101145760405162461bcd60e51b81526004018080602001828103825260328152602001806107e16032913960400191505060405180910390fd5b600080546001600160a01b039788166001600160a01b031991821617909155600180549690971695169490941790945560029190915560038190556004929092556005556006556106778061016a6000396000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fae318fe1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661015d565b005b6100f4610214565b610106610405565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610421565b6100af610427565b6100af61042d565b6100af610433565b610106610439565b60025481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610614602f913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045442101561026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105cb6028913960400191505060405180910390fd5b6000600554421061031e57600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d602081101561031557600080fd5b50519050610354565b61034d60035460055403610341600654420360025461045590919063ffffffff16565b9063ffffffff6104d116565b4260065590505b60008054600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156103d657600080fd5b505af11580156103ea573d6000803e3d6000fd5b505050506040513d602081101561040057600080fd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60065481565b60035481565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600082610464575060006104cb565b8282028284828161047157fe5b04146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806105f36021913960400191505060405180910390fd5b90505b92915050565b60006104c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836105b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105c057fe5b049594505050505056fe456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a265627a7a72315820aa08471db565d3a69534a5ef6dd25bd2506aba9023d3b2243cb2caffef86ebe764736f6c63430005100032456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20656e6420697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20636c69666620697320746f6f206561726c79456c69746554726561737572795665737465723a3a636f6e7374727563746f723a2076657374696e6720626567696e20746f6f206561726c79",
      "bin-runtime": "608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fae318fe1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661015d565b005b6100f4610214565b610106610405565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610421565b6100af610427565b6100af61042d565b6100af610433565b610106610439565b60025481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610614602f913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045442101561026f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806105cb6028913960400191505060405180910390fd5b6000600554421061031e57600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d602081101561031557600080fd5b50519050610354565b61034d60035460055403610341600654420360025461045590919063ffffffff16565b9063ffffffff6104d116565b4260065590505b60008054600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156103d657600080fd5b505af11580156103ea573d6000803e3d6000fd5b505050506040513d602081101561040057600080fd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60065481565b60035481565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600082610464575060006104cb565b8282028284828161047157fe5b04146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806105f36021913960400191505060405180910390fd5b90505b92915050565b60006104c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836105b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105c057fe5b049594505050505056fe456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a265627a7a72315820aa08471db565d3a69534a5ef6dd25bd2506aba9023d3b2243cb2caffef86ebe764736f6c63430005100032",
      "srcmap": "56:1738:6:-;;;338:774;8:9:-1;5:2;;;30:1;27;20:12;5:2;338:774:6;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;338:774:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;568:15;551:32;;;543:102;;;;-1:-1:-1;;;543:102:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;664;:30;;656:95;;;;-1:-1:-1;;;656:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;784:13;770:11;:27;762:90;;;;-1:-1:-1;;;762:90:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;:12;;-1:-1:-1;;;;;865:12:6;;;-1:-1:-1;;;;;;865:12:6;;;;;;;;888:22;;;;;;;;;;;;;;;923:13;:30;;;;964:12;:28;;;1003:12;:28;;;;1042:10;:24;1079:10;:25;56:1738;;;;;;",
      "srcmap-runtime": "56:1738:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;56:1738:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:25;;;:::i;:::-;;;;;;;;;;;;;;;;1120:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1120:184:6;;;;:::i;:::-;;1312:479;;;:::i;149:24::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;276:22;;;:::i;307:::-;;;:::i;214:24::-;;;:::i;245:::-;;;:::i;123:19::-;;;:::i;182:25::-;;;;:::o;1120:184::-;1202:9;;;;1188:10;:23;1180:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:9;:22;;;;;;;;;;;;;;;1120:184::o;1312:479::-;1374:12;;1355:15;:31;;1347:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1442:11;1487:10;;1468:15;:29;1464:270;;1529:4;;1523:36;;;;;;1553:4;1523:36;;;;;;1529:4;;;;;1523:21;;:36;;;;;;;;;;;;;;;1529:4;1523:36;;;5:2:-1;;;;30:1;27;20:12;5:2;1523:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1523:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1523:36:6;;-1:-1:-1;1464:270:6;;;1601:78;1666:12;;1653:10;;:25;1601:47;1637:10;;1619:15;:28;1601:13;;:17;;:47;;;;:::i;:::-;:51;:78;:51;:78;:::i;:::-;1707:15;1694:10;:28;1592:87;-1:-1:-1;1464:270:6;1750:4;;;;1765:9;1744:39;;;;;;1750:4;1765:9;;;1744:39;;;;;;;;;;;;1750:4;;;;;1744:20;;:39;;;;;;;;;;;;;;;;;;1750:4;1744:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1744:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1744:39:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;1312:479:6:o;149:24::-;;;;;;:::o;276:22::-;;;;:::o;307:::-;;;;:::o;214:24::-;;;;:::o;245:::-;;;;:::o;123:19::-;;;;;;:::o;2740:471:7:-;2798:7;3043:6;3039:47;;-1:-1:-1;3073:1:7;3066:8;;3039:47;3110:5;;;3114:1;3110;:5;:1;3134:5;;;;;:10;3126:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:1;-1:-1:-1;2740:471:7;;;;;:::o;4398:132::-;4456:7;4483:39;4487:1;4490;4483:39;;;;;;;;;;;;;;;;;5104:7;5206:12;5199:5;5191:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5191:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5230:9;5246:1;5242;:5;;;;;;;5018:345;-1:-1:-1;;;;;5018:345:7:o"
    },
    "contracts/SafeMath.sol:SafeMath": {
      "abi": [],
      "evm": {
        "bytecode": {
          "linkReferences": {},
          "object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158201cd1998041632fdfdc08c7aaabc6e98f52ddbeea3e5b566ae8feda13c7fd8dc264736f6c63430005100032",
          "opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID 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 PUSH6 0x627A7A723158 KECCAK256 SHR 0xD1 SWAP10 DUP1 COINBASE PUSH4 0x2FDFDC08 0xC7 0xAA 0xAB 0xC6 0xE9 DUP16 MSTORE 0xDD 0xBE 0xEA RETURNDATACOPY JUMPDEST JUMP PUSH11 0xE8FEDA13C7FD8DC264736F PUSH13 0x63430005100032000000000000 ",
          "sourceMap": "739:5857:7:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
        },
        "deployedBytecode": {
          "linkReferences": {},
          "object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158201cd1998041632fdfdc08c7aaabc6e98f52ddbeea3e5b566ae8feda13c7fd8dc264736f6c63430005100032",
          "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 SHR 0xD1 SWAP10 DUP1 COINBASE PUSH4 0x2FDFDC08 0xC7 0xAA 0xAB 0xC6 0xE9 DUP16 MSTORE 0xDD 0xBE 0xEA RETURNDATACOPY JUMPDEST JUMP PUSH11 0xE8FEDA13C7FD8DC264736F PUSH13 0x63430005100032000000000000 ",
          "sourceMap": "739:5857:7:-;;;;;;;;"
        }
      },
      "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks.  * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when 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.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/SafeMath.sol\":{\"keccak256\":\"0x8bd6fa5b7f9108ac202f2dc30e4e3edfa47fc26be4db598b9d42384177e880c0\",\"urls\":[\"bzz-raw://b5fa027da291fba188ae268e43c1c7a7ef2b55e3ab465f3a8b28c569cc159e5c\",\"dweb:/ipfs/QmdRvqojHRMGGqZ9Ute2gLE62i2s6Hd26XC4Jxi43P4om9\"]}},\"version\":1}",
      "bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158201cd1998041632fdfdc08c7aaabc6e98f52ddbeea3e5b566ae8feda13c7fd8dc264736f6c63430005100032",
      "bin": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158201cd1998041632fdfdc08c7aaabc6e98f52ddbeea3e5b566ae8feda13c7fd8dc264736f6c63430005100032",
      "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158201cd1998041632fdfdc08c7aaabc6e98f52ddbeea3e5b566ae8feda13c7fd8dc264736f6c63430005100032",
      "srcmap": "739:5857:7:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
      "srcmap-runtime": "739:5857:7:-;;;;;;;;"
    }
  },
  "errors": [
    {
      "component": "general",
      "formattedMessage": "contracts/Niki.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.\npragma experimental ABIEncoderV2;\r\n^-------------------------------^\n",
      "message": "Experimental features are turned on. Do not use experimental features on live deployments.",
      "severity": "warning",
      "sourceLocation": {
        "end": 59,
        "file": "contracts/Niki.sol",
        "start": 26
      },
      "type": "Warning"
    },
    {
      "component": "general",
      "formattedMessage": "contracts/NikiGovernorAlpha.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.\npragma experimental ABIEncoderV2;\r\n^-------------------------------^\n",
      "message": "Experimental features are turned on. Do not use experimental features on live deployments.",
      "severity": "warning",
      "sourceLocation": {
        "end": 59,
        "file": "contracts/NikiGovernorAlpha.sol",
        "start": 26
      },
      "type": "Warning"
    }
  ],
  "sources": {
    "contracts/Niki.sol": {
      "id": 0,
      "AST": {
        "absolutePath": "contracts/Niki.sol",
        "exportedSymbols": {
          "Niki": [
            1273
          ]
        },
        "id": 1274,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 1,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:0"
          },
          {
            "id": 2,
            "literals": [
              "experimental",
              "ABIEncoderV2"
            ],
            "nodeType": "PragmaDirective",
            "src": "26:33:0"
          },
          {
            "absolutePath": "contracts/SafeMath.sol",
            "file": "./SafeMath.sol",
            "id": 3,
            "nodeType": "ImportDirective",
            "scope": 1274,
            "sourceUnit": 3962,
            "src": "63:24:0",
            "symbolAliases": [],
            "unitAlias": ""
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 1273,
            "linearizedBaseContracts": [
              1273
            ],
            "name": "Niki",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "constant": true,
                "id": 6,
                "name": "name",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "162:41:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_memory",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "162:6:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "4e696b692053776170",
                  "id": 5,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "192:11:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_e6c22f4f658cc898c94575fae454bd0639a34409923a47d9b2bfab0f349c8213",
                    "typeString": "literal_string \"Niki Swap\""
                  },
                  "value": "Niki Swap"
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 9,
                "name": "symbol",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "264:38:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_memory",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 7,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "264:6:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "4e494b49",
                  "id": 8,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "296:6:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_5ccf7ddb8eb05749a8e096625ba60ec223957e73a98cb7fb31a7f793a7d43b90",
                    "typeString": "literal_string \"NIKI\""
                  },
                  "value": "NIKI"
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 12,
                "name": "decimals",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "365:35:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 10,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "365:5:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "3138",
                  "id": 11,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "398:2:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_18_by_1",
                    "typeString": "int_const 18"
                  },
                  "value": "18"
                },
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 15,
                "name": "totalSupply",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "464:36:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 13,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "464:4:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "3130305f303030653138",
                  "id": 14,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "490:10:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_100000000000000000000000_by_1",
                    "typeString": "int_const 100000000000000000000000"
                  },
                  "value": "100_000e18"
                },
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 17,
                "name": "minter",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "580:21:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 16,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "580:7:0",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 19,
                "name": "mintingAllowedAfter",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "671:31:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 18,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "671:4:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 24,
                "name": "minimumTimeBetweenMints",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "755:61:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 20,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "755:6:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "commonType": {
                    "typeIdentifier": "t_rational_31536000_by_1",
                    "typeString": "int_const 31536000"
                  },
                  "id": 23,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "leftExpression": {
                    "argumentTypes": null,
                    "hexValue": "31",
                    "id": 21,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "804:6:0",
                    "subdenomination": "days",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_86400_by_1",
                      "typeString": "int_const 86400"
                    },
                    "value": "1"
                  },
                  "nodeType": "BinaryOperation",
                  "operator": "*",
                  "rightExpression": {
                    "argumentTypes": null,
                    "hexValue": "333635",
                    "id": 22,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "813:3:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_365_by_1",
                      "typeString": "int_const 365"
                    },
                    "value": "365"
                  },
                  "src": "804:12:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_31536000_by_1",
                    "typeString": "int_const 31536000"
                  }
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 27,
                "name": "mintCap",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "911:33:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 25,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "911:5:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "32",
                  "id": 26,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "943:1:0",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_2_by_1",
                    "typeString": "int_const 2"
                  },
                  "value": "2"
                },
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 33,
                "name": "allowances",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1008:68:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                  "typeString": "mapping(address => mapping(address => uint96))"
                },
                "typeName": {
                  "id": 32,
                  "keyType": {
                    "id": 28,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1017:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1008:48:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                    "typeString": "mapping(address => mapping(address => uint96))"
                  },
                  "valueType": {
                    "id": 31,
                    "keyType": {
                      "id": 29,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1037:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Mapping",
                    "src": "1028:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                      "typeString": "mapping(address => uint96)"
                    },
                    "valueType": {
                      "id": 30,
                      "name": "uint96",
                      "nodeType": "ElementaryTypeName",
                      "src": "1048:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      }
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 37,
                "name": "balances",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1153:45:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                  "typeString": "mapping(address => uint96)"
                },
                "typeName": {
                  "id": 36,
                  "keyType": {
                    "id": 34,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1162:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1153:27:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                    "typeString": "mapping(address => uint96)"
                  },
                  "valueType": {
                    "id": 35,
                    "name": "uint96",
                    "nodeType": "ElementaryTypeName",
                    "src": "1173:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 41,
                "name": "delegates",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1259:45:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                  "typeString": "mapping(address => address)"
                },
                "typeName": {
                  "id": 40,
                  "keyType": {
                    "id": 38,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1268:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1259:28:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                    "typeString": "mapping(address => address)"
                  },
                  "valueType": {
                    "id": 39,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1279:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "canonicalName": "Niki.Checkpoint",
                "id": 46,
                "members": [
                  {
                    "constant": false,
                    "id": 43,
                    "name": "fromBlock",
                    "nodeType": "VariableDeclaration",
                    "scope": 46,
                    "src": "1419:16:0",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "typeName": {
                      "id": 42,
                      "name": "uint32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1419:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 45,
                    "name": "votes",
                    "nodeType": "VariableDeclaration",
                    "scope": 46,
                    "src": "1446:12:0",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    },
                    "typeName": {
                      "id": 44,
                      "name": "uint96",
                      "nodeType": "ElementaryTypeName",
                      "src": "1446:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "name": "Checkpoint",
                "nodeType": "StructDefinition",
                "scope": 1273,
                "src": "1390:76:0",
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 52,
                "name": "checkpoints",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1548:70:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                  "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint))"
                },
                "typeName": {
                  "id": 51,
                  "keyType": {
                    "id": 47,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1557:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1548:51:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                    "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint))"
                  },
                  "valueType": {
                    "id": 50,
                    "keyType": {
                      "id": 48,
                      "name": "uint32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1577:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Mapping",
                    "src": "1568:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                      "typeString": "mapping(uint32 => struct Niki.Checkpoint)"
                    },
                    "valueType": {
                      "contractScope": null,
                      "id": 49,
                      "name": "Checkpoint",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 46,
                      "src": "1587:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Checkpoint_$46_storage_ptr",
                        "typeString": "struct Niki.Checkpoint"
                      }
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 56,
                "name": "numCheckpoints",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1687:49:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                  "typeString": "mapping(address => uint32)"
                },
                "typeName": {
                  "id": 55,
                  "keyType": {
                    "id": 53,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1696:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1687:27:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                    "typeString": "mapping(address => uint32)"
                  },
                  "valueType": {
                    "id": 54,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 61,
                "name": "DOMAIN_TYPEHASH",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "1809:122:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 57,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1809:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
                      "id": 59,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1861:69:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866",
                        "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""
                      },
                      "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866",
                        "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""
                      }
                    ],
                    "id": 58,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3970,
                    "src": "1851:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                      "typeString": "function (bytes memory) pure returns (bytes32)"
                    }
                  },
                  "id": 60,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "1851:80:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 66,
                "name": "DELEGATION_TYPEHASH",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "2025:117:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 62,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2025:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929",
                      "id": 64,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2081:60:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf",
                        "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""
                      },
                      "value": "Delegation(address delegatee,uint256 nonce,uint256 expiry)"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf",
                        "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""
                      }
                    ],
                    "id": 63,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3970,
                    "src": "2071:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                      "typeString": "function (bytes memory) pure returns (bytes32)"
                    }
                  },
                  "id": 65,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "2071:71:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 71,
                "name": "PERMIT_TYPEHASH",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "2232:137:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 67,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2232:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529",
                      "id": 69,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2284:84:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9",
                        "typeString": "literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""
                      },
                      "value": "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9",
                        "typeString": "literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""
                      }
                    ],
                    "id": 68,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3970,
                    "src": "2274:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                      "typeString": "function (bytes memory) pure returns (bytes32)"
                    }
                  },
                  "id": 70,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "2274:95:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 75,
                "name": "nonces",
                "nodeType": "VariableDeclaration",
                "scope": 1273,
                "src": "2450:39:0",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 74,
                  "keyType": {
                    "id": 72,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2459:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "2450:25:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 73,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2470:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event thats emitted when the minter address is changed",
                "id": 81,
                "name": "MinterChanged",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 80,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 77,
                      "indexed": false,
                      "name": "minter",
                      "nodeType": "VariableDeclaration",
                      "scope": 81,
                      "src": "2593:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 76,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2593:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 79,
                      "indexed": false,
                      "name": "newMinter",
                      "nodeType": "VariableDeclaration",
                      "scope": 81,
                      "src": "2609:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 78,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2609:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2592:35:0"
                },
                "src": "2573:55:0"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event thats emitted when an account changes its delegate",
                "id": 89,
                "name": "DelegateChanged",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 88,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 83,
                      "indexed": true,
                      "name": "delegator",
                      "nodeType": "VariableDeclaration",
                      "scope": 89,
                      "src": "2735:25:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 82,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2735:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 85,
                      "indexed": true,
                      "name": "fromDelegate",
                      "nodeType": "VariableDeclaration",
                      "scope": 89,
                      "src": "2762:28:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 84,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2762:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 87,
                      "indexed": true,
                      "name": "toDelegate",
                      "nodeType": "VariableDeclaration",
                      "scope": 89,
                      "src": "2792:26:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 86,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2792:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2734:85:0"
                },
                "src": "2713:107:0"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event thats emitted when a delegate account's vote balance changes",
                "id": 97,
                "name": "DelegateVotesChanged",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 96,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 91,
                      "indexed": true,
                      "name": "delegate",
                      "nodeType": "VariableDeclaration",
                      "scope": 97,
                      "src": "2942:24:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 90,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2942:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 93,
                      "indexed": false,
                      "name": "previousBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 97,
                      "src": "2968:20:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 92,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2968:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 95,
                      "indexed": false,
                      "name": "newBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 97,
                      "src": "2990:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 94,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2990:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2941:65:0"
                },
                "src": "2915:92:0"
              },
              {
                "anonymous": false,
                "documentation": "@notice The standard EIP-20 transfer event",
                "id": 105,
                "name": "Transfer",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 104,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 99,
                      "indexed": true,
                      "name": "from",
                      "nodeType": "VariableDeclaration",
                      "scope": 105,
                      "src": "3082:20:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 98,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3082:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 101,
                      "indexed": true,
                      "name": "to",
                      "nodeType": "VariableDeclaration",
                      "scope": 105,
                      "src": "3104:18:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 100,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3104:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 103,
                      "indexed": false,
                      "name": "amount",
                      "nodeType": "VariableDeclaration",
                      "scope": 105,
                      "src": "3124:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 102,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3124:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3081:58:0"
                },
                "src": "3067:73:0"
              },
              {
                "anonymous": false,
                "documentation": "@notice The standard EIP-20 approval event",
                "id": 113,
                "name": "Approval",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 112,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 107,
                      "indexed": true,
                      "name": "owner",
                      "nodeType": "VariableDeclaration",
                      "scope": 113,
                      "src": "3215:21:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 106,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3215:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 109,
                      "indexed": true,
                      "name": "spender",
                      "nodeType": "VariableDeclaration",
                      "scope": 113,
                      "src": "3238:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 108,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3238:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 111,
                      "indexed": false,
                      "name": "amount",
                      "nodeType": "VariableDeclaration",
                      "scope": 113,
                      "src": "3263:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 110,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3263:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3214:64:0"
                },
                "src": "3200:79:0"
              },
              {
                "body": {
                  "id": 161,
                  "nodeType": "Block",
                  "src": "3631:368:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 123,
                              "name": "mintingAllowedAfter_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 119,
                              "src": "3650:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 124,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "3674:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 125,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3674:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3650:39:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a636f6e7374727563746f723a206d696e74696e672063616e206f6e6c7920626567696e206166746572206465706c6f796d656e74",
                            "id": 127,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3691:60:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_53214926ade2cd1ca9772c2964bdf03a7b7347901a443f5791819795ea3a39b5",
                              "typeString": "literal_string \"Niki::constructor: minting can only begin after deployment\""
                            },
                            "value": "Niki::constructor: minting can only begin after deployment"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_53214926ade2cd1ca9772c2964bdf03a7b7347901a443f5791819795ea3a39b5",
                              "typeString": "literal_string \"Niki::constructor: minting can only begin after deployment\""
                            }
                          ],
                          "id": 122,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3642:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3642:110:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 129,
                      "nodeType": "ExpressionStatement",
                      "src": "3642:110:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 130,
                            "name": "balances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37,
                            "src": "3765:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 132,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 131,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 115,
                            "src": "3774:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "3765:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 134,
                              "name": "totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "3792:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3785:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint96_$",
                              "typeString": "type(uint96)"
                            },
                            "typeName": "uint96"
                          },
                          "id": 135,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3785:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "3765:39:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 137,
                      "nodeType": "ExpressionStatement",
                      "src": "3765:39:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 140,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3837:1:0",
                                "subdenomination": null,
                                "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": 139,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3829:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 141,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3829:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 142,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 115,
                            "src": "3841:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 143,
                            "name": "totalSupply",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "3850:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 138,
                          "name": "Transfer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 105,
                          "src": "3820:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                            "typeString": "function (address,address,uint256)"
                          }
                        },
                        "id": 144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3820:42:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 145,
                      "nodeType": "EmitStatement",
                      "src": "3815:47:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 148,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 146,
                          "name": "minter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "3873:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 147,
                          "name": "minter_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 117,
                          "src": "3882:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3873:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 149,
                      "nodeType": "ExpressionStatement",
                      "src": "3873:16:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 152,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3927:1:0",
                                "subdenomination": null,
                                "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": 151,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3919:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 153,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3919:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 154,
                            "name": "minter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17,
                            "src": "3931:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 150,
                          "name": "MinterChanged",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 81,
                          "src": "3905:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                            "typeString": "function (address,address)"
                          }
                        },
                        "id": 155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3905:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 156,
                      "nodeType": "EmitStatement",
                      "src": "3900:38:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 157,
                          "name": "mintingAllowedAfter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19,
                          "src": "3949:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 158,
                          "name": "mintingAllowedAfter_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 119,
                          "src": "3971:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3949:42:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 160,
                      "nodeType": "ExpressionStatement",
                      "src": "3949:42:0"
                    }
                  ]
                },
                "documentation": "@notice Construct a new Niki token\n@param account The initial account to grant all the tokens\n@param minter_ The account with minting ability\n@param mintingAllowedAfter_ The timestamp after which minting may occur",
                "id": 162,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 120,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 115,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 162,
                      "src": "3563:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 114,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3563:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 117,
                      "name": "minter_",
                      "nodeType": "VariableDeclaration",
                      "scope": 162,
                      "src": "3580:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 116,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3580:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 119,
                      "name": "mintingAllowedAfter_",
                      "nodeType": "VariableDeclaration",
                      "scope": 162,
                      "src": "3597:25:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 118,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3597:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3562:61:0"
                },
                "returnParameters": {
                  "id": 121,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "3631:0:0"
                },
                "scope": 1273,
                "src": "3551:448:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 184,
                  "nodeType": "Block",
                  "src": "4165:187:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 171,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 168,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "4184:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 169,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4184:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 170,
                              "name": "minter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17,
                              "src": "4198:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "4184:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a7365744d696e7465723a206f6e6c7920746865206d696e7465722063616e206368616e676520746865206d696e7465722061646472657373",
                            "id": 172,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4206:64:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_ef8df2c09198eff0afe9226a26bd0d919740f3a3e00f6867b94750bf0b8de718",
                              "typeString": "literal_string \"Niki::setMinter: only the minter can change the minter address\""
                            },
                            "value": "Niki::setMinter: only the minter can change the minter address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_ef8df2c09198eff0afe9226a26bd0d919740f3a3e00f6867b94750bf0b8de718",
                              "typeString": "literal_string \"Niki::setMinter: only the minter can change the minter address\""
                            }
                          ],
                          "id": 167,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "4176:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4176:95:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 174,
                      "nodeType": "ExpressionStatement",
                      "src": "4176:95:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 176,
                            "name": "minter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17,
                            "src": "4301:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 177,
                            "name": "minter_",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 164,
                            "src": "4309:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 175,
                          "name": "MinterChanged",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 81,
                          "src": "4287:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                            "typeString": "function (address,address)"
                          }
                        },
                        "id": 178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4287:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 179,
                      "nodeType": "EmitStatement",
                      "src": "4282:35:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 180,
                          "name": "minter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17,
                          "src": "4328:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 181,
                          "name": "minter_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 164,
                          "src": "4337:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4328:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 183,
                      "nodeType": "ExpressionStatement",
                      "src": "4328:16:0"
                    }
                  ]
                },
                "documentation": "@notice Change the minter address\n@param minter_ The address of the new minter",
                "id": 185,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setMinter",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 165,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 164,
                      "name": "minter_",
                      "nodeType": "VariableDeclaration",
                      "scope": 185,
                      "src": "4139:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 163,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4139:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4138:17:0"
                },
                "returnParameters": {
                  "id": 166,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "4165:0:0"
                },
                "scope": 1273,
                "src": "4120:232:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 289,
                  "nodeType": "Block",
                  "src": "4579:1013:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 196,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 193,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "4598:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 194,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4598:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 195,
                              "name": "minter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17,
                              "src": "4612:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "4598:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e206d696e74",
                            "id": 197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4620:38:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_fe45ea1b7078188cbea67c71bea25ef3c8c5bf2d5b5f18fafbec78c1bf2cea3e",
                              "typeString": "literal_string \"Niki::mint: only the minter can mint\""
                            },
                            "value": "Niki::mint: only the minter can mint"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_fe45ea1b7078188cbea67c71bea25ef3c8c5bf2d5b5f18fafbec78c1bf2cea3e",
                              "typeString": "literal_string \"Niki::mint: only the minter can mint\""
                            }
                          ],
                          "id": 192,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "4590:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 198,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4590:69:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 199,
                      "nodeType": "ExpressionStatement",
                      "src": "4590:69:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 204,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 201,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "4678:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 202,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4678:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 203,
                              "name": "mintingAllowedAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19,
                              "src": "4697:19:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4678:38:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f77656420796574",
                            "id": 205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4718:37:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c1f63d121f23f18939d60c37d9297abb467c3427dadad247f237032e80c0d390",
                              "typeString": "literal_string \"Niki::mint: minting not allowed yet\""
                            },
                            "value": "Niki::mint: minting not allowed yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c1f63d121f23f18939d60c37d9297abb467c3427dadad247f237032e80c0d390",
                              "typeString": "literal_string \"Niki::mint: minting not allowed yet\""
                            }
                          ],
                          "id": 200,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "4670:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4670:86:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 207,
                      "nodeType": "ExpressionStatement",
                      "src": "4670:86:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 213,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 209,
                              "name": "dst",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 187,
                              "src": "4775:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 211,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4790:1:0",
                                  "subdenomination": null,
                                  "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": 210,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4782:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4782:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "4775:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6d696e743a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373",
                            "id": 214,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4794:49:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_2cb32e17fa5d6960bdec7e5e29b7b3926d66c45d5ecd23878fb8818e5740c9fb",
                              "typeString": "literal_string \"Niki::mint: cannot transfer to the zero address\""
                            },
                            "value": "Niki::mint: cannot transfer to the zero address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_2cb32e17fa5d6960bdec7e5e29b7b3926d66c45d5ecd23878fb8818e5740c9fb",
                              "typeString": "literal_string \"Niki::mint: cannot transfer to the zero address\""
                            }
                          ],
                          "id": 208,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "4767:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4767:77:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 216,
                      "nodeType": "ExpressionStatement",
                      "src": "4767:77:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 217,
                          "name": "mintingAllowedAfter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19,
                          "src": "4885:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 220,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "4920:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 221,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4920:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 222,
                              "name": "minimumTimeBetweenMints",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24,
                              "src": "4937:23:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 218,
                              "name": "SafeMath",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3961,
                              "src": "4907:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_SafeMath_$3961_$",
                                "typeString": "type(library SafeMath)"
                              }
                            },
                            "id": 219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3738,
                            "src": "4907:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4907:54:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4885:76:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 225,
                      "nodeType": "ExpressionStatement",
                      "src": "4885:76:0"
                    },
                    {
                      "assignments": [
                        227
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 227,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 289,
                          "src": "5002:13:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 226,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "5002:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 232,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 229,
                            "name": "rawAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 189,
                            "src": "5025:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6d696e743a20616d6f756e7420657863656564732039362062697473",
                            "id": 230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5036:36:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_d9f5c5b4676f17a9a43b12a32dad279be161a757d84a4983cb8bf5cc9a6a9813",
                              "typeString": "literal_string \"Niki::mint: amount exceeds 96 bits\""
                            },
                            "value": "Niki::mint: amount exceeds 96 bits"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_d9f5c5b4676f17a9a43b12a32dad279be161a757d84a4983cb8bf5cc9a6a9813",
                              "typeString": "literal_string \"Niki::mint: amount exceeds 96 bits\""
                            }
                          ],
                          "id": 228,
                          "name": "safe96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1210,
                          "src": "5018:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                            "typeString": "function (uint256,string memory) pure returns (uint96)"
                          }
                        },
                        "id": 231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5018:55:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "5002:71:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 244,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 234,
                              "name": "amount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 227,
                              "src": "5092:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 239,
                                      "name": "totalSupply",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 15,
                                      "src": "5128:11:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 240,
                                      "name": "mintCap",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27,
                                      "src": "5141:7:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 237,
                                      "name": "SafeMath",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3961,
                                      "src": "5115:8:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_SafeMath_$3961_$",
                                        "typeString": "type(library SafeMath)"
                                      }
                                    },
                                    "id": 238,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "mul",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3842,
                                    "src": "5115:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 241,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5115:34:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "313030",
                                  "id": 242,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5151:3:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_100_by_1",
                                    "typeString": "int_const 100"
                                  },
                                  "value": "100"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_100_by_1",
                                    "typeString": "int_const 100"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 235,
                                  "name": "SafeMath",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3961,
                                  "src": "5102:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_SafeMath_$3961_$",
                                    "typeString": "type(library SafeMath)"
                                  }
                                },
                                "id": 236,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "div",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3894,
                                "src": "5102:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 243,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5102:53:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5092:63:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6d696e743a206578636565646564206d696e7420636170",
                            "id": 245,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5157:31:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c1a76f11a4afdf73c06d4f3163f48a4ac1649f095ca34b7f5c08ccc7c81d0c62",
                              "typeString": "literal_string \"Niki::mint: exceeded mint cap\""
                            },
                            "value": "Niki::mint: exceeded mint cap"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c1a76f11a4afdf73c06d4f3163f48a4ac1649f095ca34b7f5c08ccc7c81d0c62",
                              "typeString": "literal_string \"Niki::mint: exceeded mint cap\""
                            }
                          ],
                          "id": 233,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5084:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 246,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5084:105:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 247,
                      "nodeType": "ExpressionStatement",
                      "src": "5084:105:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 248,
                          "name": "totalSupply",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15,
                          "src": "5200:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 252,
                                  "name": "totalSupply",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 15,
                                  "src": "5234:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 253,
                                  "name": "amount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 227,
                                  "src": "5247:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 250,
                                  "name": "SafeMath",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3961,
                                  "src": "5221:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_SafeMath_$3961_$",
                                    "typeString": "type(library SafeMath)"
                                  }
                                },
                                "id": 251,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3738,
                                "src": "5221:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 254,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5221:33:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e696b693a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473",
                              "id": 255,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5256:41:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_16c963063e20ec512e11c988b417100cc7a543d7a31901c5e638e69aa52730f0",
                                "typeString": "literal_string \"Niki::mint: totalSupply exceeds 96 bits\""
                              },
                              "value": "Niki::mint: totalSupply exceeds 96 bits"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_16c963063e20ec512e11c988b417100cc7a543d7a31901c5e638e69aa52730f0",
                                "typeString": "literal_string \"Niki::mint: totalSupply exceeds 96 bits\""
                              }
                            ],
                            "id": 249,
                            "name": "safe96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1210,
                            "src": "5214:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                              "typeString": "function (uint256,string memory) pure returns (uint96)"
                            }
                          },
                          "id": 256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5214:84:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "5200:98:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 258,
                      "nodeType": "ExpressionStatement",
                      "src": "5200:98:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 259,
                            "name": "balances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37,
                            "src": "5360:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 261,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 260,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 187,
                            "src": "5369:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "5360:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 263,
                                "name": "balances",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37,
                                "src": "5382:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                                  "typeString": "mapping(address => uint96)"
                                }
                              },
                              "id": 265,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 264,
                                "name": "dst",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 187,
                                "src": "5391:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5382:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 266,
                              "name": "amount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 227,
                              "src": "5397:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e696b693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773",
                              "id": 267,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5405:39:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_977422514b9a32f891187ac3501f32abe745aedf08a25b889a0b210f802ef30d",
                                "typeString": "literal_string \"Niki::mint: transfer amount overflows\""
                              },
                              "value": "Niki::mint: transfer amount overflows"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_977422514b9a32f891187ac3501f32abe745aedf08a25b889a0b210f802ef30d",
                                "typeString": "literal_string \"Niki::mint: transfer amount overflows\""
                              }
                            ],
                            "id": 262,
                            "name": "add96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1237,
                            "src": "5376:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                              "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                            }
                          },
                          "id": 268,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5376:69:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "5360:85:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 270,
                      "nodeType": "ExpressionStatement",
                      "src": "5360:85:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 273,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5478:1:0",
                                "subdenomination": null,
                                "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": 272,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5470:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5470:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 275,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 187,
                            "src": "5482:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 276,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 227,
                            "src": "5487:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 271,
                          "name": "Transfer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 105,
                          "src": "5461:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                            "typeString": "function (address,address,uint256)"
                          }
                        },
                        "id": 277,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5461:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 278,
                      "nodeType": "EmitStatement",
                      "src": "5456:38:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 281,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5557:1:0",
                                "subdenomination": null,
                                "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": 280,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5549:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 282,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5549:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 283,
                              "name": "delegates",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41,
                              "src": "5561:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                "typeString": "mapping(address => address)"
                              }
                            },
                            "id": 285,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 284,
                              "name": "dst",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 187,
                              "src": "5571:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5561:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 286,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 227,
                            "src": "5577:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 279,
                          "name": "_moveDelegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1091,
                          "src": "5534:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$",
                            "typeString": "function (address,address,uint96)"
                          }
                        },
                        "id": 287,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5534:50:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 288,
                      "nodeType": "ExpressionStatement",
                      "src": "5534:50:0"
                    }
                  ]
                },
                "documentation": "@notice Mint new tokens\n@param dst The address of the destination account\n@param rawAmount The number of tokens to be minted",
                "id": 290,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "mint",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 190,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 187,
                      "name": "dst",
                      "nodeType": "VariableDeclaration",
                      "scope": 290,
                      "src": "4541:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 186,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4541:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 189,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 290,
                      "src": "4554:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 188,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4554:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4540:29:0"
                },
                "returnParameters": {
                  "id": 191,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "4579:0:0"
                },
                "scope": 1273,
                "src": "4527:1065:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 305,
                  "nodeType": "Block",
                  "src": "5978:54:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 299,
                            "name": "allowances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "5996:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                              "typeString": "mapping(address => mapping(address => uint96))"
                            }
                          },
                          "id": 301,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 300,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 292,
                            "src": "6007:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5996:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                            "typeString": "mapping(address => uint96)"
                          }
                        },
                        "id": 303,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 302,
                          "name": "spender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 294,
                          "src": "6016:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5996:28:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 298,
                      "id": 304,
                      "nodeType": "Return",
                      "src": "5989:35:0"
                    }
                  ]
                },
                "documentation": "@notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n@param account The address of the account holding the funds\n@param spender The address of the account spending the funds\n@return The number of tokens approved",
                "id": 306,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "allowance",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 295,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 292,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 306,
                      "src": "5915:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 291,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5915:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 294,
                      "name": "spender",
                      "nodeType": "VariableDeclaration",
                      "scope": 306,
                      "src": "5932:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 293,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5932:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5914:34:0"
                },
                "returnParameters": {
                  "id": 298,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 297,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 306,
                      "src": "5972:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 296,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5972:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5971:6:0"
                },
                "scope": 1273,
                "src": "5896:136:0",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 359,
                  "nodeType": "Block",
                  "src": "6584:345:0",
                  "statements": [
                    {
                      "assignments": [
                        316
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 316,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 359,
                          "src": "6595:13:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 315,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "6595:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 317,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "6595:13:0"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 318,
                          "name": "rawAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 310,
                          "src": "6623:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "6641:2:0",
                              "subExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 320,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6642:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_minus_1_by_1",
                                "typeString": "int_const -1"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_minus_1_by_1",
                                "typeString": "int_const -1"
                              }
                            ],
                            "id": 319,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6636:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint"
                          },
                          "id": 322,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6636:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6623:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 339,
                        "nodeType": "Block",
                        "src": "6698:94:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 337,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 332,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 316,
                                "src": "6713:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 334,
                                    "name": "rawAmount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 310,
                                    "src": "6729:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "4e696b693a3a617070726f76653a20616d6f756e7420657863656564732039362062697473",
                                    "id": 335,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6740:39:0",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_25156c082101f6126ff5be171579fd5d429d079247dc029339c261140e3e679a",
                                      "typeString": "literal_string \"Niki::approve: amount exceeds 96 bits\""
                                    },
                                    "value": "Niki::approve: amount exceeds 96 bits"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_25156c082101f6126ff5be171579fd5d429d079247dc029339c261140e3e679a",
                                      "typeString": "literal_string \"Niki::approve: amount exceeds 96 bits\""
                                    }
                                  ],
                                  "id": 333,
                                  "name": "safe96",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1210,
                                  "src": "6722:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                                    "typeString": "function (uint256,string memory) pure returns (uint96)"
                                  }
                                },
                                "id": 336,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6722:58:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "6713:67:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 338,
                            "nodeType": "ExpressionStatement",
                            "src": "6713:67:0"
                          }
                        ]
                      },
                      "id": 340,
                      "nodeType": "IfStatement",
                      "src": "6619:173:0",
                      "trueBody": {
                        "id": 331,
                        "nodeType": "Block",
                        "src": "6646:46:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 329,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 324,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 316,
                                "src": "6661:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 327,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "-",
                                    "prefix": true,
                                    "src": "6677:2:0",
                                    "subExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 326,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6678:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_minus_1_by_1",
                                      "typeString": "int_const -1"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_minus_1_by_1",
                                      "typeString": "int_const -1"
                                    }
                                  ],
                                  "id": 325,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6670:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint96_$",
                                    "typeString": "type(uint96)"
                                  },
                                  "typeName": "uint96"
                                },
                                "id": 328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6670:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "6661:19:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 330,
                            "nodeType": "ExpressionStatement",
                            "src": "6661:19:0"
                          }
                        ]
                      }
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 341,
                              "name": "allowances",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 33,
                              "src": "6804:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                                "typeString": "mapping(address => mapping(address => uint96))"
                              }
                            },
                            "id": 345,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 342,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "6815:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 343,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6815:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6804:22:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 346,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 344,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 308,
                            "src": "6827:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "6804:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 347,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 316,
                          "src": "6838:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "6804:40:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 349,
                      "nodeType": "ExpressionStatement",
                      "src": "6804:40:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 351,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "6871:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 352,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6871:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 353,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 308,
                            "src": "6883:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 354,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 316,
                            "src": "6892:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 350,
                          "name": "Approval",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 113,
                          "src": "6862:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                            "typeString": "function (address,address,uint256)"
                          }
                        },
                        "id": 355,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6862:37:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 356,
                      "nodeType": "EmitStatement",
                      "src": "6857:42:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 357,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6917:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      "functionReturnParameters": 314,
                      "id": 358,
                      "nodeType": "Return",
                      "src": "6910:11:0"
                    }
                  ]
                },
                "documentation": "@notice Approve `spender` to transfer up to `amount` from `src`\n@dev This will overwrite the approval amount for `spender`\n and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n@param spender The address of the account which may transfer tokens\n@param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n@return Whether or not the approval succeeded",
                "id": 360,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "approve",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 311,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 308,
                      "name": "spender",
                      "nodeType": "VariableDeclaration",
                      "scope": 360,
                      "src": "6527:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 307,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "6527:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 310,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 360,
                      "src": "6544:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 309,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6544:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "6526:33:0"
                },
                "returnParameters": {
                  "id": 314,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 313,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 360,
                      "src": "6578:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 312,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "6578:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "6577:6:0"
                },
                "scope": 1273,
                "src": "6510:419:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 496,
                  "nodeType": "Block",
                  "src": "7538:935:0",
                  "statements": [
                    {
                      "assignments": [
                        378
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 378,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 496,
                          "src": "7549:13:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 377,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "7549:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 379,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "7549:13:0"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 380,
                          "name": "rawAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 366,
                          "src": "7577:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 383,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "7595:2:0",
                              "subExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 382,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7596:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_minus_1_by_1",
                                "typeString": "int_const -1"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_minus_1_by_1",
                                "typeString": "int_const -1"
                              }
                            ],
                            "id": 381,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "7590:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint"
                          },
                          "id": 384,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7590:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7577:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 401,
                        "nodeType": "Block",
                        "src": "7652:93:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 399,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 394,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 378,
                                "src": "7667:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 396,
                                    "name": "rawAmount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 366,
                                    "src": "7683:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "4e696b693a3a7065726d69743a20616d6f756e7420657863656564732039362062697473",
                                    "id": 397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7694:38:0",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_7fa9457d239f92b46e159bf129536c97b028673a6fee1a82377a18f216847e20",
                                      "typeString": "literal_string \"Niki::permit: amount exceeds 96 bits\""
                                    },
                                    "value": "Niki::permit: amount exceeds 96 bits"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_stringliteral_7fa9457d239f92b46e159bf129536c97b028673a6fee1a82377a18f216847e20",
                                      "typeString": "literal_string \"Niki::permit: amount exceeds 96 bits\""
                                    }
                                  ],
                                  "id": 395,
                                  "name": "safe96",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1210,
                                  "src": "7676:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                                    "typeString": "function (uint256,string memory) pure returns (uint96)"
                                  }
                                },
                                "id": 398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7676:57:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "7667:66:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 400,
                            "nodeType": "ExpressionStatement",
                            "src": "7667:66:0"
                          }
                        ]
                      },
                      "id": 402,
                      "nodeType": "IfStatement",
                      "src": "7573:172:0",
                      "trueBody": {
                        "id": 393,
                        "nodeType": "Block",
                        "src": "7600:46:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 386,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 378,
                                "src": "7615:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 389,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "-",
                                    "prefix": true,
                                    "src": "7631:2:0",
                                    "subExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 388,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "7632:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_minus_1_by_1",
                                      "typeString": "int_const -1"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_minus_1_by_1",
                                      "typeString": "int_const -1"
                                    }
                                  ],
                                  "id": 387,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "7624:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint96_$",
                                    "typeString": "type(uint96)"
                                  },
                                  "typeName": "uint96"
                                },
                                "id": 390,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7624:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "7615:19:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 392,
                            "nodeType": "ExpressionStatement",
                            "src": "7615:19:0"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        404
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 404,
                          "name": "domainSeparator",
                          "nodeType": "VariableDeclaration",
                          "scope": 496,
                          "src": "7757:23:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 403,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7757:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 421,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 408,
                                "name": "DOMAIN_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 61,
                                "src": "7804:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 411,
                                        "name": "name",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6,
                                        "src": "7837:4:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 410,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7831:5:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": "bytes"
                                    },
                                    "id": 412,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7831:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 409,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3970,
                                  "src": "7821:9:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 413,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7821:22:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 414,
                                  "name": "getChainId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1272,
                                  "src": "7845:10:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                    "typeString": "function () pure returns (uint256)"
                                  }
                                },
                                "id": 415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7845:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 417,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3992,
                                    "src": "7867:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Niki_$1273",
                                      "typeString": "contract Niki"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Niki_$1273",
                                      "typeString": "contract Niki"
                                    }
                                  ],
                                  "id": 416,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "7859:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 418,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7859:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 406,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "7793:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 407,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7793:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 419,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7793:80:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 405,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "7783:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 420,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7783:91:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "7757:117:0"
                    },
                    {
                      "assignments": [
                        423
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 423,
                          "name": "structHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 496,
                          "src": "7885:18:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 422,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7885:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 438,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 427,
                                "name": "PERMIT_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 71,
                                "src": "7927:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 428,
                                "name": "owner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 362,
                                "src": "7944:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 429,
                                "name": "spender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 364,
                                "src": "7951:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 430,
                                "name": "rawAmount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 366,
                                "src": "7960:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 434,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "7971:15:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 431,
                                    "name": "nonces",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 75,
                                    "src": "7971:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 433,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 432,
                                    "name": "owner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 362,
                                    "src": "7978:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "7971:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 435,
                                "name": "deadline",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 368,
                                "src": "7988:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 425,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "7916:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 426,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7916:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 436,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7916:81:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 424,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "7906:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7906:92:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "7885:113:0"
                    },
                    {
                      "assignments": [
                        440
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 440,
                          "name": "digest",
                          "nodeType": "VariableDeclaration",
                          "scope": 496,
                          "src": "8009:14:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 439,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8009:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 449,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "1901",
                                "id": 444,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8053:10:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                "value": "\u0019\u0001"
                              },
                              {
                                "argumentTypes": null,
                                "id": 445,
                                "name": "domainSeparator",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 404,
                                "src": "8065:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 446,
                                "name": "structHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 423,
                                "src": "8082:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 442,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "8036:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 443,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8036:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8036:57:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 441,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "8026:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 448,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8026:68:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8009:85:0"
                    },
                    {
                      "assignments": [
                        451
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 451,
                          "name": "signatory",
                          "nodeType": "VariableDeclaration",
                          "scope": 496,
                          "src": "8105:17:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "typeName": {
                            "id": 450,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "8105:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 458,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 453,
                            "name": "digest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 440,
                            "src": "8135:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 454,
                            "name": "v",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 370,
                            "src": "8143:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 455,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 372,
                            "src": "8146:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 456,
                            "name": "s",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 374,
                            "src": "8149:1:0",
                            "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": 452,
                          "name": "ecrecover",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3968,
                          "src": "8125:9:0",
                          "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": 457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8125:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8105:46:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 464,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 460,
                              "name": "signatory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 451,
                              "src": "8170:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 462,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8191:1:0",
                                  "subdenomination": null,
                                  "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": 461,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "8183:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 463,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8183:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "8170:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a7065726d69743a20696e76616c6964207369676e6174757265",
                            "id": 465,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8195:33:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_512223b8c84c295fece1bcc08cfb7f52260e733569f774557c8223e90622eafc",
                              "typeString": "literal_string \"Niki::permit: invalid signature\""
                            },
                            "value": "Niki::permit: invalid signature"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_512223b8c84c295fece1bcc08cfb7f52260e733569f774557c8223e90622eafc",
                              "typeString": "literal_string \"Niki::permit: invalid signature\""
                            }
                          ],
                          "id": 459,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8162:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8162:67:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 467,
                      "nodeType": "ExpressionStatement",
                      "src": "8162:67:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 471,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 469,
                              "name": "signatory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 451,
                              "src": "8248:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 470,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 362,
                              "src": "8261:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "8248:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a7065726d69743a20756e617574686f72697a6564",
                            "id": 472,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8268:28:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_d2284f631679c201f70672455066765c3377f5096d9bfae180350c619a0f3c22",
                              "typeString": "literal_string \"Niki::permit: unauthorized\""
                            },
                            "value": "Niki::permit: unauthorized"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_d2284f631679c201f70672455066765c3377f5096d9bfae180350c619a0f3c22",
                              "typeString": "literal_string \"Niki::permit: unauthorized\""
                            }
                          ],
                          "id": 468,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8240:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8240:57:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 474,
                      "nodeType": "ExpressionStatement",
                      "src": "8240:57:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 476,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3978,
                              "src": "8316:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 477,
                              "name": "deadline",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 368,
                              "src": "8323:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8316:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a7065726d69743a207369676e61747572652065787069726564",
                            "id": 479,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8333:33:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_5f59c3eaed26bfc853302f4b3bff88bbccfeee242dc8cb10222438ae976b5b19",
                              "typeString": "literal_string \"Niki::permit: signature expired\""
                            },
                            "value": "Niki::permit: signature expired"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_5f59c3eaed26bfc853302f4b3bff88bbccfeee242dc8cb10222438ae976b5b19",
                              "typeString": "literal_string \"Niki::permit: signature expired\""
                            }
                          ],
                          "id": 475,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8308:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 480,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8308:59:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 481,
                      "nodeType": "ExpressionStatement",
                      "src": "8308:59:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 488,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 482,
                              "name": "allowances",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 33,
                              "src": "8380:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                                "typeString": "mapping(address => mapping(address => uint96))"
                              }
                            },
                            "id": 485,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 483,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 362,
                              "src": "8391:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8380:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 486,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 484,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 364,
                            "src": "8398:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "8380:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 487,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 378,
                          "src": "8409:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "8380:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 489,
                      "nodeType": "ExpressionStatement",
                      "src": "8380:35:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 491,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 362,
                            "src": "8442:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 492,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 364,
                            "src": "8449:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 493,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 378,
                            "src": "8458:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 490,
                          "name": "Approval",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 113,
                          "src": "8433:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                            "typeString": "function (address,address,uint256)"
                          }
                        },
                        "id": 494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8433:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 495,
                      "nodeType": "EmitStatement",
                      "src": "8428:37:0"
                    }
                  ]
                },
                "documentation": "@notice Triggers an approval from owner to spends\n@param owner The address to approve from\n@param spender The address to be approved\n@param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n@param deadline The time at which to expire the signature\n@param v The recovery byte of the signature\n@param r Half of the ECDSA signature pair\n@param s Half of the ECDSA signature pair",
                "id": 497,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "permit",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 375,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 362,
                      "name": "owner",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7435:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 361,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7435:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 364,
                      "name": "spender",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7450:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 363,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7450:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 366,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7467:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 365,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7467:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 368,
                      "name": "deadline",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7483:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 367,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7483:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 370,
                      "name": "v",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7498:7:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 369,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "7498:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 372,
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7507:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 371,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7507:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 374,
                      "name": "s",
                      "nodeType": "VariableDeclaration",
                      "scope": 497,
                      "src": "7518:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 373,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7518:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "7434:94:0"
                },
                "returnParameters": {
                  "id": 376,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "7538:0:0"
                },
                "scope": 1273,
                "src": "7419:1054:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 508,
                  "nodeType": "Block",
                  "src": "8741:43:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 504,
                          "name": "balances",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37,
                          "src": "8759:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                            "typeString": "mapping(address => uint96)"
                          }
                        },
                        "id": 506,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 505,
                          "name": "account",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 499,
                          "src": "8768:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8759:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 503,
                      "id": 507,
                      "nodeType": "Return",
                      "src": "8752:24:0"
                    }
                  ]
                },
                "documentation": "@notice Get the number of tokens held by the `account`\n@param account The address of the account to get the balance of\n@return The number of tokens held",
                "id": 509,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "balanceOf",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 500,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 499,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 509,
                      "src": "8695:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 498,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "8695:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "8694:17:0"
                },
                "returnParameters": {
                  "id": 503,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 502,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 509,
                      "src": "8735:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 501,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8735:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "8734:6:0"
                },
                "scope": 1273,
                "src": "8676:108:0",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 534,
                  "nodeType": "Block",
                  "src": "9119:167:0",
                  "statements": [
                    {
                      "assignments": [
                        519
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 519,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 534,
                          "src": "9130:13:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 518,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "9130:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 524,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 521,
                            "name": "rawAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 513,
                            "src": "9153:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473",
                            "id": 522,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9164:40:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_9323f6dab57dfe4cb7c7fafc3059f31aad84cb3ce120ed9353e3fa53ac66c064",
                              "typeString": "literal_string \"Niki::transfer: amount exceeds 96 bits\""
                            },
                            "value": "Niki::transfer: amount exceeds 96 bits"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_9323f6dab57dfe4cb7c7fafc3059f31aad84cb3ce120ed9353e3fa53ac66c064",
                              "typeString": "literal_string \"Niki::transfer: amount exceeds 96 bits\""
                            }
                          ],
                          "id": 520,
                          "name": "safe96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1210,
                          "src": "9146:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                            "typeString": "function (uint256,string memory) pure returns (uint96)"
                          }
                        },
                        "id": 523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9146:59:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9130:75:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 526,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "9232:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 527,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "9232:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 528,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 511,
                            "src": "9244:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 529,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 519,
                            "src": "9249:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 525,
                          "name": "_transferTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 984,
                          "src": "9216:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$",
                            "typeString": "function (address,address,uint96)"
                          }
                        },
                        "id": 530,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9216:40:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 531,
                      "nodeType": "ExpressionStatement",
                      "src": "9216:40:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 532,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9274:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      "functionReturnParameters": 517,
                      "id": 533,
                      "nodeType": "Return",
                      "src": "9267:11:0"
                    }
                  ]
                },
                "documentation": "@notice Transfer `amount` tokens from `msg.sender` to `dst`\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded",
                "id": 535,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "transfer",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 514,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 511,
                      "name": "dst",
                      "nodeType": "VariableDeclaration",
                      "scope": 535,
                      "src": "9066:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 510,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9066:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 513,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 535,
                      "src": "9079:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 512,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9079:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9065:29:0"
                },
                "returnParameters": {
                  "id": 517,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 516,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 535,
                      "src": "9113:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 515,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "9113:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9112:6:0"
                },
                "scope": 1273,
                "src": "9048:238:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 608,
                  "nodeType": "Block",
                  "src": "9684:584:0",
                  "statements": [
                    {
                      "assignments": [
                        547
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 547,
                          "name": "spender",
                          "nodeType": "VariableDeclaration",
                          "scope": 608,
                          "src": "9695:15:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "typeName": {
                            "id": 546,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9695:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 550,
                      "initialValue": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 548,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3976,
                          "src": "9713:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "9713:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9695:28:0"
                    },
                    {
                      "assignments": [
                        552
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 552,
                          "name": "spenderAllowance",
                          "nodeType": "VariableDeclaration",
                          "scope": 608,
                          "src": "9734:23:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 551,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "9734:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 558,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 553,
                            "name": "allowances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "9760:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                              "typeString": "mapping(address => mapping(address => uint96))"
                            }
                          },
                          "id": 555,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 554,
                            "name": "src",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 537,
                            "src": "9771:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9760:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                            "typeString": "mapping(address => uint96)"
                          }
                        },
                        "id": 557,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 556,
                          "name": "spender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 547,
                          "src": "9776:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9760:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9734:50:0"
                    },
                    {
                      "assignments": [
                        560
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 560,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 608,
                          "src": "9795:13:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 559,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "9795:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 565,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 562,
                            "name": "rawAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 541,
                            "src": "9818:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a617070726f76653a20616d6f756e7420657863656564732039362062697473",
                            "id": 563,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9829:39:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_25156c082101f6126ff5be171579fd5d429d079247dc029339c261140e3e679a",
                              "typeString": "literal_string \"Niki::approve: amount exceeds 96 bits\""
                            },
                            "value": "Niki::approve: amount exceeds 96 bits"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_25156c082101f6126ff5be171579fd5d429d079247dc029339c261140e3e679a",
                              "typeString": "literal_string \"Niki::approve: amount exceeds 96 bits\""
                            }
                          ],
                          "id": 561,
                          "name": "safe96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1210,
                          "src": "9811:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$",
                            "typeString": "function (uint256,string memory) pure returns (uint96)"
                          }
                        },
                        "id": 564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9811:58:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9795:74:0"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 575,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 568,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 566,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 547,
                            "src": "9886:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 567,
                            "name": "src",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 537,
                            "src": "9897:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "9886:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 569,
                            "name": "spenderAllowance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 552,
                            "src": "9904:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 572,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "-",
                                "prefix": true,
                                "src": "9931:2:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 571,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9932:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              ],
                              "id": 570,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9924:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint96_$",
                                "typeString": "type(uint96)"
                              },
                              "typeName": "uint96"
                            },
                            "id": 573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9924:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "src": "9904:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9886:48:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 599,
                      "nodeType": "IfStatement",
                      "src": "9882:311:0",
                      "trueBody": {
                        "id": 598,
                        "nodeType": "Block",
                        "src": "9936:257:0",
                        "statements": [
                          {
                            "assignments": [
                              577
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 577,
                                "name": "newAllowance",
                                "nodeType": "VariableDeclaration",
                                "scope": 598,
                                "src": "9951:19:0",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                },
                                "typeName": {
                                  "id": 576,
                                  "name": "uint96",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "9951:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 583,
                            "initialValue": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 579,
                                  "name": "spenderAllowance",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 552,
                                  "src": "9979:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 580,
                                  "name": "amount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 560,
                                  "src": "9997:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "4e696b693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365",
                                  "id": 581,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10005:63:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_3d006d4ace486c3d613818b73f61245774d49a2adb5146cb848974f72c2aae18",
                                    "typeString": "literal_string \"Niki::transferFrom: transfer amount exceeds spender allowance\""
                                  },
                                  "value": "Niki::transferFrom: transfer amount exceeds spender allowance"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  },
                                  {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  },
                                  {
                                    "typeIdentifier": "t_stringliteral_3d006d4ace486c3d613818b73f61245774d49a2adb5146cb848974f72c2aae18",
                                    "typeString": "literal_string \"Niki::transferFrom: transfer amount exceeds spender allowance\""
                                  }
                                ],
                                "id": 578,
                                "name": "sub96",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1260,
                                "src": "9973:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                                  "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                                }
                              },
                              "id": 582,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9973:96:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "9951:118:0"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 584,
                                    "name": "allowances",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 33,
                                    "src": "10084:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$",
                                      "typeString": "mapping(address => mapping(address => uint96))"
                                    }
                                  },
                                  "id": 587,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 585,
                                    "name": "src",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 537,
                                    "src": "10095:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "10084:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                                    "typeString": "mapping(address => uint96)"
                                  }
                                },
                                "id": 588,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 586,
                                  "name": "spender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 547,
                                  "src": "10100:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "10084:24:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 589,
                                "name": "newAllowance",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 577,
                                "src": "10111:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "10084:39:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 591,
                            "nodeType": "ExpressionStatement",
                            "src": "10084:39:0"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 593,
                                  "name": "src",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 537,
                                  "src": "10154:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 594,
                                  "name": "spender",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 547,
                                  "src": "10159:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 595,
                                  "name": "newAllowance",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 577,
                                  "src": "10168:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint96",
                                    "typeString": "uint96"
                                  }
                                ],
                                "id": 592,
                                "name": "Approval",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 113,
                                "src": "10145:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                  "typeString": "function (address,address,uint256)"
                                }
                              },
                              "id": 596,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10145:36:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 597,
                            "nodeType": "EmitStatement",
                            "src": "10140:41:0"
                          }
                        ]
                      }
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 601,
                            "name": "src",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 537,
                            "src": "10221:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 602,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 539,
                            "src": "10226:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 603,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 560,
                            "src": "10231:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 600,
                          "name": "_transferTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 984,
                          "src": "10205:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$",
                            "typeString": "function (address,address,uint96)"
                          }
                        },
                        "id": 604,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10205:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 605,
                      "nodeType": "ExpressionStatement",
                      "src": "10205:33:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10256:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      "functionReturnParameters": 545,
                      "id": 607,
                      "nodeType": "Return",
                      "src": "10249:11:0"
                    }
                  ]
                },
                "documentation": "@notice Transfer `amount` tokens from `src` to `dst`\n@param src The address of the source account\n@param dst The address of the destination account\n@param rawAmount The number of tokens to transfer\n@return Whether or not the transfer succeeded",
                "id": 609,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "transferFrom",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 542,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 537,
                      "name": "src",
                      "nodeType": "VariableDeclaration",
                      "scope": 609,
                      "src": "9618:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 536,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9618:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 539,
                      "name": "dst",
                      "nodeType": "VariableDeclaration",
                      "scope": 609,
                      "src": "9631:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 538,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9631:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 541,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 609,
                      "src": "9644:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 540,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9644:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9617:42:0"
                },
                "returnParameters": {
                  "id": 545,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 544,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 609,
                      "src": "9678:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 543,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "9678:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9677:6:0"
                },
                "scope": 1273,
                "src": "9596:672:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 620,
                  "nodeType": "Block",
                  "src": "10460:58:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 615,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "10488:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10488:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 617,
                            "name": "delegatee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 611,
                            "src": "10500:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 614,
                          "name": "_delegate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 916,
                          "src": "10478:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                            "typeString": "function (address,address)"
                          }
                        },
                        "id": 618,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10478:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "functionReturnParameters": 613,
                      "id": 619,
                      "nodeType": "Return",
                      "src": "10471:39:0"
                    }
                  ]
                },
                "documentation": "@notice Delegate votes from `msg.sender` to `delegatee`\n@param delegatee The address to delegate votes to",
                "id": 621,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "delegate",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 612,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 611,
                      "name": "delegatee",
                      "nodeType": "VariableDeclaration",
                      "scope": 621,
                      "src": "10434:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 610,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10434:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "10433:19:0"
                },
                "returnParameters": {
                  "id": 613,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "10460:0:0"
                },
                "scope": 1273,
                "src": "10416:102:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 718,
                  "nodeType": "Block",
                  "src": "11057:684:0",
                  "statements": [
                    {
                      "assignments": [
                        637
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 637,
                          "name": "domainSeparator",
                          "nodeType": "VariableDeclaration",
                          "scope": 718,
                          "src": "11068:23:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 636,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11068:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 654,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 641,
                                "name": "DOMAIN_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 61,
                                "src": "11115:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 644,
                                        "name": "name",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6,
                                        "src": "11148:4:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 643,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11142:5:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": "bytes"
                                    },
                                    "id": 645,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11142:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 642,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3970,
                                  "src": "11132:9:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 646,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11132:22:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 647,
                                  "name": "getChainId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1272,
                                  "src": "11156:10:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                    "typeString": "function () pure returns (uint256)"
                                  }
                                },
                                "id": 648,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11156:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 650,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3992,
                                    "src": "11178:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Niki_$1273",
                                      "typeString": "contract Niki"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Niki_$1273",
                                      "typeString": "contract Niki"
                                    }
                                  ],
                                  "id": 649,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11170:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 651,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11170:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 639,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11104:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 640,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11104:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 652,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11104:80:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 638,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11094:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11094:91:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11068:117:0"
                    },
                    {
                      "assignments": [
                        656
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 656,
                          "name": "structHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 718,
                          "src": "11196:18:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 655,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11196:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 666,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 660,
                                "name": "DELEGATION_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 66,
                                "src": "11238:19:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 661,
                                "name": "delegatee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 623,
                                "src": "11259:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 662,
                                "name": "nonce",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 625,
                                "src": "11270:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 663,
                                "name": "expiry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 627,
                                "src": "11277:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 658,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11227:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11227:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 664,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11227:57:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 657,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11217:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 665,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11217:68:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11196:89:0"
                    },
                    {
                      "assignments": [
                        668
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 668,
                          "name": "digest",
                          "nodeType": "VariableDeclaration",
                          "scope": 718,
                          "src": "11296:14:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 667,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11296:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 677,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "1901",
                                "id": 672,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11340:10:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                "value": "\u0019\u0001"
                              },
                              {
                                "argumentTypes": null,
                                "id": 673,
                                "name": "domainSeparator",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 637,
                                "src": "11352:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 674,
                                "name": "structHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 656,
                                "src": "11369:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 670,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11323:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 671,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11323:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 675,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11323:57:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 669,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11313:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 676,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11313:68:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11296:85:0"
                    },
                    {
                      "assignments": [
                        679
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 679,
                          "name": "signatory",
                          "nodeType": "VariableDeclaration",
                          "scope": 718,
                          "src": "11392:17:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "typeName": {
                            "id": 678,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11392:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 686,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 681,
                            "name": "digest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 668,
                            "src": "11422:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 682,
                            "name": "v",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 629,
                            "src": "11430:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 683,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 631,
                            "src": "11433:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 684,
                            "name": "s",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 633,
                            "src": "11436:1:0",
                            "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": 680,
                          "name": "ecrecover",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3968,
                          "src": "11412:9:0",
                          "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": 685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11412:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11392:46:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 692,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 688,
                              "name": "signatory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 679,
                              "src": "11457:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 690,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11478:1:0",
                                  "subdenomination": null,
                                  "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": 689,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11470:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 691,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11470:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "11457:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a64656c656761746542795369673a20696e76616c6964207369676e6174757265",
                            "id": 693,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11482:40:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_b5e7cc8326cb53d5fe05c6ef0f1b98455dfae8c7ea60c548db70189a0f429137",
                              "typeString": "literal_string \"Niki::delegateBySig: invalid signature\""
                            },
                            "value": "Niki::delegateBySig: invalid signature"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_b5e7cc8326cb53d5fe05c6ef0f1b98455dfae8c7ea60c548db70189a0f429137",
                              "typeString": "literal_string \"Niki::delegateBySig: invalid signature\""
                            }
                          ],
                          "id": 687,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "11449:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11449:74:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 695,
                      "nodeType": "ExpressionStatement",
                      "src": "11449:74:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 697,
                              "name": "nonce",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 625,
                              "src": "11542:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 701,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "11551:19:0",
                              "subExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 698,
                                  "name": "nonces",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 75,
                                  "src": "11551:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 700,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 699,
                                  "name": "signatory",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 679,
                                  "src": "11558:9:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "11551:17:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "11542:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6365",
                            "id": 703,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11572:36:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_57b6dbf37ce9c52abd1f538dea00626aec590c2a7472e6552b06f29ead3f4ea2",
                              "typeString": "literal_string \"Niki::delegateBySig: invalid nonce\""
                            },
                            "value": "Niki::delegateBySig: invalid nonce"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_57b6dbf37ce9c52abd1f538dea00626aec590c2a7472e6552b06f29ead3f4ea2",
                              "typeString": "literal_string \"Niki::delegateBySig: invalid nonce\""
                            }
                          ],
                          "id": 696,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "11534:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11534:75:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 705,
                      "nodeType": "ExpressionStatement",
                      "src": "11534:75:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 709,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 707,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3978,
                              "src": "11628:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 708,
                              "name": "expiry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 627,
                              "src": "11635:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "11628:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a64656c656761746542795369673a207369676e61747572652065787069726564",
                            "id": 710,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11643:40:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f6137e3e11692bab94053bcf657e68a092ba2ebd94227fe226f0d4ce6edd11e6",
                              "typeString": "literal_string \"Niki::delegateBySig: signature expired\""
                            },
                            "value": "Niki::delegateBySig: signature expired"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f6137e3e11692bab94053bcf657e68a092ba2ebd94227fe226f0d4ce6edd11e6",
                              "typeString": "literal_string \"Niki::delegateBySig: signature expired\""
                            }
                          ],
                          "id": 706,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "11620:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 711,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11620:64:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 712,
                      "nodeType": "ExpressionStatement",
                      "src": "11620:64:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 714,
                            "name": "signatory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 679,
                            "src": "11712:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 715,
                            "name": "delegatee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 623,
                            "src": "11723:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 713,
                          "name": "_delegate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 916,
                          "src": "11702:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                            "typeString": "function (address,address)"
                          }
                        },
                        "id": 716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11702:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "functionReturnParameters": 635,
                      "id": 717,
                      "nodeType": "Return",
                      "src": "11695:38:0"
                    }
                  ]
                },
                "documentation": "@notice Delegates votes from signatory to `delegatee`\n@param delegatee The address to delegate votes to\n@param nonce The contract state required to match the signature\n@param expiry The time at which to expire the signature\n@param v The recovery byte of the signature\n@param r Half of the ECDSA signature pair\n@param s Half of the ECDSA signature pair",
                "id": 719,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "delegateBySig",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 634,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 623,
                      "name": "delegatee",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "10975:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 622,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "10975:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 625,
                      "name": "nonce",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "10994:10:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 624,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "10994:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 627,
                      "name": "expiry",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "11006:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 626,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11006:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 629,
                      "name": "v",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "11019:7:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 628,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "11019:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 631,
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "11028:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 630,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11028:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 633,
                      "name": "s",
                      "nodeType": "VariableDeclaration",
                      "scope": 719,
                      "src": "11039:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 632,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11039:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "10974:75:0"
                },
                "returnParameters": {
                  "id": 635,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "11057:0:0"
                },
                "scope": 1273,
                "src": "10952:789:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 746,
                  "nodeType": "Block",
                  "src": "12015:149:0",
                  "statements": [
                    {
                      "assignments": [
                        727
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 727,
                          "name": "nCheckpoints",
                          "nodeType": "VariableDeclaration",
                          "scope": 746,
                          "src": "12026:19:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "typeName": {
                            "id": 726,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "12026:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 731,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 728,
                          "name": "numCheckpoints",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 56,
                          "src": "12048:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                            "typeString": "mapping(address => uint32)"
                          }
                        },
                        "id": 730,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 729,
                          "name": "account",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 721,
                          "src": "12063:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12048:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12026:45:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 732,
                            "name": "nCheckpoints",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 727,
                            "src": "12089:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12104:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "12089:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12155:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "id": 744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "12089:67:0",
                        "trueExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 735,
                                "name": "checkpoints",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 52,
                                "src": "12108:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                  "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                }
                              },
                              "id": 737,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 736,
                                "name": "account",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 721,
                                "src": "12120:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12108:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                              }
                            },
                            "id": 741,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 738,
                                "name": "nCheckpoints",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 727,
                                "src": "12129:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 739,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "12144:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "12129:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12108:38:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                              "typeString": "struct Niki.Checkpoint storage ref"
                            }
                          },
                          "id": 742,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 45,
                          "src": "12108:44:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 725,
                      "id": 745,
                      "nodeType": "Return",
                      "src": "12082:74:0"
                    }
                  ]
                },
                "documentation": "@notice Gets the current votes balance for `account`\n@param account The address to get votes balance\n@return The number of current votes for `account`",
                "id": 747,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getCurrentVotes",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 722,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 721,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 747,
                      "src": "11967:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 720,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11967:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "11966:17:0"
                },
                "returnParameters": {
                  "id": 725,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 724,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 747,
                      "src": "12007:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 723,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "12007:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12006:8:0"
                },
                "scope": 1273,
                "src": "11942:222:0",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 877,
                  "nodeType": "Block",
                  "src": "12682:1131:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 760,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 757,
                              "name": "blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 751,
                              "src": "12701:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 758,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "12715:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12715:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12701:26:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564",
                            "id": 761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12729:41:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_537c4a61f8d5c055b74ca5b440cac3def21049ad1a2995e66589a1159a90bb5b",
                              "typeString": "literal_string \"Niki::getPriorVotes: not yet determined\""
                            },
                            "value": "Niki::getPriorVotes: not yet determined"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_537c4a61f8d5c055b74ca5b440cac3def21049ad1a2995e66589a1159a90bb5b",
                              "typeString": "literal_string \"Niki::getPriorVotes: not yet determined\""
                            }
                          ],
                          "id": 756,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "12693:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12693:78:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 763,
                      "nodeType": "ExpressionStatement",
                      "src": "12693:78:0"
                    },
                    {
                      "assignments": [
                        765
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 765,
                          "name": "nCheckpoints",
                          "nodeType": "VariableDeclaration",
                          "scope": 877,
                          "src": "12784:19:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "typeName": {
                            "id": 764,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "12784:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 769,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 766,
                          "name": "numCheckpoints",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 56,
                          "src": "12806:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                            "typeString": "mapping(address => uint32)"
                          }
                        },
                        "id": 768,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 767,
                          "name": "account",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 749,
                          "src": "12821:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12806:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12784:45:0"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 770,
                          "name": "nCheckpoints",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 765,
                          "src": "12844:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12860:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12844:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 776,
                      "nodeType": "IfStatement",
                      "src": "12840:58:0",
                      "trueBody": {
                        "id": 775,
                        "nodeType": "Block",
                        "src": "12863:35:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 773,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12885:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "functionReturnParameters": 755,
                            "id": 774,
                            "nodeType": "Return",
                            "src": "12878:8:0"
                          }
                        ]
                      }
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 777,
                                "name": "checkpoints",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 52,
                                "src": "12958:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                  "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                }
                              },
                              "id": 779,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 778,
                                "name": "account",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 749,
                                "src": "12970:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12958:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                              }
                            },
                            "id": 783,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 782,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 780,
                                "name": "nCheckpoints",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 765,
                                "src": "12979:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "12994:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "12979:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12958:38:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                              "typeString": "struct Niki.Checkpoint storage ref"
                            }
                          },
                          "id": 784,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "fromBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 43,
                          "src": "12958:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 785,
                          "name": "blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 751,
                          "src": "13010:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12958:63:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 797,
                      "nodeType": "IfStatement",
                      "src": "12954:147:0",
                      "trueBody": {
                        "id": 796,
                        "nodeType": "Block",
                        "src": "13023:78:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 787,
                                    "name": "checkpoints",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52,
                                    "src": "13045:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                      "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                    }
                                  },
                                  "id": 789,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 788,
                                    "name": "account",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 749,
                                    "src": "13057:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "13045:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                    "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                  }
                                },
                                "id": 793,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  },
                                  "id": 792,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 790,
                                    "name": "nCheckpoints",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 765,
                                    "src": "13066:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 791,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "13081:1:0",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "13066:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "13045:38:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                  "typeString": "struct Niki.Checkpoint storage ref"
                                }
                              },
                              "id": 794,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "votes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 45,
                              "src": "13045:44:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "functionReturnParameters": 755,
                            "id": 795,
                            "nodeType": "Return",
                            "src": "13038:51:0"
                          }
                        ]
                      }
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 805,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 798,
                                "name": "checkpoints",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 52,
                                "src": "13162:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                  "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                }
                              },
                              "id": 800,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 799,
                                "name": "account",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 749,
                                "src": "13174:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13162:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                              }
                            },
                            "id": 802,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 801,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13183:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13162:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                              "typeString": "struct Niki.Checkpoint storage ref"
                            }
                          },
                          "id": 803,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "fromBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 43,
                          "src": "13162:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 804,
                          "name": "blockNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 751,
                          "src": "13198:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13162:47:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 809,
                      "nodeType": "IfStatement",
                      "src": "13158:88:0",
                      "trueBody": {
                        "id": 808,
                        "nodeType": "Block",
                        "src": "13211:35:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 806,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13233:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "functionReturnParameters": 755,
                            "id": 807,
                            "nodeType": "Return",
                            "src": "13226:8:0"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        811
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 811,
                          "name": "lower",
                          "nodeType": "VariableDeclaration",
                          "scope": 877,
                          "src": "13258:12:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "typeName": {
                            "id": 810,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "13258:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 813,
                      "initialValue": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13273:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "13258:16:0"
                    },
                    {
                      "assignments": [
                        815
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 815,
                          "name": "upper",
                          "nodeType": "VariableDeclaration",
                          "scope": 877,
                          "src": "13285:12:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "typeName": {
                            "id": 814,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "13285:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 819,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 816,
                          "name": "nCheckpoints",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 765,
                          "src": "13300:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13315:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "13300:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "13285:31:0"
                    },
                    {
                      "body": {
                        "id": 868,
                        "nodeType": "Block",
                        "src": "13349:406:0",
                        "statements": [
                          {
                            "assignments": [
                              824
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 824,
                                "name": "center",
                                "nodeType": "VariableDeclaration",
                                "scope": 868,
                                "src": "13364:13:0",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "typeName": {
                                  "id": 823,
                                  "name": "uint32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "13364:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 833,
                            "initialValue": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 832,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 825,
                                "name": "upper",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 815,
                                "src": "13380:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 831,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      },
                                      "id": 828,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 826,
                                        "name": "upper",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 815,
                                        "src": "13389:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 827,
                                        "name": "lower",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 811,
                                        "src": "13397:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "src": "13389:13:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      }
                                    }
                                  ],
                                  "id": 829,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "13388:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "/",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 830,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13406:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "src": "13388:19:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13380:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "13364:43:0"
                          },
                          {
                            "assignments": [
                              835
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 835,
                                "name": "cp",
                                "nodeType": "VariableDeclaration",
                                "scope": 868,
                                "src": "13449:20:0",
                                "stateVariable": false,
                                "storageLocation": "memory",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Checkpoint_$46_memory_ptr",
                                  "typeString": "struct Niki.Checkpoint"
                                },
                                "typeName": {
                                  "contractScope": null,
                                  "id": 834,
                                  "name": "Checkpoint",
                                  "nodeType": "UserDefinedTypeName",
                                  "referencedDeclaration": 46,
                                  "src": "13449:10:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Checkpoint_$46_storage_ptr",
                                    "typeString": "struct Niki.Checkpoint"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 841,
                            "initialValue": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 836,
                                  "name": "checkpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 52,
                                  "src": "13472:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                    "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                  }
                                },
                                "id": 838,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 837,
                                  "name": "account",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 749,
                                  "src": "13484:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "13472:20:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                  "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                }
                              },
                              "id": 840,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 839,
                                "name": "center",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 824,
                                "src": "13493:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13472:28:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                "typeString": "struct Niki.Checkpoint storage ref"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "13449:51:0"
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 845,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 842,
                                  "name": "cp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 835,
                                  "src": "13519:2:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Checkpoint_$46_memory_ptr",
                                    "typeString": "struct Niki.Checkpoint memory"
                                  }
                                },
                                "id": 843,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "fromBlock",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 43,
                                "src": "13519:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 844,
                                "name": "blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 751,
                                "src": "13535:11:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "13519:27:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 853,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 850,
                                    "name": "cp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 835,
                                    "src": "13608:2:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Checkpoint_$46_memory_ptr",
                                      "typeString": "struct Niki.Checkpoint memory"
                                    }
                                  },
                                  "id": 851,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "fromBlock",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 43,
                                  "src": "13608:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 852,
                                  "name": "blockNumber",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 751,
                                  "src": "13623:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13608:26:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 865,
                                "nodeType": "Block",
                                "src": "13691:53:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 863,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 859,
                                        "name": "upper",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 815,
                                        "src": "13710:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        },
                                        "id": 862,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 860,
                                          "name": "center",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 824,
                                          "src": "13718:6:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "31",
                                          "id": 861,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13727:1:0",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "13718:10:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "src": "13710:18:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      }
                                    },
                                    "id": 864,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13710:18:0"
                                  }
                                ]
                              },
                              "id": 866,
                              "nodeType": "IfStatement",
                              "src": "13604:140:0",
                              "trueBody": {
                                "id": 858,
                                "nodeType": "Block",
                                "src": "13636:49:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 856,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 854,
                                        "name": "lower",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 811,
                                        "src": "13655:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 855,
                                        "name": "center",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 824,
                                        "src": "13663:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "src": "13655:14:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      }
                                    },
                                    "id": 857,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13655:14:0"
                                  }
                                ]
                              }
                            },
                            "id": 867,
                            "nodeType": "IfStatement",
                            "src": "13515:229:0",
                            "trueBody": {
                              "id": 849,
                              "nodeType": "Block",
                              "src": "13548:50:0",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 846,
                                      "name": "cp",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 835,
                                      "src": "13574:2:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Checkpoint_$46_memory_ptr",
                                        "typeString": "struct Niki.Checkpoint memory"
                                      }
                                    },
                                    "id": 847,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "votes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 45,
                                    "src": "13574:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  },
                                  "functionReturnParameters": 755,
                                  "id": 848,
                                  "nodeType": "Return",
                                  "src": "13567:15:0"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 820,
                          "name": "upper",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 815,
                          "src": "13334:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 821,
                          "name": "lower",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 811,
                          "src": "13342:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "13334:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 869,
                      "nodeType": "WhileStatement",
                      "src": "13327:428:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 870,
                              "name": "checkpoints",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52,
                              "src": "13772:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                              }
                            },
                            "id": 872,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 871,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 749,
                              "src": "13784:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13772:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                              "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                            }
                          },
                          "id": 874,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 873,
                            "name": "lower",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 811,
                            "src": "13793:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13772:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                            "typeString": "struct Niki.Checkpoint storage ref"
                          }
                        },
                        "id": 875,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "votes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 45,
                        "src": "13772:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 755,
                      "id": 876,
                      "nodeType": "Return",
                      "src": "13765:40:0"
                    }
                  ]
                },
                "documentation": "@notice Determine the prior number of votes for an account as of a block number\n@dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n@param account The address of the account to check\n@param blockNumber The block number to get the vote balance at\n@return The number of votes the account had as of the given block",
                "id": 878,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getPriorVotes",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 752,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 749,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 878,
                      "src": "12618:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 748,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "12618:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 751,
                      "name": "blockNumber",
                      "nodeType": "VariableDeclaration",
                      "scope": 878,
                      "src": "12635:16:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 750,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12635:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12617:35:0"
                },
                "returnParameters": {
                  "id": 755,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 754,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 878,
                      "src": "12674:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 753,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "12674:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12673:8:0"
                },
                "scope": 1273,
                "src": "12595:1218:0",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 915,
                  "nodeType": "Block",
                  "src": "13887:309:0",
                  "statements": [
                    {
                      "assignments": [
                        886
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 886,
                          "name": "currentDelegate",
                          "nodeType": "VariableDeclaration",
                          "scope": 915,
                          "src": "13898:23:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "typeName": {
                            "id": 885,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "13898:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 890,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 887,
                          "name": "delegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41,
                          "src": "13924:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                            "typeString": "mapping(address => address)"
                          }
                        },
                        "id": 889,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 888,
                          "name": "delegator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 880,
                          "src": "13934:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13924:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "13898:46:0"
                    },
                    {
                      "assignments": [
                        892
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 892,
                          "name": "delegatorBalance",
                          "nodeType": "VariableDeclaration",
                          "scope": 915,
                          "src": "13955:23:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 891,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "13955:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 896,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 893,
                          "name": "balances",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37,
                          "src": "13981:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                            "typeString": "mapping(address => uint96)"
                          }
                        },
                        "id": 895,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 894,
                          "name": "delegator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 880,
                          "src": "13990:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "13981:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "13955:45:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 901,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 897,
                            "name": "delegates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41,
                            "src": "14011:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                              "typeString": "mapping(address => address)"
                            }
                          },
                          "id": 899,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 898,
                            "name": "delegator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 880,
                            "src": "14021:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "14011:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 900,
                          "name": "delegatee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 882,
                          "src": "14034:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "14011:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 902,
                      "nodeType": "ExpressionStatement",
                      "src": "14011:32:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 904,
                            "name": "delegator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 880,
                            "src": "14077:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 905,
                            "name": "currentDelegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 886,
                            "src": "14088:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 906,
                            "name": "delegatee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 882,
                            "src": "14105:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 903,
                          "name": "DelegateChanged",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 89,
                          "src": "14061:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                            "typeString": "function (address,address,address)"
                          }
                        },
                        "id": 907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14061:54:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 908,
                      "nodeType": "EmitStatement",
                      "src": "14056:59:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 910,
                            "name": "currentDelegate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 886,
                            "src": "14143:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 911,
                            "name": "delegatee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 882,
                            "src": "14160:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 912,
                            "name": "delegatorBalance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 892,
                            "src": "14171:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 909,
                          "name": "_moveDelegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1091,
                          "src": "14128:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$",
                            "typeString": "function (address,address,uint96)"
                          }
                        },
                        "id": 913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14128:60:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 914,
                      "nodeType": "ExpressionStatement",
                      "src": "14128:60:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 916,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_delegate",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 883,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 880,
                      "name": "delegator",
                      "nodeType": "VariableDeclaration",
                      "scope": 916,
                      "src": "13840:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 879,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13840:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 882,
                      "name": "delegatee",
                      "nodeType": "VariableDeclaration",
                      "scope": 916,
                      "src": "13859:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 881,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13859:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13839:38:0"
                },
                "returnParameters": {
                  "id": 884,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13887:0:0"
                },
                "scope": 1273,
                "src": "13821:375:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 983,
                  "nodeType": "Block",
                  "src": "14279:539:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 930,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 926,
                              "name": "src",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 918,
                              "src": "14298:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 928,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14313:1:0",
                                  "subdenomination": null,
                                  "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": 927,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14305:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 929,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14305:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "14298:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373",
                            "id": 931,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14317:62:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_2fd7f81721b63b6dcbc0b3532239417048a0c94b002a67967d747c63fc9364ff",
                              "typeString": "literal_string \"Niki::_transferTokens: cannot transfer from the zero address\""
                            },
                            "value": "Niki::_transferTokens: cannot transfer from the zero address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_2fd7f81721b63b6dcbc0b3532239417048a0c94b002a67967d747c63fc9364ff",
                              "typeString": "literal_string \"Niki::_transferTokens: cannot transfer from the zero address\""
                            }
                          ],
                          "id": 925,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "14290:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 932,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14290:90:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 933,
                      "nodeType": "ExpressionStatement",
                      "src": "14290:90:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 939,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 935,
                              "name": "dst",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 920,
                              "src": "14399:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 937,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14414:1:0",
                                  "subdenomination": null,
                                  "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": 936,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14406:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 938,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14406:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "14399:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373",
                            "id": 940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14418:60:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_345d1256ea6fe18f8cf899dea37247cca5515148cf8c188a607adeeb80414ca1",
                              "typeString": "literal_string \"Niki::_transferTokens: cannot transfer to the zero address\""
                            },
                            "value": "Niki::_transferTokens: cannot transfer to the zero address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_345d1256ea6fe18f8cf899dea37247cca5515148cf8c188a607adeeb80414ca1",
                              "typeString": "literal_string \"Niki::_transferTokens: cannot transfer to the zero address\""
                            }
                          ],
                          "id": 934,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "14391:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14391:88:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 942,
                      "nodeType": "ExpressionStatement",
                      "src": "14391:88:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 943,
                            "name": "balances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37,
                            "src": "14492:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 945,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 944,
                            "name": "src",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 918,
                            "src": "14501:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "14492:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 947,
                                "name": "balances",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37,
                                "src": "14514:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                                  "typeString": "mapping(address => uint96)"
                                }
                              },
                              "id": 949,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 948,
                                "name": "src",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 918,
                                "src": "14523:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14514:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 950,
                              "name": "amount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 922,
                              "src": "14529:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
                              "id": 951,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14537:56:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dae3616543ebdd8bf6e018ec43d19d2217458d3306c69b8552443501394da37c",
                                "typeString": "literal_string \"Niki::_transferTokens: transfer amount exceeds balance\""
                              },
                              "value": "Niki::_transferTokens: transfer amount exceeds balance"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_dae3616543ebdd8bf6e018ec43d19d2217458d3306c69b8552443501394da37c",
                                "typeString": "literal_string \"Niki::_transferTokens: transfer amount exceeds balance\""
                              }
                            ],
                            "id": 946,
                            "name": "sub96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1260,
                            "src": "14508:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                              "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                            }
                          },
                          "id": 952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14508:86:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "14492:102:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 954,
                      "nodeType": "ExpressionStatement",
                      "src": "14492:102:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 965,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 955,
                            "name": "balances",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37,
                            "src": "14605:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                              "typeString": "mapping(address => uint96)"
                            }
                          },
                          "id": 957,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 956,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 920,
                            "src": "14614:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "14605:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 959,
                                "name": "balances",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37,
                                "src": "14627:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$",
                                  "typeString": "mapping(address => uint96)"
                                }
                              },
                              "id": 961,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 960,
                                "name": "dst",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 920,
                                "src": "14636:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14627:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 962,
                              "name": "amount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 922,
                              "src": "14642:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e696b693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773",
                              "id": 963,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14650:50:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7aa40481b5d156168fcae495b3a68ef8ab73d3d3d775917c9405c6c4e642f755",
                                "typeString": "literal_string \"Niki::_transferTokens: transfer amount overflows\""
                              },
                              "value": "Niki::_transferTokens: transfer amount overflows"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_7aa40481b5d156168fcae495b3a68ef8ab73d3d3d775917c9405c6c4e642f755",
                                "typeString": "literal_string \"Niki::_transferTokens: transfer amount overflows\""
                              }
                            ],
                            "id": 958,
                            "name": "add96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1237,
                            "src": "14621:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                              "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                            }
                          },
                          "id": 964,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14621:80:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "14605:96:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 966,
                      "nodeType": "ExpressionStatement",
                      "src": "14605:96:0"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 968,
                            "name": "src",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 918,
                            "src": "14726:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 969,
                            "name": "dst",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 920,
                            "src": "14731:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 970,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 922,
                            "src": "14736:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 967,
                          "name": "Transfer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 105,
                          "src": "14717:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                            "typeString": "function (address,address,uint256)"
                          }
                        },
                        "id": 971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14717:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 972,
                      "nodeType": "EmitStatement",
                      "src": "14712:31:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 974,
                              "name": "delegates",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41,
                              "src": "14771:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                "typeString": "mapping(address => address)"
                              }
                            },
                            "id": 976,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 975,
                              "name": "src",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 918,
                              "src": "14781:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14771:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 977,
                              "name": "delegates",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41,
                              "src": "14787:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                                "typeString": "mapping(address => address)"
                              }
                            },
                            "id": 979,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 978,
                              "name": "dst",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 920,
                              "src": "14797:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14787:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 980,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 922,
                            "src": "14803:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 973,
                          "name": "_moveDelegates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1091,
                          "src": "14756:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$",
                            "typeString": "function (address,address,uint96)"
                          }
                        },
                        "id": 981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14756:54:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 982,
                      "nodeType": "ExpressionStatement",
                      "src": "14756:54:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 984,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_transferTokens",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 923,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 918,
                      "name": "src",
                      "nodeType": "VariableDeclaration",
                      "scope": 984,
                      "src": "14229:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 917,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14229:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 920,
                      "name": "dst",
                      "nodeType": "VariableDeclaration",
                      "scope": 984,
                      "src": "14242:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 919,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14242:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 922,
                      "name": "amount",
                      "nodeType": "VariableDeclaration",
                      "scope": 984,
                      "src": "14255:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 921,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "14255:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "14228:41:0"
                },
                "returnParameters": {
                  "id": 924,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "14279:0:0"
                },
                "scope": 1273,
                "src": "14204:614:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1090,
                  "nodeType": "Block",
                  "src": "14906:859:0",
                  "statements": [
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 999,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 995,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 993,
                            "name": "srcRep",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 986,
                            "src": "14921:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 994,
                            "name": "dstRep",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 988,
                            "src": "14931:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "14921:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "id": 998,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 996,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 990,
                            "src": "14941:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 997,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14950:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "14941:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "14921:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 1089,
                      "nodeType": "IfStatement",
                      "src": "14917:841:0",
                      "trueBody": {
                        "id": 1088,
                        "nodeType": "Block",
                        "src": "14953:805:0",
                        "statements": [
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 1004,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1000,
                                "name": "srcRep",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 986,
                                "src": "14972:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 1002,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14990:1:0",
                                    "subdenomination": null,
                                    "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": 1001,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "14982:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 1003,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14982:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "src": "14972:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1043,
                            "nodeType": "IfStatement",
                            "src": "14968:382:0",
                            "trueBody": {
                              "id": 1042,
                              "nodeType": "Block",
                              "src": "14994:356:0",
                              "statements": [
                                {
                                  "assignments": [
                                    1006
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1006,
                                      "name": "srcRepNum",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1042,
                                      "src": "15013:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      },
                                      "typeName": {
                                        "id": 1005,
                                        "name": "uint32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15013:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1010,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1007,
                                      "name": "numCheckpoints",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 56,
                                      "src": "15032:14:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                                        "typeString": "mapping(address => uint32)"
                                      }
                                    },
                                    "id": 1009,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1008,
                                      "name": "srcRep",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 986,
                                      "src": "15047:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "15032:22:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15013:41:0"
                                },
                                {
                                  "assignments": [
                                    1012
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1012,
                                      "name": "srcRepOld",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1042,
                                      "src": "15073:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      },
                                      "typeName": {
                                        "id": 1011,
                                        "name": "uint96",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15073:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1026,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      },
                                      "id": 1015,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1013,
                                        "name": "srcRepNum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1006,
                                        "src": "15092:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 1014,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15104:1:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "15092:13:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 1024,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "15151:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 1025,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "15092:60:0",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1016,
                                            "name": "checkpoints",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 52,
                                            "src": "15108:11:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                              "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                            }
                                          },
                                          "id": 1018,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1017,
                                            "name": "srcRep",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 986,
                                            "src": "15120:6:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15108:19:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                            "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                          }
                                        },
                                        "id": 1022,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          },
                                          "id": 1021,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 1019,
                                            "name": "srcRepNum",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1006,
                                            "src": "15128:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint32",
                                              "typeString": "uint32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 1020,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15140:1:0",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          },
                                          "src": "15128:13:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "15108:34:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                          "typeString": "struct Niki.Checkpoint storage ref"
                                        }
                                      },
                                      "id": 1023,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "votes",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 45,
                                      "src": "15108:40:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15073:79:0"
                                },
                                {
                                  "assignments": [
                                    1028
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1028,
                                      "name": "srcRepNew",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1042,
                                      "src": "15171:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      },
                                      "typeName": {
                                        "id": 1027,
                                        "name": "uint96",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15171:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1034,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1030,
                                        "name": "srcRepOld",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1012,
                                        "src": "15196:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1031,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 990,
                                        "src": "15207:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "4e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773",
                                        "id": 1032,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15215:42:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_c8624bd016f64414ca671be7bb58137c05e0d532eb257410ddaf2d3418398497",
                                          "typeString": "literal_string \"Niki::_moveVotes: vote amount underflows\""
                                        },
                                        "value": "Niki::_moveVotes: vote amount underflows"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_stringliteral_c8624bd016f64414ca671be7bb58137c05e0d532eb257410ddaf2d3418398497",
                                          "typeString": "literal_string \"Niki::_moveVotes: vote amount underflows\""
                                        }
                                      ],
                                      "id": 1029,
                                      "name": "sub96",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1260,
                                      "src": "15190:5:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                                        "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                                      }
                                    },
                                    "id": 1033,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "15190:68:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15171:87:0"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1036,
                                        "name": "srcRep",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 986,
                                        "src": "15294:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1037,
                                        "name": "srcRepNum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1006,
                                        "src": "15302:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1038,
                                        "name": "srcRepOld",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1012,
                                        "src": "15313:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1039,
                                        "name": "srcRepNew",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1028,
                                        "src": "15324:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      ],
                                      "id": 1035,
                                      "name": "_writeCheckpoint",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1164,
                                      "src": "15277:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$",
                                        "typeString": "function (address,uint32,uint96,uint96)"
                                      }
                                    },
                                    "id": 1040,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "15277:57:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 1041,
                                  "nodeType": "ExpressionStatement",
                                  "src": "15277:57:0"
                                }
                              ]
                            }
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 1048,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1044,
                                "name": "dstRep",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 988,
                                "src": "15370:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 1046,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "15388:1:0",
                                    "subdenomination": null,
                                    "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": 1045,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "15380:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 1047,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15380:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "src": "15370:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1087,
                            "nodeType": "IfStatement",
                            "src": "15366:381:0",
                            "trueBody": {
                              "id": 1086,
                              "nodeType": "Block",
                              "src": "15392:355:0",
                              "statements": [
                                {
                                  "assignments": [
                                    1050
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1050,
                                      "name": "dstRepNum",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1086,
                                      "src": "15411:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      },
                                      "typeName": {
                                        "id": 1049,
                                        "name": "uint32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15411:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1054,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1051,
                                      "name": "numCheckpoints",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 56,
                                      "src": "15430:14:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                                        "typeString": "mapping(address => uint32)"
                                      }
                                    },
                                    "id": 1053,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1052,
                                      "name": "dstRep",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 988,
                                      "src": "15445:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "15430:22:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15411:41:0"
                                },
                                {
                                  "assignments": [
                                    1056
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1056,
                                      "name": "dstRepOld",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1086,
                                      "src": "15471:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      },
                                      "typeName": {
                                        "id": 1055,
                                        "name": "uint96",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15471:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1070,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      },
                                      "id": 1059,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1057,
                                        "name": "dstRepNum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1050,
                                        "src": "15490:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 1058,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15502:1:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "15490:13:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "30",
                                      "id": 1068,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "15549:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "id": 1069,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "15490:60:0",
                                    "trueExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1060,
                                            "name": "checkpoints",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 52,
                                            "src": "15506:11:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                              "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                            }
                                          },
                                          "id": 1062,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1061,
                                            "name": "dstRep",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 988,
                                            "src": "15518:6:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15506:19:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                            "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                          }
                                        },
                                        "id": 1066,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          },
                                          "id": 1065,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 1063,
                                            "name": "dstRepNum",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1050,
                                            "src": "15526:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint32",
                                              "typeString": "uint32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 1064,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "15538:1:0",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          },
                                          "src": "15526:13:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "15506:34:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                          "typeString": "struct Niki.Checkpoint storage ref"
                                        }
                                      },
                                      "id": 1067,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "votes",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 45,
                                      "src": "15506:40:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15471:79:0"
                                },
                                {
                                  "assignments": [
                                    1072
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 1072,
                                      "name": "dstRepNew",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 1086,
                                      "src": "15569:16:0",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint96",
                                        "typeString": "uint96"
                                      },
                                      "typeName": {
                                        "id": 1071,
                                        "name": "uint96",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "15569:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      "value": null,
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 1078,
                                  "initialValue": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1074,
                                        "name": "dstRepOld",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1056,
                                        "src": "15594:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1075,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 990,
                                        "src": "15605:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "4e696b693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773",
                                        "id": 1076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15613:41:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_d2cb1bd6d09d45554df323b8879d3452c384621d511f155e8a6450a724d7756b",
                                          "typeString": "literal_string \"Niki::_moveVotes: vote amount overflows\""
                                        },
                                        "value": "Niki::_moveVotes: vote amount overflows"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_stringliteral_d2cb1bd6d09d45554df323b8879d3452c384621d511f155e8a6450a724d7756b",
                                          "typeString": "literal_string \"Niki::_moveVotes: vote amount overflows\""
                                        }
                                      ],
                                      "id": 1073,
                                      "name": "add96",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1237,
                                      "src": "15588:5:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$",
                                        "typeString": "function (uint96,uint96,string memory) pure returns (uint96)"
                                      }
                                    },
                                    "id": 1077,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "15588:67:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  },
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "15569:86:0"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1080,
                                        "name": "dstRep",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 988,
                                        "src": "15691:6:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1081,
                                        "name": "dstRepNum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1050,
                                        "src": "15699:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1082,
                                        "name": "dstRepOld",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1056,
                                        "src": "15710:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 1083,
                                        "name": "dstRepNew",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1072,
                                        "src": "15721:9:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        },
                                        {
                                          "typeIdentifier": "t_uint96",
                                          "typeString": "uint96"
                                        }
                                      ],
                                      "id": 1079,
                                      "name": "_writeCheckpoint",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1164,
                                      "src": "15674:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$",
                                        "typeString": "function (address,uint32,uint96,uint96)"
                                      }
                                    },
                                    "id": 1084,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "15674:57:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 1085,
                                  "nodeType": "ExpressionStatement",
                                  "src": "15674:57:0"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                "documentation": null,
                "id": 1091,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_moveDelegates",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 991,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 986,
                      "name": "srcRep",
                      "nodeType": "VariableDeclaration",
                      "scope": 1091,
                      "src": "14850:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 985,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14850:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 988,
                      "name": "dstRep",
                      "nodeType": "VariableDeclaration",
                      "scope": 1091,
                      "src": "14866:14:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 987,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14866:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 990,
                      "name": "amount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1091,
                      "src": "14882:13:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 989,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "14882:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "14849:47:0"
                },
                "returnParameters": {
                  "id": 992,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "14906:0:0"
                },
                "scope": 1273,
                "src": "14826:939:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1163,
                  "nodeType": "Block",
                  "src": "15882:520:0",
                  "statements": [
                    {
                      "assignments": [
                        1103
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1103,
                          "name": "blockNumber",
                          "nodeType": "VariableDeclaration",
                          "scope": 1163,
                          "src": "15891:18:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "typeName": {
                            "id": 1102,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "15891:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1109,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1105,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3966,
                              "src": "15919:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 1106,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "15919:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473",
                            "id": 1107,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15933:54:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_b8fb99a0bd5306611c1582ededed2ae04b9725fb4b292cbeb0fdd31bcee54632",
                              "typeString": "literal_string \"Niki::_writeCheckpoint: block number exceeds 32 bits\""
                            },
                            "value": "Niki::_writeCheckpoint: block number exceeds 32 bits"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_b8fb99a0bd5306611c1582ededed2ae04b9725fb4b292cbeb0fdd31bcee54632",
                              "typeString": "literal_string \"Niki::_writeCheckpoint: block number exceeds 32 bits\""
                            }
                          ],
                          "id": 1104,
                          "name": "safe32",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1187,
                          "src": "15912:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint32_$",
                            "typeString": "function (uint256,string memory) pure returns (uint32)"
                          }
                        },
                        "id": 1108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15912:76:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "15891:97:0"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1123,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 1112,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1110,
                            "name": "nCheckpoints",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1095,
                            "src": "16003:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1111,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16018:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "16003:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 1122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1113,
                                  "name": "checkpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 52,
                                  "src": "16023:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                    "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                  }
                                },
                                "id": 1115,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1114,
                                  "name": "delegatee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1093,
                                  "src": "16035:9:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16023:22:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                  "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                }
                              },
                              "id": 1119,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 1118,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1116,
                                  "name": "nCheckpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1095,
                                  "src": "16046:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1117,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16061:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "16046:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16023:40:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                "typeString": "struct Niki.Checkpoint storage ref"
                              }
                            },
                            "id": 1120,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "fromBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 43,
                            "src": "16023:50:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1121,
                            "name": "blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1103,
                            "src": "16077:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "16023:65:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "16003:85:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 1155,
                        "nodeType": "Block",
                        "src": "16176:152:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1145,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1136,
                                    "name": "checkpoints",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52,
                                    "src": "16189:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                      "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                    }
                                  },
                                  "id": 1139,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1137,
                                    "name": "delegatee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1093,
                                    "src": "16201:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16189:22:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                    "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                  }
                                },
                                "id": 1140,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1138,
                                  "name": "nCheckpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1095,
                                  "src": "16212:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "16189:36:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                  "typeString": "struct Niki.Checkpoint storage ref"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1142,
                                    "name": "blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1103,
                                    "src": "16239:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 1143,
                                    "name": "newVotes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1099,
                                    "src": "16252:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    },
                                    {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  ],
                                  "id": 1141,
                                  "name": "Checkpoint",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46,
                                  "src": "16228:10:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_Checkpoint_$46_storage_ptr_$",
                                    "typeString": "type(struct Niki.Checkpoint storage pointer)"
                                  }
                                },
                                "id": 1144,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16228:33:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Checkpoint_$46_memory",
                                  "typeString": "struct Niki.Checkpoint memory"
                                }
                              },
                              "src": "16189:72:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                "typeString": "struct Niki.Checkpoint storage ref"
                              }
                            },
                            "id": 1146,
                            "nodeType": "ExpressionStatement",
                            "src": "16189:72:0"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1153,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1147,
                                  "name": "numCheckpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 56,
                                  "src": "16274:14:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$",
                                    "typeString": "mapping(address => uint32)"
                                  }
                                },
                                "id": 1149,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1148,
                                  "name": "delegatee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1093,
                                  "src": "16289:9:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "16274:25:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 1152,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1150,
                                  "name": "nCheckpoints",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1095,
                                  "src": "16302:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1151,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16317:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "16302:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "16274:44:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "id": 1154,
                            "nodeType": "ExpressionStatement",
                            "src": "16274:44:0"
                          }
                        ]
                      },
                      "id": 1156,
                      "nodeType": "IfStatement",
                      "src": "15999:329:0",
                      "trueBody": {
                        "id": 1135,
                        "nodeType": "Block",
                        "src": "16090:80:0",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1133,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1124,
                                      "name": "checkpoints",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 52,
                                      "src": "16103:11:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$_$",
                                        "typeString": "mapping(address => mapping(uint32 => struct Niki.Checkpoint storage ref))"
                                      }
                                    },
                                    "id": 1129,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1125,
                                      "name": "delegatee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1093,
                                      "src": "16115:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "16103:22:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$46_storage_$",
                                      "typeString": "mapping(uint32 => struct Niki.Checkpoint storage ref)"
                                    }
                                  },
                                  "id": 1130,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    },
                                    "id": 1128,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 1126,
                                      "name": "nCheckpoints",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1095,
                                      "src": "16126:12:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint32",
                                        "typeString": "uint32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 1127,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "16141:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "16126:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16103:40:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Checkpoint_$46_storage",
                                    "typeString": "struct Niki.Checkpoint storage ref"
                                  }
                                },
                                "id": 1131,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "votes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 45,
                                "src": "16103:46:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 1132,
                                "name": "newVotes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1099,
                                "src": "16152:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint96",
                                  "typeString": "uint96"
                                }
                              },
                              "src": "16103:57:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "id": 1134,
                            "nodeType": "ExpressionStatement",
                            "src": "16103:57:0"
                          }
                        ]
                      }
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1158,
                            "name": "delegatee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1093,
                            "src": "16364:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1159,
                            "name": "oldVotes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1097,
                            "src": "16375:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1160,
                            "name": "newVotes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1099,
                            "src": "16385:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 1157,
                          "name": "DelegateVotesChanged",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 97,
                          "src": "16343:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                            "typeString": "function (address,uint256,uint256)"
                          }
                        },
                        "id": 1161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16343:51:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1162,
                      "nodeType": "EmitStatement",
                      "src": "16338:56:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1164,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_writeCheckpoint",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1100,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1093,
                      "name": "delegatee",
                      "nodeType": "VariableDeclaration",
                      "scope": 1164,
                      "src": "15799:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1092,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "15799:7:0",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1095,
                      "name": "nCheckpoints",
                      "nodeType": "VariableDeclaration",
                      "scope": 1164,
                      "src": "15818:19:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 1094,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15818:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1097,
                      "name": "oldVotes",
                      "nodeType": "VariableDeclaration",
                      "scope": 1164,
                      "src": "15839:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1096,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "15839:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1099,
                      "name": "newVotes",
                      "nodeType": "VariableDeclaration",
                      "scope": 1164,
                      "src": "15856:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1098,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "15856:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "15798:74:0"
                },
                "returnParameters": {
                  "id": 1101,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "15882:0:0"
                },
                "scope": 1273,
                "src": "15773:629:0",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1186,
                  "nodeType": "Block",
                  "src": "16493:78:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1178,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1174,
                              "name": "n",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1166,
                              "src": "16512:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_rational_4294967296_by_1",
                                "typeString": "int_const 4294967296"
                              },
                              "id": 1177,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1175,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16516:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "**",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3332",
                                "id": 1176,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16519:2:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_32_by_1",
                                  "typeString": "int_const 32"
                                },
                                "value": "32"
                              },
                              "src": "16516:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4294967296_by_1",
                                "typeString": "int_const 4294967296"
                              }
                            },
                            "src": "16512:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1179,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1168,
                            "src": "16523:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1173,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "16504:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1180,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16504:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1181,
                      "nodeType": "ExpressionStatement",
                      "src": "16504:32:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1183,
                            "name": "n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1166,
                            "src": "16561:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 1182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16554:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 1184,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16554:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "functionReturnParameters": 1172,
                      "id": 1185,
                      "nodeType": "Return",
                      "src": "16547:16:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1187,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "safe32",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1169,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1166,
                      "name": "n",
                      "nodeType": "VariableDeclaration",
                      "scope": 1187,
                      "src": "16426:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1165,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "16426:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1168,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 1187,
                      "src": "16434:26:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 1167,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "16434:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16425:36:0"
                },
                "returnParameters": {
                  "id": 1172,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1171,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1187,
                      "src": "16485:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 1170,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "16485:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16484:8:0"
                },
                "scope": 1273,
                "src": "16410:161:0",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1209,
                  "nodeType": "Block",
                  "src": "16662:78:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1201,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1197,
                              "name": "n",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1189,
                              "src": "16681:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_rational_79228162514264337593543950336_by_1",
                                "typeString": "int_const 79228162514264337593543950336"
                              },
                              "id": 1200,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1198,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16685:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "**",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "3936",
                                "id": 1199,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16688:2:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_96_by_1",
                                  "typeString": "int_const 96"
                                },
                                "value": "96"
                              },
                              "src": "16685:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_79228162514264337593543950336_by_1",
                                "typeString": "int_const 79228162514264337593543950336"
                              }
                            },
                            "src": "16681:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1202,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1191,
                            "src": "16692:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1196,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "16673:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1203,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16673:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1204,
                      "nodeType": "ExpressionStatement",
                      "src": "16673:32:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1206,
                            "name": "n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1189,
                            "src": "16730:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 1205,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16723:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint96_$",
                            "typeString": "type(uint96)"
                          },
                          "typeName": "uint96"
                        },
                        "id": 1207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16723:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 1195,
                      "id": 1208,
                      "nodeType": "Return",
                      "src": "16716:16:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1210,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "safe96",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1192,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1189,
                      "name": "n",
                      "nodeType": "VariableDeclaration",
                      "scope": 1210,
                      "src": "16595:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1188,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "16595:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1191,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 1210,
                      "src": "16603:26:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 1190,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "16603:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16594:36:0"
                },
                "returnParameters": {
                  "id": 1195,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1194,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1210,
                      "src": "16654:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1193,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16654:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16653:8:0"
                },
                "scope": 1273,
                "src": "16579:161:0",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1236,
                  "nodeType": "Block",
                  "src": "16842:94:0",
                  "statements": [
                    {
                      "assignments": [
                        1222
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1222,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 1236,
                          "src": "16853:8:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 1221,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "16853:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1226,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "id": 1225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1223,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1212,
                          "src": "16864:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1224,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1214,
                          "src": "16868:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "16864:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "16853:16:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            },
                            "id": 1230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1228,
                              "name": "c",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1222,
                              "src": "16888:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1229,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1212,
                              "src": "16893:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "src": "16888:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1231,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1216,
                            "src": "16896:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1227,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "16880:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1232,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16880:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1233,
                      "nodeType": "ExpressionStatement",
                      "src": "16880:29:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1234,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1222,
                        "src": "16927:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 1220,
                      "id": 1235,
                      "nodeType": "Return",
                      "src": "16920:8:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1237,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "add96",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1217,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1212,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 1237,
                      "src": "16763:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1211,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16763:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1214,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 1237,
                      "src": "16773:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1213,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16773:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1216,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 1237,
                      "src": "16783:26:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 1215,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "16783:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16762:48:0"
                },
                "returnParameters": {
                  "id": 1220,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1219,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1237,
                      "src": "16834:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1218,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16834:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16833:8:0"
                },
                "scope": 1273,
                "src": "16748:188:0",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1259,
                  "nodeType": "Block",
                  "src": "17038:71:0",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            },
                            "id": 1251,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1249,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1241,
                              "src": "17057:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1250,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1239,
                              "src": "17062:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "src": "17057:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1252,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1243,
                            "src": "17065:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1248,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "17049:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17049:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1254,
                      "nodeType": "ExpressionStatement",
                      "src": "17049:29:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "id": 1257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1255,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1239,
                          "src": "17096:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1256,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1241,
                          "src": "17100:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "17096:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "functionReturnParameters": 1247,
                      "id": 1258,
                      "nodeType": "Return",
                      "src": "17089:12:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1260,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "sub96",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1244,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1239,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 1260,
                      "src": "16959:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1238,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16959:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1241,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 1260,
                      "src": "16969:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1240,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "16969:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1243,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 1260,
                      "src": "16979:26:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 1242,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "16979:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "16958:48:0"
                },
                "returnParameters": {
                  "id": 1247,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1246,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1260,
                      "src": "17030:6:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 1245,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "17030:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "17029:8:0"
                },
                "scope": 1273,
                "src": "16944:165:0",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 1271,
                  "nodeType": "Block",
                  "src": "17168:102:0",
                  "statements": [
                    {
                      "assignments": [
                        1266
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1266,
                          "name": "chainId",
                          "nodeType": "VariableDeclaration",
                          "scope": 1271,
                          "src": "17179:15:0",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 1265,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "17179:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1267,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "17179:15:0"
                    },
                    {
                      "externalReferences": [
                        {
                          "chainId": {
                            "declaration": 1266,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "17216:7:0",
                            "valueSize": 1
                          }
                        }
                      ],
                      "id": 1268,
                      "nodeType": "InlineAssembly",
                      "operations": "{ chainId := chainid() }",
                      "src": "17205:33:0"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1269,
                        "name": "chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1266,
                        "src": "17255:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 1264,
                      "id": 1270,
                      "nodeType": "Return",
                      "src": "17248:14:0"
                    }
                  ]
                },
                "documentation": null,
                "id": 1272,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getChainId",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1261,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "17136:2:0"
                },
                "returnParameters": {
                  "id": 1264,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1263,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1272,
                      "src": "17162:4:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1262,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "17162:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "17161:6:0"
                },
                "scope": 1273,
                "src": "17117:153:0",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              }
            ],
            "scope": 1274,
            "src": "91:17182:0"
          }
        ],
        "src": "0:17275:0"
      }
    },
    "contracts/NikiFeeTo.sol": {
      "id": 1,
      "AST": {
        "absolutePath": "contracts/NikiFeeTo.sol",
        "exportedSymbols": {
          "INikiswapV2Pair": [
            1662
          ],
          "NikiFeeTo": [
            1626
          ]
        },
        "id": 1663,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 1275,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:1"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 1626,
            "linearizedBaseContracts": [
              1626
            ],
            "name": "NikiFeeTo",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "constant": false,
                "id": 1277,
                "name": "owner",
                "nodeType": "VariableDeclaration",
                "scope": 1626,
                "src": "274:20:1",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1276,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "274:7:1",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1279,
                "name": "feeRecipient",
                "nodeType": "VariableDeclaration",
                "scope": 1626,
                "src": "301:27:1",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1278,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "301:7:1",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "canonicalName": "NikiFeeTo.TokenAllowState",
                "id": 1284,
                "members": [
                  {
                    "constant": false,
                    "id": 1281,
                    "name": "allowed",
                    "nodeType": "VariableDeclaration",
                    "scope": 1284,
                    "src": "371:15:1",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "typeName": {
                      "id": 1280,
                      "name": "bool",
                      "nodeType": "ElementaryTypeName",
                      "src": "371:4:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1283,
                    "name": "disallowCount",
                    "nodeType": "VariableDeclaration",
                    "scope": 1284,
                    "src": "397:21:1",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    },
                    "typeName": {
                      "id": 1282,
                      "name": "uint128",
                      "nodeType": "ElementaryTypeName",
                      "src": "397:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "name": "TokenAllowState",
                "nodeType": "StructDefinition",
                "scope": 1626,
                "src": "337:89:1",
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1288,
                "name": "tokenAllowStates",
                "nodeType": "VariableDeclaration",
                "scope": 1626,
                "src": "432:59:1",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                  "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState)"
                },
                "typeName": {
                  "id": 1287,
                  "keyType": {
                    "id": 1285,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "440:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "432:35:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                    "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 1286,
                    "name": "TokenAllowState",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1284,
                    "src": "451:15:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                      "typeString": "struct NikiFeeTo.TokenAllowState"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "canonicalName": "NikiFeeTo.PairAllowState",
                "id": 1293,
                "members": [
                  {
                    "constant": false,
                    "id": 1290,
                    "name": "token0DisallowCount",
                    "nodeType": "VariableDeclaration",
                    "scope": 1293,
                    "src": "533:27:1",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    },
                    "typeName": {
                      "id": 1289,
                      "name": "uint128",
                      "nodeType": "ElementaryTypeName",
                      "src": "533:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1292,
                    "name": "token1DisallowCount",
                    "nodeType": "VariableDeclaration",
                    "scope": 1293,
                    "src": "571:27:1",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    },
                    "typeName": {
                      "id": 1291,
                      "name": "uint128",
                      "nodeType": "ElementaryTypeName",
                      "src": "571:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "name": "PairAllowState",
                "nodeType": "StructDefinition",
                "scope": 1626,
                "src": "500:106:1",
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1297,
                "name": "pairAllowStates",
                "nodeType": "VariableDeclaration",
                "scope": 1626,
                "src": "612:57:1",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_struct$_PairAllowState_$1293_storage_$",
                  "typeString": "mapping(address => struct NikiFeeTo.PairAllowState)"
                },
                "typeName": {
                  "id": 1296,
                  "keyType": {
                    "id": 1294,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "620:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "612:34:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_PairAllowState_$1293_storage_$",
                    "typeString": "mapping(address => struct NikiFeeTo.PairAllowState)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 1295,
                    "name": "PairAllowState",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1293,
                    "src": "631:14:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                      "typeString": "struct NikiFeeTo.PairAllowState"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1306,
                  "nodeType": "Block",
                  "src": "713:33:1",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1304,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1302,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1277,
                          "src": "724:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1303,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1299,
                          "src": "732:6:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "724:14:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1305,
                      "nodeType": "ExpressionStatement",
                      "src": "724:14:1"
                    }
                  ]
                },
                "documentation": null,
                "id": 1307,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1300,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1299,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1307,
                      "src": "690:14:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1298,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "690:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "689:16:1"
                },
                "returnParameters": {
                  "id": 1301,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "713:0:1"
                },
                "scope": 1626,
                "src": "678:68:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1324,
                  "nodeType": "Block",
                  "src": "795:108:1",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1316,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1313,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "814:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "814:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1315,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1277,
                              "src": "828:5:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "814:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f3a3a7365744f776e65723a206e6f7420616c6c6f776564",
                            "id": 1317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "835:34:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_881b1f577bfdcb77aca8ea68688ec9bc0a4f030f6a79abdb96f4213f6870d8c4",
                              "typeString": "literal_string \"NikiFeeTo::setOwner: not allowed\""
                            },
                            "value": "NikiFeeTo::setOwner: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_881b1f577bfdcb77aca8ea68688ec9bc0a4f030f6a79abdb96f4213f6870d8c4",
                              "typeString": "literal_string \"NikiFeeTo::setOwner: not allowed\""
                            }
                          ],
                          "id": 1312,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "806:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "806:64:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1319,
                      "nodeType": "ExpressionStatement",
                      "src": "806:64:1"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1320,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1277,
                          "src": "881:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1321,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1309,
                          "src": "889:6:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "881:14:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1323,
                      "nodeType": "ExpressionStatement",
                      "src": "881:14:1"
                    }
                  ]
                },
                "documentation": null,
                "id": 1325,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setOwner",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1310,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1309,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1325,
                      "src": "772:14:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1308,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "772:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "771:16:1"
                },
                "returnParameters": {
                  "id": 1311,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "795:0:1"
                },
                "scope": 1626,
                "src": "754:149:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1342,
                  "nodeType": "Block",
                  "src": "966:129:1",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1331,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "985:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "985:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1333,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1277,
                              "src": "999:5:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "985:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f3a3a736574466565526563697069656e743a206e6f7420616c6c6f776564",
                            "id": 1335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1006:41:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_fde7922211b1ee7997aeae2a7c9ac69730a32e7dd4f96cc7ad45533ad0341a4f",
                              "typeString": "literal_string \"NikiFeeTo::setFeeRecipient: not allowed\""
                            },
                            "value": "NikiFeeTo::setFeeRecipient: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_fde7922211b1ee7997aeae2a7c9ac69730a32e7dd4f96cc7ad45533ad0341a4f",
                              "typeString": "literal_string \"NikiFeeTo::setFeeRecipient: not allowed\""
                            }
                          ],
                          "id": 1330,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "977:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "977:71:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1337,
                      "nodeType": "ExpressionStatement",
                      "src": "977:71:1"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1338,
                          "name": "feeRecipient",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1279,
                          "src": "1059:12:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1339,
                          "name": "feeRecipient_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1327,
                          "src": "1074:13:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1059:28:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1341,
                      "nodeType": "ExpressionStatement",
                      "src": "1059:28:1"
                    }
                  ]
                },
                "documentation": null,
                "id": 1343,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeRecipient",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1328,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1327,
                      "name": "feeRecipient_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1343,
                      "src": "936:21:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1326,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "936:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "935:23:1"
                },
                "returnParameters": {
                  "id": 1329,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "966:0:1"
                },
                "scope": 1626,
                "src": "911:184:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1399,
                  "nodeType": "Block",
                  "src": "1170:841:1",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1354,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1351,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1189:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1352,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1189:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1353,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1277,
                              "src": "1203:5:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1189:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f3a3a757064617465546f6b656e416c6c6f7753746174653a206e6f7420616c6c6f776564",
                            "id": 1355,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1210:47:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_578eff435af2a6215b7787e8d96d20be841829119ae126843612f4cbbe916215",
                              "typeString": "literal_string \"NikiFeeTo::updateTokenAllowState: not allowed\""
                            },
                            "value": "NikiFeeTo::updateTokenAllowState: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_578eff435af2a6215b7787e8d96d20be841829119ae126843612f4cbbe916215",
                              "typeString": "literal_string \"NikiFeeTo::updateTokenAllowState: not allowed\""
                            }
                          ],
                          "id": 1350,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1181:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1356,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1181:77:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1357,
                      "nodeType": "ExpressionStatement",
                      "src": "1181:77:1"
                    },
                    {
                      "assignments": [
                        1359
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1359,
                          "name": "tokenAllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1399,
                          "src": "1269:39:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                            "typeString": "struct NikiFeeTo.TokenAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1358,
                            "name": "TokenAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1284,
                            "src": "1269:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1363,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1360,
                          "name": "tokenAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1288,
                          "src": "1311:16:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState storage ref)"
                          }
                        },
                        "id": 1362,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1361,
                          "name": "token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1345,
                          "src": "1328:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1311:23:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage",
                          "typeString": "struct NikiFeeTo.TokenAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1269:65:1"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1364,
                          "name": "allowed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1347,
                          "src": "1413:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1365,
                            "name": "tokenAllowState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1359,
                            "src": "1424:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                            }
                          },
                          "id": 1366,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "allowed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1281,
                          "src": "1424:23:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1413:34:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 1398,
                      "nodeType": "IfStatement",
                      "src": "1409:595:1",
                      "trueBody": {
                        "id": 1397,
                        "nodeType": "Block",
                        "src": "1449:555:1",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1372,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1368,
                                  "name": "tokenAllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1359,
                                  "src": "1464:15:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1370,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "allowed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1281,
                                "src": "1464:23:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 1371,
                                "name": "allowed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1347,
                                "src": "1490:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "1464:33:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 1373,
                            "nodeType": "ExpressionStatement",
                            "src": "1464:33:1"
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              },
                              "id": 1377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1374,
                                  "name": "tokenAllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1359,
                                  "src": "1792:15:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1375,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "disallowCount",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1283,
                                "src": "1792:29:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 1376,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1825:1:1",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "1792:34:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 1387,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1385,
                                  "name": "allowed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1347,
                                  "src": "1906:7:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "66616c7365",
                                  "id": 1386,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1917:5:1",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "false"
                                },
                                "src": "1906:16:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 1395,
                              "nodeType": "IfStatement",
                              "src": "1902:91:1",
                              "trueBody": {
                                "id": 1394,
                                "nodeType": "Block",
                                "src": "1924:69:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1392,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1388,
                                          "name": "tokenAllowState",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1359,
                                          "src": "1943:15:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                            "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                          }
                                        },
                                        "id": 1390,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberName": "disallowCount",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 1283,
                                        "src": "1943:29:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint128",
                                          "typeString": "uint128"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 1391,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1976:1:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "1943:34:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "id": 1393,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1943:34:1"
                                  }
                                ]
                              }
                            },
                            "id": 1396,
                            "nodeType": "IfStatement",
                            "src": "1788:205:1",
                            "trueBody": {
                              "id": 1384,
                              "nodeType": "Block",
                              "src": "1828:68:1",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1382,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1378,
                                        "name": "tokenAllowState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1359,
                                        "src": "1847:15:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                          "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                        }
                                      },
                                      "id": 1380,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "memberName": "disallowCount",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1283,
                                      "src": "1847:29:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 1381,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1879:1:1",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "1847:33:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint128",
                                      "typeString": "uint128"
                                    }
                                  },
                                  "id": 1383,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1847:33:1"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                "documentation": null,
                "id": 1400,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "updateTokenAllowState",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1348,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1345,
                      "name": "token",
                      "nodeType": "VariableDeclaration",
                      "scope": 1400,
                      "src": "1134:13:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1344,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1134:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1347,
                      "name": "allowed",
                      "nodeType": "VariableDeclaration",
                      "scope": 1400,
                      "src": "1149:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 1346,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1149:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1133:29:1"
                },
                "returnParameters": {
                  "id": 1349,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1170:0:1"
                },
                "scope": 1626,
                "src": "1103:908:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1427,
                  "nodeType": "Block",
                  "src": "2097:123:1",
                  "statements": [
                    {
                      "body": {
                        "id": 1425,
                        "nodeType": "Block",
                        "src": "2145:68:1",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1419,
                                    "name": "tokens",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1403,
                                    "src": "2182:6:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 1421,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1420,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1409,
                                    "src": "2189:1:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2182:9:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1422,
                                  "name": "allowed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1405,
                                  "src": "2193:7:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                ],
                                "id": 1418,
                                "name": "updateTokenAllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1400,
                                "src": "2160:21:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$",
                                  "typeString": "function (address,bool)"
                                }
                              },
                              "id": 1423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2160:41:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1424,
                            "nodeType": "ExpressionStatement",
                            "src": "2160:41:1"
                          }
                        ]
                      },
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1411,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1409,
                          "src": "2121:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1412,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1403,
                            "src": "2125:6:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "id": 1413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2125:13:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2121:17:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 1426,
                      "initializationExpression": {
                        "assignments": [
                          1409
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1409,
                            "name": "i",
                            "nodeType": "VariableDeclaration",
                            "scope": 1426,
                            "src": "2113:6:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 1408,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2113:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1410,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2113:6:1"
                      },
                      "loopExpression": {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2140:3:1",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 1415,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1409,
                            "src": "2140:1:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1417,
                        "nodeType": "ExpressionStatement",
                        "src": "2140:3:1"
                      },
                      "nodeType": "ForStatement",
                      "src": "2108:105:1"
                    }
                  ]
                },
                "documentation": null,
                "id": 1428,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "updateTokenAllowStates",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1406,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1403,
                      "name": "tokens",
                      "nodeType": "VariableDeclaration",
                      "scope": 1428,
                      "src": "2051:23:1",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1401,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2051:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1402,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2051:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1405,
                      "name": "allowed",
                      "nodeType": "VariableDeclaration",
                      "scope": 1428,
                      "src": "2076:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 1404,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2076:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2050:39:1"
                },
                "returnParameters": {
                  "id": 1407,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "2097:0:1"
                },
                "scope": 1626,
                "src": "2019:201:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1539,
                  "nodeType": "Block",
                  "src": "2288:1873:1",
                  "statements": [
                    {
                      "assignments": [
                        1436
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1436,
                          "name": "pairAllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1539,
                          "src": "2299:37:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                            "typeString": "struct NikiFeeTo.PairAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1435,
                            "name": "PairAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1293,
                            "src": "2299:14:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                              "typeString": "struct NikiFeeTo.PairAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1440,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1437,
                          "name": "pairAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1297,
                          "src": "2339:15:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_PairAllowState_$1293_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.PairAllowState storage ref)"
                          }
                        },
                        "id": 1439,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1438,
                          "name": "pair",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1430,
                          "src": "2355:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2339:21:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PairAllowState_$1293_storage",
                          "typeString": "struct NikiFeeTo.PairAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2299:61:1"
                    },
                    {
                      "assignments": [
                        1442
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1442,
                          "name": "token0AllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1539,
                          "src": "2371:40:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                            "typeString": "struct NikiFeeTo.TokenAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1441,
                            "name": "TokenAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1284,
                            "src": "2371:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1450,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1443,
                          "name": "tokenAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1288,
                          "src": "2414:16:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState storage ref)"
                          }
                        },
                        "id": 1449,
                        "indexExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1445,
                                  "name": "pair",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1430,
                                  "src": "2447:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 1444,
                                "name": "INikiswapV2Pair",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "2431:15:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                  "typeString": "type(contract INikiswapV2Pair)"
                                }
                              },
                              "id": 1446,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2431:21:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                "typeString": "contract INikiswapV2Pair"
                              }
                            },
                            "id": 1447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token0",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1631,
                            "src": "2431:28:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 1448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2431:30:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2414:48:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage",
                          "typeString": "struct NikiFeeTo.TokenAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2371:91:1"
                    },
                    {
                      "assignments": [
                        1452
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1452,
                          "name": "token1AllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1539,
                          "src": "2473:40:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                            "typeString": "struct NikiFeeTo.TokenAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1451,
                            "name": "TokenAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1284,
                            "src": "2473:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1460,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1453,
                          "name": "tokenAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1288,
                          "src": "2516:16:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState storage ref)"
                          }
                        },
                        "id": 1459,
                        "indexExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1455,
                                  "name": "pair",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1430,
                                  "src": "2549:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 1454,
                                "name": "INikiswapV2Pair",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "2533:15:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                  "typeString": "type(contract INikiswapV2Pair)"
                                }
                              },
                              "id": 1456,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2533:21:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                "typeString": "contract INikiswapV2Pair"
                              }
                            },
                            "id": 1457,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token1",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1636,
                            "src": "2533:28:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 1458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2533:30:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2516:48:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage",
                          "typeString": "struct NikiFeeTo.TokenAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2473:91:1"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1481,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 1475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 1469,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 1464,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1461,
                                  "name": "token0AllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1442,
                                  "src": "2948:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1462,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "allowed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1281,
                                "src": "2948:24:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 1463,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2976:5:1",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "src": "2948:33:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 1468,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1465,
                                  "name": "token1AllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1452,
                                  "src": "2998:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1466,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "allowed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1281,
                                "src": "2998:24:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 1467,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3026:5:1",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "src": "2998:33:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "2948:83:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            },
                            "id": 1474,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1470,
                                "name": "token0AllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1442,
                                "src": "3048:16:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                  "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                }
                              },
                              "id": 1471,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "disallowCount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1283,
                              "src": "3048:30:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1472,
                                "name": "pairAllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1436,
                                "src": "3081:14:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                  "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                                }
                              },
                              "id": 1473,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "token0DisallowCount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1290,
                              "src": "3081:34:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            },
                            "src": "3048:67:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "2948:167:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          },
                          "id": 1480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1476,
                              "name": "token1AllowState",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1452,
                              "src": "3132:16:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                              }
                            },
                            "id": 1477,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "disallowCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1283,
                            "src": "3132:30:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1478,
                              "name": "pairAllowState",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1436,
                              "src": "3165:14:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                              }
                            },
                            "id": 1479,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token1DisallowCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1292,
                            "src": "3165:34:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          },
                          "src": "3132:67:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "2948:251:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 1538,
                      "nodeType": "IfStatement",
                      "src": "2930:1224:1",
                      "trueBody": {
                        "id": 1537,
                        "nodeType": "Block",
                        "src": "3211:943:1",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1491,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 1482,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1433,
                                "src": "3226:5:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1488,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3994,
                                        "src": "3274:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_NikiFeeTo_$1626",
                                          "typeString": "contract NikiFeeTo"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_NikiFeeTo_$1626",
                                          "typeString": "contract NikiFeeTo"
                                        }
                                      ],
                                      "id": 1487,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "3266:7:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": "address"
                                    },
                                    "id": 1489,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3266:13:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1484,
                                        "name": "pair",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1430,
                                        "src": "3250:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 1483,
                                      "name": "INikiswapV2Pair",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1662,
                                      "src": "3234:15:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                        "typeString": "type(contract INikiswapV2Pair)"
                                      }
                                    },
                                    "id": 1485,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3234:21:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                      "typeString": "contract INikiswapV2Pair"
                                    }
                                  },
                                  "id": 1486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balanceOf",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1643,
                                  "src": "3234:31:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                    "typeString": "function (address) view external returns (uint256)"
                                  }
                                },
                                "id": 1490,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3234:46:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3226:54:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1492,
                            "nodeType": "ExpressionStatement",
                            "src": "3226:54:1"
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1495,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1493,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1433,
                                "src": "3299:5:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 1494,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3307:1:1",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "3299:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1514,
                            "nodeType": "IfStatement",
                            "src": "3295:348:1",
                            "trueBody": {
                              "id": 1513,
                              "nodeType": "Block",
                              "src": "3310:333:1",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 1501,
                                            "name": "pair",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1430,
                                            "src": "3563:4:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "argumentTypes": null,
                                            "id": 1502,
                                            "name": "value",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1433,
                                            "src": "3569:5:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 1498,
                                                "name": "pair",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1430,
                                                "src": "3548:4:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "id": 1497,
                                              "name": "INikiswapV2Pair",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 1662,
                                              "src": "3532:15:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                                "typeString": "type(contract INikiswapV2Pair)"
                                              }
                                            },
                                            "id": 1499,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3532:21:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                              "typeString": "contract INikiswapV2Pair"
                                            }
                                          },
                                          "id": 1500,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "transfer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 1652,
                                          "src": "3532:30:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                            "typeString": "function (address,uint256) external returns (bool)"
                                          }
                                        },
                                        "id": 1503,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3532:43:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "id": 1496,
                                      "name": "assert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3965,
                                      "src": "3525:6:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                        "typeString": "function (bool) pure"
                                      }
                                    },
                                    "id": 1504,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3525:51:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 1505,
                                  "nodeType": "ExpressionStatement",
                                  "src": "3525:51:1"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1510,
                                        "name": "pair",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1430,
                                        "src": "3622:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 1507,
                                            "name": "pair",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1430,
                                            "src": "3611:4:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "id": 1506,
                                          "name": "INikiswapV2Pair",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1662,
                                          "src": "3595:15:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                            "typeString": "type(contract INikiswapV2Pair)"
                                          }
                                        },
                                        "id": 1508,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3595:21:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                          "typeString": "contract INikiswapV2Pair"
                                        }
                                      },
                                      "id": 1509,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "burn",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1661,
                                      "src": "3595:26:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$_t_uint256_$",
                                        "typeString": "function (address) external returns (uint256,uint256)"
                                      }
                                    },
                                    "id": 1511,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3595:32:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                      "typeString": "tuple(uint256,uint256)"
                                    }
                                  },
                                  "id": 1512,
                                  "nodeType": "ExpressionStatement",
                                  "src": "3595:32:1"
                                }
                              ]
                            }
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1515,
                                "name": "token0AllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1442,
                                "src": "3766:16:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                  "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                }
                              },
                              "id": 1516,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "allowed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1281,
                              "src": "3766:24:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1525,
                            "nodeType": "IfStatement",
                            "src": "3762:132:1",
                            "trueBody": {
                              "id": 1524,
                              "nodeType": "Block",
                              "src": "3792:102:1",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1522,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1517,
                                        "name": "pairAllowState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1436,
                                        "src": "3811:14:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                          "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                                        }
                                      },
                                      "id": 1519,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "memberName": "token0DisallowCount",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1290,
                                      "src": "3811:34:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1520,
                                        "name": "token0AllowState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1442,
                                        "src": "3848:16:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                          "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                        }
                                      },
                                      "id": 1521,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "disallowCount",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1283,
                                      "src": "3848:30:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "src": "3811:67:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint128",
                                      "typeString": "uint128"
                                    }
                                  },
                                  "id": 1523,
                                  "nodeType": "ExpressionStatement",
                                  "src": "3811:67:1"
                                }
                              ]
                            }
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1526,
                                "name": "token1AllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1452,
                                "src": "4015:16:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                  "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                }
                              },
                              "id": 1527,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "allowed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1281,
                              "src": "4015:24:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1536,
                            "nodeType": "IfStatement",
                            "src": "4011:132:1",
                            "trueBody": {
                              "id": 1535,
                              "nodeType": "Block",
                              "src": "4041:102:1",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1533,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1528,
                                        "name": "pairAllowState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1436,
                                        "src": "4060:14:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                          "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                                        }
                                      },
                                      "id": 1530,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "memberName": "token1DisallowCount",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1292,
                                      "src": "4060:34:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1531,
                                        "name": "token1AllowState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1452,
                                        "src": "4097:16:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                          "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                        }
                                      },
                                      "id": 1532,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "disallowCount",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1283,
                                      "src": "4097:30:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    },
                                    "src": "4060:67:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint128",
                                      "typeString": "uint128"
                                    }
                                  },
                                  "id": 1534,
                                  "nodeType": "ExpressionStatement",
                                  "src": "4060:67:1"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                "documentation": null,
                "id": 1540,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "renounce",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1431,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1430,
                      "name": "pair",
                      "nodeType": "VariableDeclaration",
                      "scope": 1540,
                      "src": "2246:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1429,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2246:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2245:14:1"
                },
                "returnParameters": {
                  "id": 1434,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1433,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1540,
                      "src": "2276:10:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1432,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2276:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2275:12:1"
                },
                "scope": 1626,
                "src": "2228:1933:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1624,
                  "nodeType": "Block",
                  "src": "4226:1297:1",
                  "statements": [
                    {
                      "assignments": [
                        1548
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1548,
                          "name": "pairAllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1624,
                          "src": "4237:37:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                            "typeString": "struct NikiFeeTo.PairAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1547,
                            "name": "PairAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1293,
                            "src": "4237:14:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                              "typeString": "struct NikiFeeTo.PairAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1552,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1549,
                          "name": "pairAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1297,
                          "src": "4277:15:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_PairAllowState_$1293_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.PairAllowState storage ref)"
                          }
                        },
                        "id": 1551,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1550,
                          "name": "pair",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1542,
                          "src": "4293:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4277:21:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PairAllowState_$1293_storage",
                          "typeString": "struct NikiFeeTo.PairAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4237:61:1"
                    },
                    {
                      "assignments": [
                        1554
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1554,
                          "name": "token0AllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1624,
                          "src": "4309:40:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                            "typeString": "struct NikiFeeTo.TokenAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1553,
                            "name": "TokenAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1284,
                            "src": "4309:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1562,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1555,
                          "name": "tokenAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1288,
                          "src": "4352:16:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState storage ref)"
                          }
                        },
                        "id": 1561,
                        "indexExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1557,
                                  "name": "pair",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1542,
                                  "src": "4385:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 1556,
                                "name": "INikiswapV2Pair",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "4369:15:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                  "typeString": "type(contract INikiswapV2Pair)"
                                }
                              },
                              "id": 1558,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4369:21:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                "typeString": "contract INikiswapV2Pair"
                              }
                            },
                            "id": 1559,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token0",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1631,
                            "src": "4369:28:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 1560,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4369:30:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4352:48:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage",
                          "typeString": "struct NikiFeeTo.TokenAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4309:91:1"
                    },
                    {
                      "assignments": [
                        1564
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1564,
                          "name": "token1AllowState",
                          "nodeType": "VariableDeclaration",
                          "scope": 1624,
                          "src": "4411:40:1",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                            "typeString": "struct NikiFeeTo.TokenAllowState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1563,
                            "name": "TokenAllowState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1284,
                            "src": "4411:15:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                              "typeString": "struct NikiFeeTo.TokenAllowState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 1572,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1565,
                          "name": "tokenAllowStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1288,
                          "src": "4454:16:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenAllowState_$1284_storage_$",
                            "typeString": "mapping(address => struct NikiFeeTo.TokenAllowState storage ref)"
                          }
                        },
                        "id": 1571,
                        "indexExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1567,
                                  "name": "pair",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1542,
                                  "src": "4487:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 1566,
                                "name": "INikiswapV2Pair",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "4471:15:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                  "typeString": "type(contract INikiswapV2Pair)"
                                }
                              },
                              "id": 1568,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4471:21:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                "typeString": "contract INikiswapV2Pair"
                              }
                            },
                            "id": 1569,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token1",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1636,
                            "src": "4471:28:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 1570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4471:30:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4454:48:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage",
                          "typeString": "struct NikiFeeTo.TokenAllowState storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4411:91:1"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 1589,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 1583,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 1577,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1573,
                                  "name": "token0AllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1554,
                                  "src": "4909:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1574,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "allowed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1281,
                                "src": "4909:24:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1575,
                                  "name": "token1AllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1564,
                                  "src": "4950:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1576,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "allowed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1281,
                                "src": "4950:24:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "4909:65:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              },
                              "id": 1582,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1578,
                                  "name": "token0AllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1554,
                                  "src": "4991:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                    "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                  }
                                },
                                "id": 1579,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "disallowCount",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1283,
                                "src": "4991:30:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1580,
                                  "name": "pairAllowState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1548,
                                  "src": "5025:14:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                    "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                                  }
                                },
                                "id": 1581,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "token0DisallowCount",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1290,
                                "src": "5025:34:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              },
                              "src": "4991:68:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "4909:150:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            },
                            "id": 1588,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1584,
                                "name": "token1AllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1564,
                                "src": "5076:16:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_TokenAllowState_$1284_storage_ptr",
                                  "typeString": "struct NikiFeeTo.TokenAllowState storage pointer"
                                }
                              },
                              "id": 1585,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "disallowCount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1283,
                              "src": "5076:30:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1586,
                                "name": "pairAllowState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1548,
                                "src": "5110:14:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PairAllowState_$1293_storage_ptr",
                                  "typeString": "struct NikiFeeTo.PairAllowState storage pointer"
                                }
                              },
                              "id": 1587,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "token1DisallowCount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1292,
                              "src": "5110:34:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            },
                            "src": "5076:68:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4909:235:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1594,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1590,
                            "name": "feeRecipient",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1279,
                            "src": "5161:12:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 1592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5185:1:1",
                                "subdenomination": null,
                                "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": 1591,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5177:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1593,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5177:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "5161:26:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4909:278:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 1623,
                      "nodeType": "IfStatement",
                      "src": "4891:625:1",
                      "trueBody": {
                        "id": 1622,
                        "nodeType": "Block",
                        "src": "5199:317:1",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 1605,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 1596,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1545,
                                "src": "5214:5:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1602,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3994,
                                        "src": "5262:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_NikiFeeTo_$1626",
                                          "typeString": "contract NikiFeeTo"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_NikiFeeTo_$1626",
                                          "typeString": "contract NikiFeeTo"
                                        }
                                      ],
                                      "id": 1601,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5254:7:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": "address"
                                    },
                                    "id": 1603,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5254:13:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 1598,
                                        "name": "pair",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1542,
                                        "src": "5238:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 1597,
                                      "name": "INikiswapV2Pair",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1662,
                                      "src": "5222:15:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                        "typeString": "type(contract INikiswapV2Pair)"
                                      }
                                    },
                                    "id": 1599,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5222:21:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                      "typeString": "contract INikiswapV2Pair"
                                    }
                                  },
                                  "id": 1600,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balanceOf",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1643,
                                  "src": "5222:31:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                    "typeString": "function (address) view external returns (uint256)"
                                  }
                                },
                                "id": 1604,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5222:46:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5214:54:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1606,
                            "nodeType": "ExpressionStatement",
                            "src": "5214:54:1"
                          },
                          {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1609,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1607,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1545,
                                "src": "5287:5:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 1608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5295:1:1",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "5287:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": null,
                            "id": 1621,
                            "nodeType": "IfStatement",
                            "src": "5283:222:1",
                            "trueBody": {
                              "id": 1620,
                              "nodeType": "Block",
                              "src": "5298:207:1",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 1615,
                                            "name": "feeRecipient",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1279,
                                            "src": "5468:12:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "argumentTypes": null,
                                            "id": 1616,
                                            "name": "value",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1545,
                                            "src": "5482:5:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 1612,
                                                "name": "pair",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1542,
                                                "src": "5453:4:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "id": 1611,
                                              "name": "INikiswapV2Pair",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 1662,
                                              "src": "5437:15:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Pair_$1662_$",
                                                "typeString": "type(contract INikiswapV2Pair)"
                                              }
                                            },
                                            "id": 1613,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5437:21:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_INikiswapV2Pair_$1662",
                                              "typeString": "contract INikiswapV2Pair"
                                            }
                                          },
                                          "id": 1614,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "transfer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 1652,
                                          "src": "5437:30:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                            "typeString": "function (address,uint256) external returns (bool)"
                                          }
                                        },
                                        "id": 1617,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5437:51:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "id": 1610,
                                      "name": "assert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3965,
                                      "src": "5430:6:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                        "typeString": "function (bool) pure"
                                      }
                                    },
                                    "id": 1618,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5430:59:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 1619,
                                  "nodeType": "ExpressionStatement",
                                  "src": "5430:59:1"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                "documentation": null,
                "id": 1625,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "claim",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1543,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1542,
                      "name": "pair",
                      "nodeType": "VariableDeclaration",
                      "scope": 1625,
                      "src": "4184:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1541,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4184:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4183:14:1"
                },
                "returnParameters": {
                  "id": 1546,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1545,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1625,
                      "src": "4214:10:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1544,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4214:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4213:12:1"
                },
                "scope": 1626,
                "src": "4169:1354:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              }
            ],
            "scope": 1663,
            "src": "248:5278:1"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 1662,
            "linearizedBaseContracts": [
              1662
            ],
            "name": "INikiswapV2Pair",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 1631,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "token0",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1627,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "5578:2:1"
                },
                "returnParameters": {
                  "id": 1630,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1629,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1631,
                      "src": "5604:7:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1628,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5604:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5603:9:1"
                },
                "scope": 1662,
                "src": "5563:50:1",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 1636,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "token1",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1632,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "5634:2:1"
                },
                "returnParameters": {
                  "id": 1635,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1634,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1636,
                      "src": "5660:7:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1633,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5660:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5659:9:1"
                },
                "scope": 1662,
                "src": "5619:50:1",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 1643,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "balanceOf",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1639,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1638,
                      "name": "owner",
                      "nodeType": "VariableDeclaration",
                      "scope": 1643,
                      "src": "5694:13:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1637,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5694:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5693:15:1"
                },
                "returnParameters": {
                  "id": 1642,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1641,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1643,
                      "src": "5732:4:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1640,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5732:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5731:6:1"
                },
                "scope": 1662,
                "src": "5675:63:1",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 1652,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "transfer",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1648,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1645,
                      "name": "to",
                      "nodeType": "VariableDeclaration",
                      "scope": 1652,
                      "src": "5762:10:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1644,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5762:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1647,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1652,
                      "src": "5774:10:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1646,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5774:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5761:24:1"
                },
                "returnParameters": {
                  "id": 1651,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1650,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1652,
                      "src": "5804:4:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 1649,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "5804:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5803:6:1"
                },
                "scope": 1662,
                "src": "5744:66:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 1661,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "burn",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1655,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1654,
                      "name": "to",
                      "nodeType": "VariableDeclaration",
                      "scope": 1661,
                      "src": "5830:10:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1653,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5830:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5829:12:1"
                },
                "returnParameters": {
                  "id": 1660,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1657,
                      "name": "amount0",
                      "nodeType": "VariableDeclaration",
                      "scope": 1661,
                      "src": "5860:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1656,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5860:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1659,
                      "name": "amount1",
                      "nodeType": "VariableDeclaration",
                      "scope": 1661,
                      "src": "5874:12:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1658,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5874:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5859:28:1"
                },
                "scope": 1662,
                "src": "5816:72:1",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 1663,
            "src": "5530:361:1"
          }
        ],
        "src": "0:5893:1"
      }
    },
    "contracts/NikiFeeToSetter.sol": {
      "id": 2,
      "AST": {
        "absolutePath": "contracts/NikiFeeToSetter.sol",
        "exportedSymbols": {
          "INikiswapV2Factory": [
            1801
          ],
          "NikiFeeToSetter": [
            1790
          ]
        },
        "id": 1802,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 1664,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:2"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 1790,
            "linearizedBaseContracts": [
              1790
            ],
            "name": "NikiFeeToSetter",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "constant": false,
                "id": 1666,
                "name": "factory",
                "nodeType": "VariableDeclaration",
                "scope": 1790,
                "src": "200:22:2",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1665,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "200:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1668,
                "name": "vestingEnd",
                "nodeType": "VariableDeclaration",
                "scope": 1790,
                "src": "229:22:2",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1667,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "229:4:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1670,
                "name": "feeTo",
                "nodeType": "VariableDeclaration",
                "scope": 1790,
                "src": "258:20:2",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1669,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "258:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1672,
                "name": "owner",
                "nodeType": "VariableDeclaration",
                "scope": 1790,
                "src": "287:20:2",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1671,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "287:7:2",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1707,
                  "nodeType": "Block",
                  "src": "403:238:2",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1684,
                              "name": "vestingEnd_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1676,
                              "src": "422:11:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1685,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "436:5:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 1686,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "436:15:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "422:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
                            "id": 1688,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "453:65:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8972766fffe1272cd0dbb19029a9c3b41920938f1f29491011db5ac9ed46070b",
                              "typeString": "literal_string \"NikiFeeToSetter::constructor: vesting must end after deployment\""
                            },
                            "value": "NikiFeeToSetter::constructor: vesting must end after deployment"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_8972766fffe1272cd0dbb19029a9c3b41920938f1f29491011db5ac9ed46070b",
                              "typeString": "literal_string \"NikiFeeToSetter::constructor: vesting must end after deployment\""
                            }
                          ],
                          "id": 1683,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "414:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "414:105:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1690,
                      "nodeType": "ExpressionStatement",
                      "src": "414:105:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1693,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1691,
                          "name": "factory",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1666,
                          "src": "530:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1692,
                          "name": "factory_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1674,
                          "src": "540:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "530:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1694,
                      "nodeType": "ExpressionStatement",
                      "src": "530:18:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1695,
                          "name": "vestingEnd",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1668,
                          "src": "559:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1696,
                          "name": "vestingEnd_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1676,
                          "src": "572:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "559:24:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1698,
                      "nodeType": "ExpressionStatement",
                      "src": "559:24:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1701,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1699,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1672,
                          "src": "594:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1700,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1678,
                          "src": "602:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "594:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1702,
                      "nodeType": "ExpressionStatement",
                      "src": "594:14:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1703,
                          "name": "feeTo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1670,
                          "src": "619:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1704,
                          "name": "feeTo_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1680,
                          "src": "627:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "619:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1706,
                      "nodeType": "ExpressionStatement",
                      "src": "619:14:2"
                    }
                  ]
                },
                "documentation": null,
                "id": 1708,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1681,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1674,
                      "name": "factory_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1708,
                      "src": "328:16:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1673,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "328:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1676,
                      "name": "vestingEnd_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1708,
                      "src": "346:16:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1675,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "346:4:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1678,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1708,
                      "src": "364:14:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1677,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "364:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1680,
                      "name": "feeTo_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1708,
                      "src": "380:14:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1679,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "380:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "327:68:2"
                },
                "returnParameters": {
                  "id": 1682,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "403:0:2"
                },
                "scope": 1790,
                "src": "316:325:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1725,
                  "nodeType": "Block",
                  "src": "740:114:2",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1714,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "759:3:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1715,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "759:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1716,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1672,
                              "src": "773:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "759:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f776564",
                            "id": 1718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "780:40:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_0fa1618984f9954c1e0f51a597bd7ba5dd1a3d1416502b83e115c1dc6fd9525e",
                              "typeString": "literal_string \"NikiFeeToSetter::setOwner: not allowed\""
                            },
                            "value": "NikiFeeToSetter::setOwner: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_0fa1618984f9954c1e0f51a597bd7ba5dd1a3d1416502b83e115c1dc6fd9525e",
                              "typeString": "literal_string \"NikiFeeToSetter::setOwner: not allowed\""
                            }
                          ],
                          "id": 1713,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "751:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "751:70:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1720,
                      "nodeType": "ExpressionStatement",
                      "src": "751:70:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1721,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1672,
                          "src": "832:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 1722,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1710,
                          "src": "840:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "832:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1724,
                      "nodeType": "ExpressionStatement",
                      "src": "832:14:2"
                    }
                  ]
                },
                "documentation": null,
                "id": 1726,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setOwner",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1711,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1710,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1726,
                      "src": "717:14:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1709,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "717:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "716:16:2"
                },
                "returnParameters": {
                  "id": 1712,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "740:0:2"
                },
                "scope": 1790,
                "src": "699:155:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1754,
                  "nodeType": "Block",
                  "src": "972:260:2",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1735,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1732,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "991:5:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 1733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "991:15:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1734,
                              "name": "vestingEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1668,
                              "src": "1010:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "991:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574",
                            "id": 1736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1022:47:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f47925587f43f399f906312179eced196448676b92b13333c51fb45535ebd060",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not time yet\""
                            },
                            "value": "NikiFeeToSetter::setFeeToSetter: not time yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f47925587f43f399f906312179eced196448676b92b13333c51fb45535ebd060",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not time yet\""
                            }
                          ],
                          "id": 1731,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "983:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "983:87:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1738,
                      "nodeType": "ExpressionStatement",
                      "src": "983:87:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1740,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1089:3:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1089:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1742,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1672,
                              "src": "1103:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1089:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f776564",
                            "id": 1744,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1110:46:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_5d59ac35dec36f8af00f18d72ba51e1ee4a87d002d09ae1dc994f5cf4c9dd141",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not allowed\""
                            },
                            "value": "NikiFeeToSetter::setFeeToSetter: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_5d59ac35dec36f8af00f18d72ba51e1ee4a87d002d09ae1dc994f5cf4c9dd141",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not allowed\""
                            }
                          ],
                          "id": 1739,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1081:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1081:76:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1746,
                      "nodeType": "ExpressionStatement",
                      "src": "1081:76:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1751,
                            "name": "feeToSetter_",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1728,
                            "src": "1211:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1748,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1666,
                                "src": "1187:7:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 1747,
                              "name": "INikiswapV2Factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1801,
                              "src": "1168:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Factory_$1801_$",
                                "typeString": "type(contract INikiswapV2Factory)"
                              }
                            },
                            "id": 1749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1168:27:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_INikiswapV2Factory_$1801",
                              "typeString": "contract INikiswapV2Factory"
                            }
                          },
                          "id": 1750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "setFeeToSetter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1795,
                          "src": "1168:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address) external"
                          }
                        },
                        "id": 1752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1168:56:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1753,
                      "nodeType": "ExpressionStatement",
                      "src": "1168:56:2"
                    }
                  ]
                },
                "documentation": null,
                "id": 1755,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeToSetter",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1729,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1728,
                      "name": "feeToSetter_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1755,
                      "src": "943:20:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1727,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "943:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "942:22:2"
                },
                "returnParameters": {
                  "id": 1730,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "972:0:2"
                },
                "scope": 1790,
                "src": "919:313:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1788,
                  "nodeType": "Block",
                  "src": "1331:257:2",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1764,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1761,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "1350:5:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 1762,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1350:15:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1763,
                              "name": "vestingEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1668,
                              "src": "1369:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1350:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d6520796574",
                            "id": 1765,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1381:43:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_4ce4de998eadb2207a81a69d09f131d28d3682177d5da0d7d9cb5543c84efb00",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not time yet\""
                            },
                            "value": "NikiFeeToSetter::toggleFees: not time yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_4ce4de998eadb2207a81a69d09f131d28d3682177d5da0d7d9cb5543c84efb00",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not time yet\""
                            }
                          ],
                          "id": 1760,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1342:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1766,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1342:83:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1767,
                      "nodeType": "ExpressionStatement",
                      "src": "1342:83:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 1772,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1769,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1444:3:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1770,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1444:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1771,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1672,
                              "src": "1458:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1444:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f776564",
                            "id": 1773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1465:42:2",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c375d436242d1da5d42feef044d760e413176c9cca96f5f2a538c49786d3663a",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not allowed\""
                            },
                            "value": "NikiFeeToSetter::toggleFees: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c375d436242d1da5d42feef044d760e413176c9cca96f5f2a538c49786d3663a",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not allowed\""
                            }
                          ],
                          "id": 1768,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1436:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 1774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1436:72:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1775,
                      "nodeType": "ExpressionStatement",
                      "src": "1436:72:2"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "id": 1780,
                              "name": "on",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1757,
                              "src": "1556:2:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 1783,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1577:1:2",
                                  "subdenomination": null,
                                  "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": 1782,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1569:7:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1569:10:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 1785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "1556:23:2",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 1781,
                              "name": "feeTo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1670,
                              "src": "1561:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1777,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1666,
                                "src": "1538:7:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 1776,
                              "name": "INikiswapV2Factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1801,
                              "src": "1519:18:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Factory_$1801_$",
                                "typeString": "type(contract INikiswapV2Factory)"
                              }
                            },
                            "id": 1778,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1519:27:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_INikiswapV2Factory_$1801",
                              "typeString": "contract INikiswapV2Factory"
                            }
                          },
                          "id": 1779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "setFeeTo",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1800,
                          "src": "1519:36:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address) external"
                          }
                        },
                        "id": 1786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1519:61:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1787,
                      "nodeType": "ExpressionStatement",
                      "src": "1519:61:2"
                    }
                  ]
                },
                "documentation": null,
                "id": 1789,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "toggleFees",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1758,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1757,
                      "name": "on",
                      "nodeType": "VariableDeclaration",
                      "scope": 1789,
                      "src": "1315:7:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 1756,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1315:4:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1314:9:2"
                },
                "returnParameters": {
                  "id": 1759,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1331:0:2"
                },
                "scope": 1790,
                "src": "1295:293:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              }
            ],
            "scope": 1802,
            "src": "149:1442:2"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 1801,
            "linearizedBaseContracts": [
              1801
            ],
            "name": "INikiswapV2Factory",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 1795,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeToSetter",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1793,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1792,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1795,
                      "src": "1655:7:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1791,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1655:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1654:9:2"
                },
                "returnParameters": {
                  "id": 1794,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1672:0:2"
                },
                "scope": 1801,
                "src": "1631:42:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 1800,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeTo",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1798,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1797,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1800,
                      "src": "1697:7:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1796,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1697:7:2",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1696:9:2"
                },
                "returnParameters": {
                  "id": 1799,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1714:0:2"
                },
                "scope": 1801,
                "src": "1679:36:2",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 1802,
            "src": "1595:123:2"
          }
        ],
        "src": "0:1720:2"
      }
    },
    "contracts/NikiGovernorAlpha.sol": {
      "id": 3,
      "AST": {
        "absolutePath": "contracts/NikiGovernorAlpha.sol",
        "exportedSymbols": {
          "NikiGovernorAlpha": [
            2861
          ],
          "NikiInterface": [
            2935
          ],
          "NikiTimelockInterface": [
            2925
          ]
        },
        "id": 2936,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 1803,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:3"
          },
          {
            "id": 1804,
            "literals": [
              "experimental",
              "ABIEncoderV2"
            ],
            "nodeType": "PragmaDirective",
            "src": "26:33:3"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 2861,
            "linearizedBaseContracts": [
              2861
            ],
            "name": "NikiGovernorAlpha",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "constant": true,
                "id": 1807,
                "name": "name",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "140:51:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_memory",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 1805,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "140:6:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "4e696b6920476f7665726e6f7220416c706861",
                  "id": 1806,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "170:21:3",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_6e37ab6475f317f9f1cafc4afcfeceff7e1542bf3094de735be15e5010a79207",
                    "typeString": "literal_string \"Niki Governor Alpha\""
                  },
                  "value": "Niki Governor Alpha"
                },
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1814,
                  "nodeType": "Block",
                  "src": "383:26:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "3430305f3030305f303030653138",
                        "id": 1812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "392:14:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_400000000000000000000000000_by_1",
                          "typeString": "int_const 400000000000000000000000000"
                        },
                        "value": "400_000_000e18"
                      },
                      "functionReturnParameters": 1811,
                      "id": 1813,
                      "nodeType": "Return",
                      "src": "385:21:3"
                    }
                  ]
                },
                "documentation": "@notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed",
                "id": 1815,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "quorumVotes",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1808,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "353:2:3"
                },
                "returnParameters": {
                  "id": 1811,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1810,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1815,
                      "src": "377:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1809,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "377:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "376:6:3"
                },
                "scope": 2861,
                "src": "333:76:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1822,
                  "nodeType": "Block",
                  "src": "575:26:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "3130305f3030305f303030653138",
                        "id": 1820,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "584:14:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100000000000000000000000000_by_1",
                          "typeString": "int_const 100000000000000000000000000"
                        },
                        "value": "100_000_000e18"
                      },
                      "functionReturnParameters": 1819,
                      "id": 1821,
                      "nodeType": "Return",
                      "src": "577:21:3"
                    }
                  ]
                },
                "documentation": "@notice The number of votes required in order for a voter to become a proposer",
                "id": 1823,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "proposalThreshold",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1816,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "545:2:3"
                },
                "returnParameters": {
                  "id": 1819,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1818,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1823,
                      "src": "569:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1817,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "569:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "568:6:3"
                },
                "scope": 2861,
                "src": "519:82:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1830,
                  "nodeType": "Block",
                  "src": "765:14:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "3130",
                        "id": 1828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "774:2:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_10_by_1",
                          "typeString": "int_const 10"
                        },
                        "value": "10"
                      },
                      "functionReturnParameters": 1827,
                      "id": 1829,
                      "nodeType": "Return",
                      "src": "767:9:3"
                    }
                  ]
                },
                "documentation": "@notice The maximum number of actions that can be included in a proposal",
                "id": 1831,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "proposalMaxOperations",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1824,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "735:2:3"
                },
                "returnParameters": {
                  "id": 1827,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1826,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1831,
                      "src": "759:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1825,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "759:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "758:6:3"
                },
                "scope": 2861,
                "src": "705:74:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1838,
                  "nodeType": "Block",
                  "src": "936:13:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 1836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "945:1:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "functionReturnParameters": 1835,
                      "id": 1837,
                      "nodeType": "Return",
                      "src": "938:8:3"
                    }
                  ]
                },
                "documentation": "@notice The delay before voting on a proposal may take place, once proposed",
                "id": 1839,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "votingDelay",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1832,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "906:2:3"
                },
                "returnParameters": {
                  "id": 1835,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1834,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1839,
                      "src": "930:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1833,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "930:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "929:6:3"
                },
                "scope": 2861,
                "src": "886:63:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 1846,
                  "nodeType": "Block",
                  "src": "1084:18:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "hexValue": "34305f333230",
                        "id": 1844,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1093:6:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_40320_by_1",
                          "typeString": "int_const 40320"
                        },
                        "value": "40_320"
                      },
                      "functionReturnParameters": 1843,
                      "id": 1845,
                      "nodeType": "Return",
                      "src": "1086:13:3"
                    }
                  ]
                },
                "documentation": "@notice The duration of voting on a proposal, in blocks",
                "id": 1847,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "votingPeriod",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1840,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1054:2:3"
                },
                "returnParameters": {
                  "id": 1843,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1842,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 1847,
                      "src": "1078:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1841,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1078:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1077:6:3"
                },
                "scope": 2861,
                "src": "1033:69:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1849,
                "name": "timelock",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "1212:37:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                  "typeString": "contract NikiTimelockInterface"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1848,
                  "name": "NikiTimelockInterface",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2925,
                  "src": "1212:21:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                    "typeString": "contract NikiTimelockInterface"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1851,
                "name": "Niki",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "1316:25:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_NikiInterface_$2935",
                  "typeString": "contract NikiInterface"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1850,
                  "name": "NikiInterface",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2935,
                  "src": "1316:13:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_NikiInterface_$2935",
                    "typeString": "contract NikiInterface"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1853,
                "name": "proposalCount",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "1397:25:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1852,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1397:4:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "canonicalName": "NikiGovernorAlpha.Proposal",
                "id": 1888,
                "members": [
                  {
                    "constant": false,
                    "id": 1855,
                    "name": "id",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "1515:7:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1854,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "1515:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1857,
                    "name": "proposer",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "1580:16:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "typeName": {
                      "id": 1856,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1580:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1859,
                    "name": "eta",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "1722:8:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1858,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "1722:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1862,
                    "name": "targets",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "1822:17:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    },
                    "typeName": {
                      "baseType": {
                        "id": 1860,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1822:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1861,
                      "length": null,
                      "nodeType": "ArrayTypeName",
                      "src": "1822:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                        "typeString": "address[]"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1865,
                    "name": "values",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "1954:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    },
                    "typeName": {
                      "baseType": {
                        "id": 1863,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1954:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1864,
                      "length": null,
                      "nodeType": "ArrayTypeName",
                      "src": "1954:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1868,
                    "name": "signatures",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2054:19:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    },
                    "typeName": {
                      "baseType": {
                        "id": 1866,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2054:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "id": 1867,
                      "length": null,
                      "nodeType": "ArrayTypeName",
                      "src": "2054:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                        "typeString": "string[]"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1871,
                    "name": "calldatas",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2162:17:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                      "typeString": "bytes[]"
                    },
                    "typeName": {
                      "baseType": {
                        "id": 1869,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "2162:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "id": 1870,
                      "length": null,
                      "nodeType": "ArrayTypeName",
                      "src": "2162:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                        "typeString": "bytes[]"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1873,
                    "name": "startBlock",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2301:15:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1872,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2301:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1875,
                    "name": "endBlock",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2421:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1874,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2421:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1877,
                    "name": "forVotes",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2518:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1876,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2518:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1879,
                    "name": "againstVotes",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2620:17:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 1878,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2620:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1881,
                    "name": "canceled",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2723:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "typeName": {
                      "id": 1880,
                      "name": "bool",
                      "nodeType": "ElementaryTypeName",
                      "src": "2723:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1883,
                    "name": "executed",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2822:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "typeName": {
                      "id": 1882,
                      "name": "bool",
                      "nodeType": "ElementaryTypeName",
                      "src": "2822:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1887,
                    "name": "receipts",
                    "nodeType": "VariableDeclaration",
                    "scope": 1888,
                    "src": "2918:37:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$1895_storage_$",
                      "typeString": "mapping(address => struct NikiGovernorAlpha.Receipt)"
                    },
                    "typeName": {
                      "id": 1886,
                      "keyType": {
                        "id": 1884,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2927:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "Mapping",
                      "src": "2918:28:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$1895_storage_$",
                        "typeString": "mapping(address => struct NikiGovernorAlpha.Receipt)"
                      },
                      "valueType": {
                        "contractScope": null,
                        "id": 1885,
                        "name": "Receipt",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1895,
                        "src": "2938:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                          "typeString": "struct NikiGovernorAlpha.Receipt"
                        }
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "name": "Proposal",
                "nodeType": "StructDefinition",
                "scope": 2861,
                "src": "1431:1532:3",
                "visibility": "public"
              },
              {
                "canonicalName": "NikiGovernorAlpha.Receipt",
                "id": 1895,
                "members": [
                  {
                    "constant": false,
                    "id": 1890,
                    "name": "hasVoted",
                    "nodeType": "VariableDeclaration",
                    "scope": 1895,
                    "src": "3105:13:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "typeName": {
                      "id": 1889,
                      "name": "bool",
                      "nodeType": "ElementaryTypeName",
                      "src": "3105:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1892,
                    "name": "support",
                    "nodeType": "VariableDeclaration",
                    "scope": 1895,
                    "src": "3199:12:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "typeName": {
                      "id": 1891,
                      "name": "bool",
                      "nodeType": "ElementaryTypeName",
                      "src": "3199:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  },
                  {
                    "constant": false,
                    "id": 1894,
                    "name": "votes",
                    "nodeType": "VariableDeclaration",
                    "scope": 1895,
                    "src": "3296:12:3",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint96",
                      "typeString": "uint96"
                    },
                    "typeName": {
                      "id": 1893,
                      "name": "uint96",
                      "nodeType": "ElementaryTypeName",
                      "src": "3296:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "name": "Receipt",
                "nodeType": "StructDefinition",
                "scope": 2861,
                "src": "3022:294:3",
                "visibility": "public"
              },
              {
                "canonicalName": "NikiGovernorAlpha.ProposalState",
                "id": 1904,
                "members": [
                  {
                    "id": 1896,
                    "name": "Pending",
                    "nodeType": "EnumValue",
                    "src": "3413:7:3"
                  },
                  {
                    "id": 1897,
                    "name": "Active",
                    "nodeType": "EnumValue",
                    "src": "3431:6:3"
                  },
                  {
                    "id": 1898,
                    "name": "Canceled",
                    "nodeType": "EnumValue",
                    "src": "3448:8:3"
                  },
                  {
                    "id": 1899,
                    "name": "Defeated",
                    "nodeType": "EnumValue",
                    "src": "3467:8:3"
                  },
                  {
                    "id": 1900,
                    "name": "Succeeded",
                    "nodeType": "EnumValue",
                    "src": "3486:9:3"
                  },
                  {
                    "id": 1901,
                    "name": "Queued",
                    "nodeType": "EnumValue",
                    "src": "3506:6:3"
                  },
                  {
                    "id": 1902,
                    "name": "Expired",
                    "nodeType": "EnumValue",
                    "src": "3523:7:3"
                  },
                  {
                    "id": 1903,
                    "name": "Executed",
                    "nodeType": "EnumValue",
                    "src": "3541:8:3"
                  }
                ],
                "name": "ProposalState",
                "nodeType": "EnumDefinition",
                "src": "3383:173:3"
              },
              {
                "constant": false,
                "id": 1908,
                "name": "proposals",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "3632:43:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                  "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal)"
                },
                "typeName": {
                  "id": 1907,
                  "keyType": {
                    "id": 1905,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3641:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "3632:26:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                    "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 1906,
                    "name": "Proposal",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1888,
                    "src": "3649:8:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                      "typeString": "struct NikiGovernorAlpha.Proposal"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 1912,
                "name": "latestProposalIds",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "3739:50:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 1911,
                  "keyType": {
                    "id": 1909,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3748:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "3739:25:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 1910,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3759:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 1917,
                "name": "DOMAIN_TYPEHASH",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "3862:122:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 1913,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3862:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
                      "id": 1915,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3914:69:3",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866",
                        "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""
                      },
                      "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866",
                        "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""
                      }
                    ],
                    "id": 1914,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3970,
                    "src": "3904:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                      "typeString": "function (bytes memory) pure returns (bytes32)"
                    }
                  },
                  "id": 1916,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "3904:80:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 1922,
                "name": "BALLOT_TYPEHASH",
                "nodeType": "VariableDeclaration",
                "scope": 2861,
                "src": "4074:94:3",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 1918,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4074:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20737570706f727429",
                      "id": 1920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4126:41:3",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee",
                        "typeString": "literal_string \"Ballot(uint256 proposalId,bool support)\""
                      },
                      "value": "Ballot(uint256 proposalId,bool support)"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee",
                        "typeString": "literal_string \"Ballot(uint256 proposalId,bool support)\""
                      }
                    ],
                    "id": 1919,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3970,
                    "src": "4116:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                      "typeString": "function (bytes memory) pure returns (bytes32)"
                    }
                  },
                  "id": 1921,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "4116:52:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "public"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event emitted when a new proposal is created",
                "id": 1946,
                "name": "ProposalCreated",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 1945,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1924,
                      "indexed": false,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4264:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1923,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4264:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1926,
                      "indexed": false,
                      "name": "proposer",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4273:16:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1925,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4273:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1929,
                      "indexed": false,
                      "name": "targets",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4291:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1927,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4291:7:3",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1928,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "4291:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1932,
                      "indexed": false,
                      "name": "values",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4310:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1930,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4310:4:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1931,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "4310:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1935,
                      "indexed": false,
                      "name": "signatures",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4325:19:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                        "typeString": "string[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1933,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "4325:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 1934,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "4325:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1938,
                      "indexed": false,
                      "name": "calldatas",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4346:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1936,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "4346:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 1937,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "4346:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1940,
                      "indexed": false,
                      "name": "startBlock",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4365:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1939,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4365:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1942,
                      "indexed": false,
                      "name": "endBlock",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4382:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1941,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4382:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1944,
                      "indexed": false,
                      "name": "description",
                      "nodeType": "VariableDeclaration",
                      "scope": 1946,
                      "src": "4397:18:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 1943,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4397:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4263:153:3"
                },
                "src": "4242:175:3"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event emitted when a vote has been cast on a proposal",
                "id": 1956,
                "name": "VoteCast",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 1955,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1948,
                      "indexed": false,
                      "name": "voter",
                      "nodeType": "VariableDeclaration",
                      "scope": 1956,
                      "src": "4514:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1947,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4514:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1950,
                      "indexed": false,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 1956,
                      "src": "4529:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1949,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4529:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1952,
                      "indexed": false,
                      "name": "support",
                      "nodeType": "VariableDeclaration",
                      "scope": 1956,
                      "src": "4546:12:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 1951,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4546:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1954,
                      "indexed": false,
                      "name": "votes",
                      "nodeType": "VariableDeclaration",
                      "scope": 1956,
                      "src": "4560:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1953,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4560:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4513:58:3"
                },
                "src": "4499:73:3"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event emitted when a proposal has been canceled",
                "id": 1960,
                "name": "ProposalCanceled",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 1959,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1958,
                      "indexed": false,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 1960,
                      "src": "4671:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1957,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4671:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4670:9:3"
                },
                "src": "4648:32:3"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event emitted when a proposal has been queued in the NikiTimelock",
                "id": 1966,
                "name": "ProposalQueued",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 1965,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1962,
                      "indexed": false,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 1966,
                      "src": "4795:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1961,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4795:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1964,
                      "indexed": false,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 1966,
                      "src": "4804:8:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1963,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4804:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4794:19:3"
                },
                "src": "4774:40:3"
              },
              {
                "anonymous": false,
                "documentation": "@notice An event emitted when a proposal has been executed in the NikiTimelock",
                "id": 1970,
                "name": "ProposalExecuted",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 1969,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1968,
                      "indexed": false,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 1970,
                      "src": "4933:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1967,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4933:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4932:9:3"
                },
                "src": "4910:32:3"
              },
              {
                "body": {
                  "id": 1989,
                  "nodeType": "Block",
                  "src": "5003:100:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1977,
                          "name": "timelock",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1849,
                          "src": "5014:8:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                            "typeString": "contract NikiTimelockInterface"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1979,
                              "name": "timelock_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1972,
                              "src": "5047:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1978,
                            "name": "NikiTimelockInterface",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2925,
                            "src": "5025:21:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_NikiTimelockInterface_$2925_$",
                              "typeString": "type(contract NikiTimelockInterface)"
                            }
                          },
                          "id": 1980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5025:32:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                            "typeString": "contract NikiTimelockInterface"
                          }
                        },
                        "src": "5014:43:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                          "typeString": "contract NikiTimelockInterface"
                        }
                      },
                      "id": 1982,
                      "nodeType": "ExpressionStatement",
                      "src": "5014:43:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 1987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 1983,
                          "name": "Niki",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1851,
                          "src": "5068:4:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_NikiInterface_$2935",
                            "typeString": "contract NikiInterface"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1985,
                              "name": "Niki_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1974,
                              "src": "5089:5:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1984,
                            "name": "NikiInterface",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2935,
                            "src": "5075:13:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_NikiInterface_$2935_$",
                              "typeString": "type(contract NikiInterface)"
                            }
                          },
                          "id": 1986,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5075:20:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_NikiInterface_$2935",
                            "typeString": "contract NikiInterface"
                          }
                        },
                        "src": "5068:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_NikiInterface_$2935",
                          "typeString": "contract NikiInterface"
                        }
                      },
                      "id": 1988,
                      "nodeType": "ExpressionStatement",
                      "src": "5068:27:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 1990,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 1975,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1972,
                      "name": "timelock_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1990,
                      "src": "4962:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1971,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4962:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1974,
                      "name": "Niki_",
                      "nodeType": "VariableDeclaration",
                      "scope": 1990,
                      "src": "4981:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1973,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4981:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4961:34:3"
                },
                "returnParameters": {
                  "id": 1976,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "5003:0:3"
                },
                "scope": 2861,
                "src": "4950:153:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2169,
                  "nodeType": "Block",
                  "src": "5279:2028:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2022,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2012,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3976,
                                    "src": "5317:3:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2013,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5317:10:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2015,
                                        "name": "block",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3966,
                                        "src": "5336:5:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_block",
                                          "typeString": "block"
                                        }
                                      },
                                      "id": 2016,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "number",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "5336:12:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 2017,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5350:1:3",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      }
                                    ],
                                    "id": 2014,
                                    "name": "sub256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "5329:6:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 2018,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5329:23:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2010,
                                  "name": "Niki",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1851,
                                  "src": "5298:4:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiInterface_$2935",
                                    "typeString": "contract NikiInterface"
                                  }
                                },
                                "id": 2011,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "getPriorVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2934,
                                "src": "5298:18:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$",
                                  "typeString": "function (address,uint256) view external returns (uint96)"
                                }
                              },
                              "id": 2019,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5298:55:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 2020,
                                "name": "proposalThreshold",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1823,
                                "src": "5356:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                  "typeString": "function () pure returns (uint256)"
                                }
                              },
                              "id": 2021,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5356:19:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5298:77:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64",
                            "id": 2023,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5377:69:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_48ec02264cd1499781a1516d9b09be5ecf379cfd014be8a17dd3c9fb4a826d78",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: proposer votes below proposal threshold\""
                            },
                            "value": "NikiGovernorAlpha::propose: proposer votes below proposal threshold"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_48ec02264cd1499781a1516d9b09be5ecf379cfd014be8a17dd3c9fb4a826d78",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: proposer votes below proposal threshold\""
                            }
                          ],
                          "id": 2009,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5290:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5290:157:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2025,
                      "nodeType": "ExpressionStatement",
                      "src": "5290:157:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 2043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 2037,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2031,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2027,
                                    "name": "targets",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1993,
                                    "src": "5466:7:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 2028,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5466:14:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2029,
                                    "name": "values",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1996,
                                    "src": "5484:6:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 2030,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5484:13:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5466:31:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2036,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2032,
                                    "name": "targets",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1993,
                                    "src": "5501:7:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 2033,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5501:14:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2034,
                                    "name": "signatures",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1999,
                                    "src": "5519:10:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                                      "typeString": "string memory[] memory"
                                    }
                                  },
                                  "id": 2035,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5519:17:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5501:35:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "5466:70:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2038,
                                  "name": "targets",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1993,
                                  "src": "5540:7:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 2039,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "5540:14:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2040,
                                  "name": "calldatas",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2002,
                                  "src": "5558:9:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                                    "typeString": "bytes memory[] memory"
                                  }
                                },
                                "id": 2041,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "5558:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5540:34:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "5466:108:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368",
                            "id": 2044,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5576:74:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_d228ceb3350423ca4f1f7d750caa8613fee41fdcec3d8280505a0f52c247164c",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: proposal function information arity mismatch\""
                            },
                            "value": "NikiGovernorAlpha::propose: proposal function information arity mismatch"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_d228ceb3350423ca4f1f7d750caa8613fee41fdcec3d8280505a0f52c247164c",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: proposal function information arity mismatch\""
                            }
                          ],
                          "id": 2026,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5458:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5458:193:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2046,
                      "nodeType": "ExpressionStatement",
                      "src": "5458:193:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2051,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2048,
                                "name": "targets",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1993,
                                "src": "5670:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 2049,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5670:14:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2050,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5688:1:3",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5670:19:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73",
                            "id": 2052,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5691:50:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8994082c84da376f1c651f1ad0ea7d7b55c8a4026e3a1cf4ade604b182a3f73a",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: must provide actions\""
                            },
                            "value": "NikiGovernorAlpha::propose: must provide actions"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_8994082c84da376f1c651f1ad0ea7d7b55c8a4026e3a1cf4ade604b182a3f73a",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: must provide actions\""
                            }
                          ],
                          "id": 2047,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5662:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5662:80:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2054,
                      "nodeType": "ExpressionStatement",
                      "src": "5662:80:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2060,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2056,
                                "name": "targets",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1993,
                                "src": "5761:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 2057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5761:14:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 2058,
                                "name": "proposalMaxOperations",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1831,
                                "src": "5779:21:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                  "typeString": "function () pure returns (uint256)"
                                }
                              },
                              "id": 2059,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5779:23:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5761:41:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7920616374696f6e73",
                            "id": 2061,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5804:46:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5c6132ff83e065c168a6b0d1a894a2d1fa824a3c9333189ffd51182f3228525",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: too many actions\""
                            },
                            "value": "NikiGovernorAlpha::propose: too many actions"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c5c6132ff83e065c168a6b0d1a894a2d1fa824a3c9333189ffd51182f3228525",
                              "typeString": "literal_string \"NikiGovernorAlpha::propose: too many actions\""
                            }
                          ],
                          "id": 2055,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5753:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5753:98:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2063,
                      "nodeType": "ExpressionStatement",
                      "src": "5753:98:3"
                    },
                    {
                      "assignments": [
                        2065
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2065,
                          "name": "latestProposalId",
                          "nodeType": "VariableDeclaration",
                          "scope": 2169,
                          "src": "5864:21:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2064,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "5864:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2070,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2066,
                          "name": "latestProposalIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1912,
                          "src": "5888:17:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                          }
                        },
                        "id": 2069,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2067,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3976,
                            "src": "5906:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2068,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5906:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5888:29:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "5864:53:3"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2071,
                          "name": "latestProposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2065,
                          "src": "5932:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5952:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5932:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 2097,
                      "nodeType": "IfStatement",
                      "src": "5928:462:3",
                      "trueBody": {
                        "id": 2096,
                        "nodeType": "Block",
                        "src": "5955:435:3",
                        "statements": [
                          {
                            "assignments": [
                              2075
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 2075,
                                "name": "proposersLatestProposalState",
                                "nodeType": "VariableDeclaration",
                                "scope": 2096,
                                "src": "5968:42:3",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ProposalState_$1904",
                                  "typeString": "enum NikiGovernorAlpha.ProposalState"
                                },
                                "typeName": {
                                  "contractScope": null,
                                  "id": 2074,
                                  "name": "ProposalState",
                                  "nodeType": "UserDefinedTypeName",
                                  "referencedDeclaration": 1904,
                                  "src": "5968:13:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ProposalState_$1904",
                                    "typeString": "enum NikiGovernorAlpha.ProposalState"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 2079,
                            "initialValue": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2077,
                                  "name": "latestProposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2065,
                                  "src": "6019:16:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2076,
                                "name": "state",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2609,
                                "src": "6013:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "function (uint256) view returns (enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6013:23:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "5968:68:3"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_enum$_ProposalState_$1904",
                                    "typeString": "enum NikiGovernorAlpha.ProposalState"
                                  },
                                  "id": 2084,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2081,
                                    "name": "proposersLatestProposalState",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2075,
                                    "src": "6057:28:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ProposalState_$1904",
                                      "typeString": "enum NikiGovernorAlpha.ProposalState"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2082,
                                      "name": "ProposalState",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1904,
                                      "src": "6089:13:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                        "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                      }
                                    },
                                    "id": 2083,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "Active",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6089:20:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ProposalState_$1904",
                                      "typeString": "enum NikiGovernorAlpha.ProposalState"
                                    }
                                  },
                                  "src": "6057:52:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c",
                                  "id": 2085,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6111:94:3",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_70ac8c7e9778bd1909fab0e24bac737d8ff5767fd51f6a4df39f31c75fc792d9",
                                    "typeString": "literal_string \"NikiGovernorAlpha::propose: one live proposal per proposer, found an already active proposal\""
                                  },
                                  "value": "NikiGovernorAlpha::propose: one live proposal per proposer, found an already active proposal"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  {
                                    "typeIdentifier": "t_stringliteral_70ac8c7e9778bd1909fab0e24bac737d8ff5767fd51f6a4df39f31c75fc792d9",
                                    "typeString": "literal_string \"NikiGovernorAlpha::propose: one live proposal per proposer, found an already active proposal\""
                                  }
                                ],
                                "id": 2080,
                                "name": "require",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  3979,
                                  3980
                                ],
                                "referencedDeclaration": 3980,
                                "src": "6049:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (bool,string memory) pure"
                                }
                              },
                              "id": 2086,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6049:157:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2087,
                            "nodeType": "ExpressionStatement",
                            "src": "6049:157:3"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_enum$_ProposalState_$1904",
                                    "typeString": "enum NikiGovernorAlpha.ProposalState"
                                  },
                                  "id": 2092,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2089,
                                    "name": "proposersLatestProposalState",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2075,
                                    "src": "6227:28:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ProposalState_$1904",
                                      "typeString": "enum NikiGovernorAlpha.ProposalState"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2090,
                                      "name": "ProposalState",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1904,
                                      "src": "6259:13:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                        "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                      }
                                    },
                                    "id": 2091,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "Pending",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6259:21:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ProposalState_$1904",
                                      "typeString": "enum NikiGovernorAlpha.ProposalState"
                                    }
                                  },
                                  "src": "6227:53:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "4e696b69476f7665726e6f72416c7068613a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c",
                                  "id": 2093,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6282:95:3",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_6d89fc3baf2676115dbfb411b3c3cb0fcae9e07ff4c84f3bb85c90c4a7e81a97",
                                    "typeString": "literal_string \"NikiGovernorAlpha::propose: one live proposal per proposer, found an already pending proposal\""
                                  },
                                  "value": "NikiGovernorAlpha::propose: one live proposal per proposer, found an already pending proposal"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  {
                                    "typeIdentifier": "t_stringliteral_6d89fc3baf2676115dbfb411b3c3cb0fcae9e07ff4c84f3bb85c90c4a7e81a97",
                                    "typeString": "literal_string \"NikiGovernorAlpha::propose: one live proposal per proposer, found an already pending proposal\""
                                  }
                                ],
                                "id": 2088,
                                "name": "require",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  3979,
                                  3980
                                ],
                                "referencedDeclaration": 3980,
                                "src": "6219:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (bool,string memory) pure"
                                }
                              },
                              "id": 2094,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6219:159:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2095,
                            "nodeType": "ExpressionStatement",
                            "src": "6219:159:3"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        2099
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2099,
                          "name": "startBlock",
                          "nodeType": "VariableDeclaration",
                          "scope": 2169,
                          "src": "6402:15:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2098,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "6402:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2106,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2101,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3966,
                              "src": "6427:5:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2102,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6427:12:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2103,
                              "name": "votingDelay",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1839,
                              "src": "6441:11:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                "typeString": "function () pure returns (uint256)"
                              }
                            },
                            "id": 2104,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6441:13:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2100,
                          "name": "add256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2827,
                          "src": "6420:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 2105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6420:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "6402:53:3"
                    },
                    {
                      "assignments": [
                        2108
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2108,
                          "name": "endBlock",
                          "nodeType": "VariableDeclaration",
                          "scope": 2169,
                          "src": "6466:13:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2107,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "6466:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2114,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2110,
                            "name": "startBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2099,
                            "src": "6489:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 2111,
                              "name": "votingPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1847,
                              "src": "6501:12:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                "typeString": "function () pure returns (uint256)"
                              }
                            },
                            "id": 2112,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6501:14:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2109,
                          "name": "add256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2827,
                          "src": "6482:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 2113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6482:34:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "6466:50:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "++",
                        "prefix": false,
                        "src": "6529:15:3",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 2115,
                          "name": "proposalCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1853,
                          "src": "6529:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 2117,
                      "nodeType": "ExpressionStatement",
                      "src": "6529:15:3"
                    },
                    {
                      "assignments": [
                        2119
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2119,
                          "name": "newProposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2169,
                          "src": "6555:27:3",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2118,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "6555:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2136,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2121,
                            "name": "proposalCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1853,
                            "src": "6613:13:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2122,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "6651:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6651:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2124,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6681:1:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          {
                            "argumentTypes": null,
                            "id": 2125,
                            "name": "targets",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1993,
                            "src": "6706:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2126,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1996,
                            "src": "6736:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2127,
                            "name": "signatures",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1999,
                            "src": "6769:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2128,
                            "name": "calldatas",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2002,
                            "src": "6805:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2129,
                            "name": "startBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2099,
                            "src": "6841:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2130,
                            "name": "endBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2108,
                            "src": "6876:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2131,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6909:1:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2132,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6939:1:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 2133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6965:5:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 2134,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6995:5:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            },
                            {
                              "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"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 2120,
                          "name": "Proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1888,
                          "src": "6585:8:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Proposal_$1888_storage_ptr_$",
                            "typeString": "type(struct NikiGovernorAlpha.Proposal storage pointer)"
                          }
                        },
                        "id": 2135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [
                          "id",
                          "proposer",
                          "eta",
                          "targets",
                          "values",
                          "signatures",
                          "calldatas",
                          "startBlock",
                          "endBlock",
                          "forVotes",
                          "againstVotes",
                          "canceled",
                          "executed"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "6585:427:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_memory",
                          "typeString": "struct NikiGovernorAlpha.Proposal memory"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "6555:457:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2142,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2137,
                            "name": "proposals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1908,
                            "src": "7025:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                              "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                            }
                          },
                          "id": 2140,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2138,
                              "name": "newProposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2119,
                              "src": "7035:11:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal memory"
                              }
                            },
                            "id": 2139,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "id",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1855,
                            "src": "7035:14:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "7025:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                            "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2141,
                          "name": "newProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2119,
                          "src": "7053:11:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal memory"
                          }
                        },
                        "src": "7025:39:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "id": 2143,
                      "nodeType": "ExpressionStatement",
                      "src": "7025:39:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2150,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2144,
                            "name": "latestProposalIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1912,
                            "src": "7075:17:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 2147,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2145,
                              "name": "newProposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2119,
                              "src": "7093:11:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal memory"
                              }
                            },
                            "id": 2146,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1857,
                            "src": "7093:20:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "7075:39:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2148,
                            "name": "newProposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2119,
                            "src": "7117:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal memory"
                            }
                          },
                          "id": 2149,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "id",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1855,
                          "src": "7117:14:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7075:56:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 2151,
                      "nodeType": "ExpressionStatement",
                      "src": "7075:56:3"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2153,
                              "name": "newProposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2119,
                              "src": "7165:11:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal memory"
                              }
                            },
                            "id": 2154,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "id",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1855,
                            "src": "7165:14:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2155,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "7181:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2156,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7181:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2157,
                            "name": "targets",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1993,
                            "src": "7193:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2158,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1996,
                            "src": "7202:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2159,
                            "name": "signatures",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1999,
                            "src": "7210:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2160,
                            "name": "calldatas",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2002,
                            "src": "7222:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2161,
                            "name": "startBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2099,
                            "src": "7233:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2162,
                            "name": "endBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2108,
                            "src": "7245:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2163,
                            "name": "description",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2004,
                            "src": "7255:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 2152,
                          "name": "ProposalCreated",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1946,
                          "src": "7149:15:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_$dyn_memory_ptr_$_t_array$_t_bytes_memory_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)"
                          }
                        },
                        "id": 2164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7149:118:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2165,
                      "nodeType": "EmitStatement",
                      "src": "7144:123:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2166,
                          "name": "newProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2119,
                          "src": "7285:11:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_memory_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal memory"
                          }
                        },
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "id",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1855,
                        "src": "7285:14:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 2008,
                      "id": 2168,
                      "nodeType": "Return",
                      "src": "7278:21:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2170,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "propose",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2005,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 1993,
                      "name": "targets",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5128:24:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1991,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5128:7:3",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1992,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "5128:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1996,
                      "name": "values",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5154:20:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1994,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5154:4:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1995,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "5154:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 1999,
                      "name": "signatures",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5176:26:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                        "typeString": "string[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1997,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "5176:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 1998,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "5176:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2002,
                      "name": "calldatas",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5204:24:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 2000,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5204:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 2001,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "5204:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2004,
                      "name": "description",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5230:25:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2003,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "5230:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5127:129:3"
                },
                "returnParameters": {
                  "id": 2008,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2007,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2170,
                      "src": "5273:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2006,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5273:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5272:6:3"
                },
                "scope": 2861,
                "src": "5111:2196:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2246,
                  "nodeType": "Block",
                  "src": "7354:542:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_ProposalState_$1904",
                              "typeString": "enum NikiGovernorAlpha.ProposalState"
                            },
                            "id": 2181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2177,
                                  "name": "proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2172,
                                  "src": "7379:10:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2176,
                                "name": "state",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2609,
                                "src": "7373:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "function (uint256) view returns (enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2178,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7373:17:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2179,
                                "name": "ProposalState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1904,
                                "src": "7394:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2180,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "Succeeded",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7394:23:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "src": "7373:44:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564",
                            "id": 2182,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7419:74:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_bcb2704e2178902b3a55bd88f597068c9c3188825a085504e2d9b709762ff197",
                              "typeString": "literal_string \"NikiGovernorAlpha::queue: proposal can only be queued if it is succeeded\""
                            },
                            "value": "NikiGovernorAlpha::queue: proposal can only be queued if it is succeeded"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_bcb2704e2178902b3a55bd88f597068c9c3188825a085504e2d9b709762ff197",
                              "typeString": "literal_string \"NikiGovernorAlpha::queue: proposal can only be queued if it is succeeded\""
                            }
                          ],
                          "id": 2175,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "7365:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2183,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7365:129:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2184,
                      "nodeType": "ExpressionStatement",
                      "src": "7365:129:3"
                    },
                    {
                      "assignments": [
                        2186
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2186,
                          "name": "proposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2246,
                          "src": "7505:25:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2185,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "7505:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2190,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2187,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "7533:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2189,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2188,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2172,
                          "src": "7543:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7533:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "7505:49:3"
                    },
                    {
                      "assignments": [
                        2192
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2192,
                          "name": "eta",
                          "nodeType": "VariableDeclaration",
                          "scope": 2246,
                          "src": "7565:8:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2191,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "7565:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2200,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2194,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3966,
                              "src": "7583:5:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2195,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7583:15:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2196,
                                "name": "timelock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1849,
                                "src": "7600:8:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                                  "typeString": "contract NikiTimelockInterface"
                                }
                              },
                              "id": 2197,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "delay",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2866,
                              "src": "7600:14:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2198,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7600:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2193,
                          "name": "add256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2827,
                          "src": "7576:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 2199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7576:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "7565:52:3"
                    },
                    {
                      "body": {
                        "id": 2233,
                        "nodeType": "Block",
                        "src": "7679:134:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2214,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2186,
                                      "src": "7709:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2215,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "targets",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1862,
                                    "src": "7709:16:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 2217,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2216,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2202,
                                    "src": "7726:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7709:19:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2218,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2186,
                                      "src": "7730:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2219,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "values",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1865,
                                    "src": "7730:15:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 2221,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2220,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2202,
                                    "src": "7746:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7730:18:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2222,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2186,
                                      "src": "7750:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2223,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "signatures",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1868,
                                    "src": "7750:19:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
                                      "typeString": "string storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2225,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2224,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2202,
                                    "src": "7770:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7750:22:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2226,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2186,
                                      "src": "7774:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2227,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "calldatas",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1871,
                                    "src": "7774:18:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage",
                                      "typeString": "bytes storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2229,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2228,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2202,
                                    "src": "7793:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7774:21:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2230,
                                  "name": "eta",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2192,
                                  "src": "7797:3:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2213,
                                "name": "_queueOrRevert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2289,
                                "src": "7694:14:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                                  "typeString": "function (address,uint256,string memory,bytes memory,uint256)"
                                }
                              },
                              "id": 2231,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7694:107:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2232,
                            "nodeType": "ExpressionStatement",
                            "src": "7694:107:3"
                          }
                        ]
                      },
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2205,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2202,
                          "src": "7645:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2206,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2186,
                              "src": "7649:8:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2207,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "targets",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1862,
                            "src": "7649:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 2208,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7649:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7645:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2234,
                      "initializationExpression": {
                        "assignments": [
                          2202
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2202,
                            "name": "i",
                            "nodeType": "VariableDeclaration",
                            "scope": 2234,
                            "src": "7633:6:3",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 2201,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "7633:4:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2204,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2203,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7642:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7633:10:3"
                      },
                      "loopExpression": {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "7674:3:3",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 2210,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2202,
                            "src": "7674:1:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2212,
                        "nodeType": "ExpressionStatement",
                        "src": "7674:3:3"
                      },
                      "nodeType": "ForStatement",
                      "src": "7628:185:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2235,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2186,
                            "src": "7823:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                            }
                          },
                          "id": 2237,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "eta",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1859,
                          "src": "7823:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2238,
                          "name": "eta",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2192,
                          "src": "7838:3:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7823:18:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 2240,
                      "nodeType": "ExpressionStatement",
                      "src": "7823:18:3"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2242,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2172,
                            "src": "7872:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2243,
                            "name": "eta",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2192,
                            "src": "7884:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2241,
                          "name": "ProposalQueued",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1966,
                          "src": "7857:14:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                            "typeString": "function (uint256,uint256)"
                          }
                        },
                        "id": 2244,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7857:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2245,
                      "nodeType": "EmitStatement",
                      "src": "7852:36:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2247,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "queue",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2173,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2172,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2247,
                      "src": "7330:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2171,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7330:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "7329:17:3"
                },
                "returnParameters": {
                  "id": 2174,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "7354:0:3"
                },
                "scope": 2861,
                "src": "7315:581:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2288,
                  "nodeType": "Block",
                  "src": "8019:265:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "8038:88:3",
                            "subExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 2266,
                                          "name": "target",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2249,
                                          "src": "8088:6:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 2267,
                                          "name": "value",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2251,
                                          "src": "8096:5:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 2268,
                                          "name": "signature",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2253,
                                          "src": "8103:9:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 2269,
                                          "name": "data",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2255,
                                          "src": "8114:4:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 2270,
                                          "name": "eta",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2257,
                                          "src": "8120:3:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2264,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 3963,
                                          "src": "8077:3:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 2265,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "encode",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "8077:10:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 2271,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8077:47:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 2263,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3970,
                                    "src": "8067:9:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 2272,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "8067:58:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2261,
                                  "name": "timelock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1849,
                                  "src": "8039:8:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                                    "typeString": "contract NikiTimelockInterface"
                                  }
                                },
                                "id": 2262,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "queuedTransactions",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2881,
                                "src": "8039:27:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                  "typeString": "function (bytes32) view external returns (bool)"
                                }
                              },
                              "id": 2273,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8039:87:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461",
                            "id": 2275,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8128:74:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_992a77b24c54db7f03228ccdf93d79f1676aedd3e34e67a4627d5d132578f57f",
                              "typeString": "literal_string \"NikiGovernorAlpha::_queueOrRevert: proposal action already queued at eta\""
                            },
                            "value": "NikiGovernorAlpha::_queueOrRevert: proposal action already queued at eta"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_992a77b24c54db7f03228ccdf93d79f1676aedd3e34e67a4627d5d132578f57f",
                              "typeString": "literal_string \"NikiGovernorAlpha::_queueOrRevert: proposal action already queued at eta\""
                            }
                          ],
                          "id": 2260,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8030:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2276,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8030:173:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2277,
                      "nodeType": "ExpressionStatement",
                      "src": "8030:173:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2281,
                            "name": "target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2249,
                            "src": "8240:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2282,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2251,
                            "src": "8248:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2283,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2253,
                            "src": "8255:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2284,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2255,
                            "src": "8266:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2285,
                            "name": "eta",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2257,
                            "src": "8272:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2278,
                            "name": "timelock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1849,
                            "src": "8214:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                              "typeString": "contract NikiTimelockInterface"
                            }
                          },
                          "id": 2280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "queueTransaction",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2896,
                          "src": "8214:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
                            "typeString": "function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"
                          }
                        },
                        "id": 2286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8214:62:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 2287,
                      "nodeType": "ExpressionStatement",
                      "src": "8214:62:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2289,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_queueOrRevert",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2258,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2249,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "7928:14:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2248,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7928:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2251,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "7944:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2250,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7944:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2253,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "7956:23:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2252,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "7956:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2255,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "7981:17:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2254,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "7981:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2257,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "8000:8:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2256,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8000:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "7927:82:3"
                },
                "returnParameters": {
                  "id": 2259,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "8019:0:3"
                },
                "scope": 2861,
                "src": "7904:380:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 2364,
                  "nodeType": "Block",
                  "src": "8341:528:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_ProposalState_$1904",
                              "typeString": "enum NikiGovernorAlpha.ProposalState"
                            },
                            "id": 2300,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2296,
                                  "name": "proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2291,
                                  "src": "8366:10:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2295,
                                "name": "state",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2609,
                                "src": "8360:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "function (uint256) view returns (enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2297,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8360:17:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2298,
                                "name": "ProposalState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1904,
                                "src": "8381:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2299,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "Queued",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8381:20:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "src": "8360:41:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564",
                            "id": 2301,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8403:75:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_2d70a57ed22d5aa0f0e2aa9e2538ddcccaa1e858a567ee7e4fe8ba5e96d3e5c0",
                              "typeString": "literal_string \"NikiGovernorAlpha::execute: proposal can only be executed if it is queued\""
                            },
                            "value": "NikiGovernorAlpha::execute: proposal can only be executed if it is queued"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_2d70a57ed22d5aa0f0e2aa9e2538ddcccaa1e858a567ee7e4fe8ba5e96d3e5c0",
                              "typeString": "literal_string \"NikiGovernorAlpha::execute: proposal can only be executed if it is queued\""
                            }
                          ],
                          "id": 2294,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8352:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2302,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8352:127:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2303,
                      "nodeType": "ExpressionStatement",
                      "src": "8352:127:3"
                    },
                    {
                      "assignments": [
                        2305
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2305,
                          "name": "proposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2364,
                          "src": "8490:25:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2304,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "8490:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2309,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2306,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "8518:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2308,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2307,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2291,
                          "src": "8528:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8518:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8490:49:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2310,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2305,
                            "src": "8550:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                            }
                          },
                          "id": 2312,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "executed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1883,
                          "src": "8550:17:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 2313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8570:4:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "src": "8550:24:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2315,
                      "nodeType": "ExpressionStatement",
                      "src": "8550:24:3"
                    },
                    {
                      "body": {
                        "id": 2358,
                        "nodeType": "Block",
                        "src": "8636:182:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2338,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2305,
                                      "src": "8705:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2339,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "targets",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1862,
                                    "src": "8705:16:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 2341,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2340,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2317,
                                    "src": "8722:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8705:19:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2342,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2305,
                                      "src": "8726:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2343,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "values",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1865,
                                    "src": "8726:15:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 2345,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2344,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2317,
                                    "src": "8742:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8726:18:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2346,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2305,
                                      "src": "8746:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2347,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "signatures",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1868,
                                    "src": "8746:19:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
                                      "typeString": "string storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2349,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2348,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2317,
                                    "src": "8766:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8746:22:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2350,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2305,
                                      "src": "8770:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2351,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "calldatas",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1871,
                                    "src": "8770:18:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage",
                                      "typeString": "bytes storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2353,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2352,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2317,
                                    "src": "8789:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8770:21:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2354,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2305,
                                    "src": "8793:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2355,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "eta",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1859,
                                  "src": "8793:12:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2333,
                                        "name": "proposal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2305,
                                        "src": "8685:8:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                          "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                        }
                                      },
                                      "id": 2334,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "values",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1865,
                                      "src": "8685:15:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                        "typeString": "uint256[] storage ref"
                                      }
                                    },
                                    "id": 2336,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 2335,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2317,
                                      "src": "8701:1:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8685:18:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2328,
                                      "name": "timelock",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1849,
                                      "src": "8651:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                                        "typeString": "contract NikiTimelockInterface"
                                      }
                                    },
                                    "id": 2331,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "executeTransaction",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 2924,
                                    "src": "8651:27:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                      "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"
                                    }
                                  },
                                  "id": 2332,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "8651:33:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value_$",
                                    "typeString": "function (uint256) pure returns (function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory))"
                                  }
                                },
                                "id": 2337,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8651:53:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value",
                                  "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"
                                }
                              },
                              "id": 2356,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8651:155:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 2357,
                            "nodeType": "ExpressionStatement",
                            "src": "8651:155:3"
                          }
                        ]
                      },
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2320,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2317,
                          "src": "8602:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2321,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2305,
                              "src": "8606:8:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2322,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "targets",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1862,
                            "src": "8606:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 2323,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8606:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8602:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2359,
                      "initializationExpression": {
                        "assignments": [
                          2317
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2317,
                            "name": "i",
                            "nodeType": "VariableDeclaration",
                            "scope": 2359,
                            "src": "8590:6:3",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 2316,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "8590:4:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2319,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8599:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "8590:10:3"
                      },
                      "loopExpression": {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "8631:3:3",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 2325,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2317,
                            "src": "8631:1:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2327,
                        "nodeType": "ExpressionStatement",
                        "src": "8631:3:3"
                      },
                      "nodeType": "ForStatement",
                      "src": "8585:233:3"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2361,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2291,
                            "src": "8850:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2360,
                          "name": "ProposalExecuted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1970,
                          "src": "8833:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                            "typeString": "function (uint256)"
                          }
                        },
                        "id": 2362,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8833:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2363,
                      "nodeType": "EmitStatement",
                      "src": "8828:33:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2365,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "execute",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2292,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2291,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2365,
                      "src": "8309:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2290,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8309:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "8308:17:3"
                },
                "returnParameters": {
                  "id": 2293,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "8341:0:3"
                },
                "scope": 2861,
                "src": "8292:577:3",
                "stateMutability": "payable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2454,
                  "nodeType": "Block",
                  "src": "8917:691:3",
                  "statements": [
                    {
                      "assignments": [
                        2371
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2371,
                          "name": "state",
                          "nodeType": "VariableDeclaration",
                          "scope": 2454,
                          "src": "8928:19:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ProposalState_$1904",
                            "typeString": "enum NikiGovernorAlpha.ProposalState"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2370,
                            "name": "ProposalState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1904,
                            "src": "8928:13:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ProposalState_$1904",
                              "typeString": "enum NikiGovernorAlpha.ProposalState"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2375,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2373,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2367,
                            "src": "8956:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2372,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2609,
                          "src": "8950:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1904_$",
                            "typeString": "function (uint256) view returns (enum NikiGovernorAlpha.ProposalState)"
                          }
                        },
                        "id": 2374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8950:17:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ProposalState_$1904",
                          "typeString": "enum NikiGovernorAlpha.ProposalState"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8928:39:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_ProposalState_$1904",
                              "typeString": "enum NikiGovernorAlpha.ProposalState"
                            },
                            "id": 2380,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2377,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2371,
                              "src": "8986:5:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2378,
                                "name": "ProposalState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1904,
                                "src": "8995:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2379,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "Executed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8995:22:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "src": "8986:31:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c",
                            "id": 2381,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9019:60:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_59f7befbc13f8b4f7a126e1ae8d138ae98376c949f2ef32c729c0dae058ce7f0",
                              "typeString": "literal_string \"NikiGovernorAlpha::cancel: cannot cancel executed proposal\""
                            },
                            "value": "NikiGovernorAlpha::cancel: cannot cancel executed proposal"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_59f7befbc13f8b4f7a126e1ae8d138ae98376c949f2ef32c729c0dae058ce7f0",
                              "typeString": "literal_string \"NikiGovernorAlpha::cancel: cannot cancel executed proposal\""
                            }
                          ],
                          "id": 2376,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "8978:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8978:102:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2383,
                      "nodeType": "ExpressionStatement",
                      "src": "8978:102:3"
                    },
                    {
                      "assignments": [
                        2385
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2385,
                          "name": "proposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2454,
                          "src": "9093:25:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2384,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "9093:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2389,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2386,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "9121:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2388,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2387,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2367,
                          "src": "9131:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9121:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9093:49:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2403,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2393,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2385,
                                    "src": "9180:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2394,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "proposer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1857,
                                  "src": "9180:17:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2396,
                                        "name": "block",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3966,
                                        "src": "9206:5:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_block",
                                          "typeString": "block"
                                        }
                                      },
                                      "id": 2397,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "number",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "9206:12:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 2398,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9220:1:3",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      }
                                    ],
                                    "id": 2395,
                                    "name": "sub256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2848,
                                    "src": "9199:6:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 2399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "9199:23:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2391,
                                  "name": "Niki",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1851,
                                  "src": "9161:4:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiInterface_$2935",
                                    "typeString": "contract NikiInterface"
                                  }
                                },
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "getPriorVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2934,
                                "src": "9161:18:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$",
                                  "typeString": "function (address,uint256) view external returns (uint96)"
                                }
                              },
                              "id": 2400,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9161:62:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint96",
                                "typeString": "uint96"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 2401,
                                "name": "proposalThreshold",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1823,
                                "src": "9226:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                  "typeString": "function () pure returns (uint256)"
                                }
                              },
                              "id": 2402,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9226:19:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "9161:84:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64",
                            "id": 2404,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9247:53:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_98222663e0206e6ca527cc62d8708bcce15603b9f9ef71972b06cf5115e339af",
                              "typeString": "literal_string \"NikiGovernorAlpha::cancel: proposer above threshold\""
                            },
                            "value": "NikiGovernorAlpha::cancel: proposer above threshold"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_98222663e0206e6ca527cc62d8708bcce15603b9f9ef71972b06cf5115e339af",
                              "typeString": "literal_string \"NikiGovernorAlpha::cancel: proposer above threshold\""
                            }
                          ],
                          "id": 2390,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "9153:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2405,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9153:148:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2406,
                      "nodeType": "ExpressionStatement",
                      "src": "9153:148:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2407,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2385,
                            "src": "9314:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                            }
                          },
                          "id": 2409,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "canceled",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1881,
                          "src": "9314:17:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 2410,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9334:4:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "src": "9314:24:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2412,
                      "nodeType": "ExpressionStatement",
                      "src": "9314:24:3"
                    },
                    {
                      "body": {
                        "id": 2448,
                        "nodeType": "Block",
                        "src": "9400:155:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2428,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2385,
                                      "src": "9442:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2429,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "targets",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1862,
                                    "src": "9442:16:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 2431,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2430,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2414,
                                    "src": "9459:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9442:19:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2432,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2385,
                                      "src": "9463:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2433,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "values",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1865,
                                    "src": "9463:15:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 2435,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2434,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2414,
                                    "src": "9479:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9463:18:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2436,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2385,
                                      "src": "9483:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2437,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "signatures",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1868,
                                    "src": "9483:19:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
                                      "typeString": "string storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2439,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2438,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2414,
                                    "src": "9503:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9483:22:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2440,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2385,
                                      "src": "9507:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2441,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "calldatas",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1871,
                                    "src": "9507:18:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage",
                                      "typeString": "bytes storage ref[] storage ref"
                                    }
                                  },
                                  "id": 2443,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 2442,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2414,
                                    "src": "9526:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9507:21:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2444,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2385,
                                    "src": "9530:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2445,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "eta",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1859,
                                  "src": "9530:12:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2425,
                                  "name": "timelock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1849,
                                  "src": "9415:8:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                                    "typeString": "contract NikiTimelockInterface"
                                  }
                                },
                                "id": 2427,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "cancelTransaction",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2909,
                                "src": "9415:26:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                                  "typeString": "function (address,uint256,string memory,bytes memory,uint256) external"
                                }
                              },
                              "id": 2446,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9415:128:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2447,
                            "nodeType": "ExpressionStatement",
                            "src": "9415:128:3"
                          }
                        ]
                      },
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2417,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2414,
                          "src": "9366:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2418,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2385,
                              "src": "9370:8:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2419,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "targets",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1862,
                            "src": "9370:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 2420,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9370:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9366:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2449,
                      "initializationExpression": {
                        "assignments": [
                          2414
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2414,
                            "name": "i",
                            "nodeType": "VariableDeclaration",
                            "scope": 2449,
                            "src": "9354:6:3",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 2413,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9354:4:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2416,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2415,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9363:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9354:10:3"
                      },
                      "loopExpression": {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "9395:3:3",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 2422,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2414,
                            "src": "9395:1:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2424,
                        "nodeType": "ExpressionStatement",
                        "src": "9395:3:3"
                      },
                      "nodeType": "ForStatement",
                      "src": "9349:206:3"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2451,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2367,
                            "src": "9589:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 2450,
                          "name": "ProposalCanceled",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1960,
                          "src": "9572:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                            "typeString": "function (uint256)"
                          }
                        },
                        "id": 2452,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9572:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2453,
                      "nodeType": "EmitStatement",
                      "src": "9567:33:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2455,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "cancel",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2368,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2367,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "8893:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2366,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8893:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "8892:17:3"
                },
                "returnParameters": {
                  "id": 2369,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "8917:0:3"
                },
                "scope": 2861,
                "src": "8877:731:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2488,
                  "nodeType": "Block",
                  "src": "9776:127:3",
                  "statements": [
                    {
                      "assignments": [
                        2473
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2473,
                          "name": "p",
                          "nodeType": "VariableDeclaration",
                          "scope": 2488,
                          "src": "9787:18:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2472,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "9787:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2477,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2474,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "9808:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2476,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2475,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2457,
                          "src": "9818:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9808:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "9787:42:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2478,
                              "name": "p",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2473,
                              "src": "9848:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2479,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "targets",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1862,
                            "src": "9848:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2480,
                              "name": "p",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2473,
                              "src": "9859:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2481,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "values",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1865,
                            "src": "9859:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2482,
                              "name": "p",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2473,
                              "src": "9869:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2483,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "signatures",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1868,
                            "src": "9869:12:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
                              "typeString": "string storage ref[] storage ref"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2484,
                              "name": "p",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2473,
                              "src": "9883:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2485,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "calldatas",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1871,
                            "src": "9883:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage",
                              "typeString": "bytes storage ref[] storage ref"
                            }
                          }
                        ],
                        "id": 2486,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "9847:48:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_string_storage_$dyn_storage_$_t_array$_t_bytes_storage_$dyn_storage_$",
                          "typeString": "tuple(address[] storage ref,uint256[] storage ref,string storage ref[] storage ref,bytes storage ref[] storage ref)"
                        }
                      },
                      "functionReturnParameters": 2471,
                      "id": 2487,
                      "nodeType": "Return",
                      "src": "9840:55:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2489,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getActions",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2458,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2457,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2489,
                      "src": "9636:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2456,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9636:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9635:17:3"
                },
                "returnParameters": {
                  "id": 2471,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2461,
                      "name": "targets",
                      "nodeType": "VariableDeclaration",
                      "scope": 2489,
                      "src": "9674:24:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 2459,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9674:7:3",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 2460,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "9674:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2464,
                      "name": "values",
                      "nodeType": "VariableDeclaration",
                      "scope": 2489,
                      "src": "9700:20:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 2462,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9700:4:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2463,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "9700:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2467,
                      "name": "signatures",
                      "nodeType": "VariableDeclaration",
                      "scope": 2489,
                      "src": "9722:26:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr",
                        "typeString": "string[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 2465,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "9722:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 2466,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "9722:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2470,
                      "name": "calldatas",
                      "nodeType": "VariableDeclaration",
                      "scope": 2489,
                      "src": "9750:24:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 2468,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "9750:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 2469,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "9750:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9673:102:3"
                },
                "scope": 2861,
                "src": "9616:287:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2505,
                  "nodeType": "Block",
                  "src": "10000:63:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2498,
                              "name": "proposals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1908,
                              "src": "10018:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                                "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                              }
                            },
                            "id": 2500,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2499,
                              "name": "proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2491,
                              "src": "10028:10:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10018:21:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                              "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                            }
                          },
                          "id": 2501,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "receipts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1887,
                          "src": "10018:30:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$1895_storage_$",
                            "typeString": "mapping(address => struct NikiGovernorAlpha.Receipt storage ref)"
                          }
                        },
                        "id": 2503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2502,
                          "name": "voter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2493,
                          "src": "10049:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10018:37:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Receipt_$1895_storage",
                          "typeString": "struct NikiGovernorAlpha.Receipt storage ref"
                        }
                      },
                      "functionReturnParameters": 2497,
                      "id": 2504,
                      "nodeType": "Return",
                      "src": "10011:44:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2506,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getReceipt",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2494,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2491,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2506,
                      "src": "9931:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2490,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9931:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2493,
                      "name": "voter",
                      "nodeType": "VariableDeclaration",
                      "scope": 2506,
                      "src": "9948:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2492,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9948:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9930:32:3"
                },
                "returnParameters": {
                  "id": 2497,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2496,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2506,
                      "src": "9984:14:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Receipt_$1895_memory_ptr",
                        "typeString": "struct NikiGovernorAlpha.Receipt"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2495,
                        "name": "Receipt",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1895,
                        "src": "9984:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                          "typeString": "struct NikiGovernorAlpha.Receipt"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "9983:16:3"
                },
                "scope": 2861,
                "src": "9911:152:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2608,
                  "nodeType": "Block",
                  "src": "10139:981:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 2520,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2516,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2514,
                                "name": "proposalCount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1853,
                                "src": "10158:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 2515,
                                "name": "proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2508,
                                "src": "10175:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10158:27:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2519,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2517,
                                "name": "proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2508,
                                "src": "10189:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2518,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10202:1:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "10189:14:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "10158:45:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070726f706f73616c206964",
                            "id": 2521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10205:47:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_1b52f1beedb4aae259c0cbebfbacdcf6db0d25b5210c046cb26c2fc114d52bd0",
                              "typeString": "literal_string \"NikiGovernorAlpha::state: invalid proposal id\""
                            },
                            "value": "NikiGovernorAlpha::state: invalid proposal id"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_1b52f1beedb4aae259c0cbebfbacdcf6db0d25b5210c046cb26c2fc114d52bd0",
                              "typeString": "literal_string \"NikiGovernorAlpha::state: invalid proposal id\""
                            }
                          ],
                          "id": 2513,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "10150:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2522,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10150:103:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2523,
                      "nodeType": "ExpressionStatement",
                      "src": "10150:103:3"
                    },
                    {
                      "assignments": [
                        2525
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2525,
                          "name": "proposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2608,
                          "src": "10264:25:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2524,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "10264:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2529,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2526,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "10292:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2528,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2527,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2508,
                          "src": "10302:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10292:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "10264:49:3"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2530,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2525,
                          "src": "10328:8:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                          }
                        },
                        "id": 2531,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "canceled",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1881,
                        "src": "10328:17:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2536,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3966,
                              "src": "10413:5:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 2537,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "number",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10413:12:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2538,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2525,
                              "src": "10429:8:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2539,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "startBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1873,
                            "src": "10429:19:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10413:35:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2549,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2545,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "10515:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 2546,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10515:12:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2547,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2525,
                                "src": "10531:8:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                  "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                }
                              },
                              "id": 2548,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "endBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1875,
                              "src": "10531:17:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "10515:33:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 2564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2558,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2554,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2525,
                                    "src": "10614:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2555,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "forVotes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1877,
                                  "src": "10614:17:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2556,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2525,
                                    "src": "10635:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2557,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "againstVotes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1879,
                                  "src": "10635:21:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "10614:42:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2563,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2559,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2525,
                                    "src": "10660:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2560,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "forVotes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1877,
                                  "src": "10660:17:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 2561,
                                    "name": "quorumVotes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1815,
                                    "src": "10680:11:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                      "typeString": "function () pure returns (uint256)"
                                    }
                                  },
                                  "id": 2562,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10680:13:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "10660:33:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "10614:79:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2572,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2569,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2525,
                                    "src": "10761:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2570,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "eta",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1859,
                                  "src": "10761:12:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2571,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10777:1:3",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "10761:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2577,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2525,
                                    "src": "10847:8:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                      "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                    }
                                  },
                                  "id": 2578,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "executed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1883,
                                  "src": "10847:17:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "condition": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 2592,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2583,
                                        "name": "block",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3966,
                                        "src": "10932:5:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_block",
                                          "typeString": "block"
                                        }
                                      },
                                      "id": 2584,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "timestamp",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "10932:15:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 2586,
                                            "name": "proposal",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2525,
                                            "src": "10958:8:3",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                              "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                            }
                                          },
                                          "id": 2587,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "eta",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 1859,
                                          "src": "10958:12:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "arguments": [],
                                          "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 2588,
                                              "name": "timelock",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 1849,
                                              "src": "10972:8:3",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_NikiTimelockInterface_$2925",
                                                "typeString": "contract NikiTimelockInterface"
                                              }
                                            },
                                            "id": 2589,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "GRACE_PERIOD",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2871,
                                            "src": "10972:21:3",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                              "typeString": "function () view external returns (uint256)"
                                            }
                                          },
                                          "id": 2590,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10972:23:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 2585,
                                        "name": "add256",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2827,
                                        "src": "10951:6:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 2591,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10951:45:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "10932:64:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseBody": {
                                    "id": 2600,
                                    "nodeType": "Block",
                                    "src": "11059:54:3",
                                    "statements": [
                                      {
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 2597,
                                            "name": "ProposalState",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1904,
                                            "src": "11081:13:3",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                              "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                            }
                                          },
                                          "id": 2598,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberName": "Queued",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": null,
                                          "src": "11081:20:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_ProposalState_$1904",
                                            "typeString": "enum NikiGovernorAlpha.ProposalState"
                                          }
                                        },
                                        "functionReturnParameters": 2512,
                                        "id": 2599,
                                        "nodeType": "Return",
                                        "src": "11074:27:3"
                                      }
                                    ]
                                  },
                                  "id": 2601,
                                  "nodeType": "IfStatement",
                                  "src": "10928:185:3",
                                  "trueBody": {
                                    "id": 2596,
                                    "nodeType": "Block",
                                    "src": "10998:55:3",
                                    "statements": [
                                      {
                                        "expression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 2593,
                                            "name": "ProposalState",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1904,
                                            "src": "11020:13:3",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                              "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                            }
                                          },
                                          "id": 2594,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberName": "Expired",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": null,
                                          "src": "11020:21:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_ProposalState_$1904",
                                            "typeString": "enum NikiGovernorAlpha.ProposalState"
                                          }
                                        },
                                        "functionReturnParameters": 2512,
                                        "id": 2595,
                                        "nodeType": "Return",
                                        "src": "11013:28:3"
                                      }
                                    ]
                                  }
                                },
                                "id": 2602,
                                "nodeType": "IfStatement",
                                "src": "10843:270:3",
                                "trueBody": {
                                  "id": 2582,
                                  "nodeType": "Block",
                                  "src": "10866:56:3",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2579,
                                          "name": "ProposalState",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1904,
                                          "src": "10888:13:3",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                            "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                          }
                                        },
                                        "id": 2580,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "Executed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "10888:22:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_ProposalState_$1904",
                                          "typeString": "enum NikiGovernorAlpha.ProposalState"
                                        }
                                      },
                                      "functionReturnParameters": 2512,
                                      "id": 2581,
                                      "nodeType": "Return",
                                      "src": "10881:29:3"
                                    }
                                  ]
                                }
                              },
                              "id": 2603,
                              "nodeType": "IfStatement",
                              "src": "10757:356:3",
                              "trueBody": {
                                "id": 2576,
                                "nodeType": "Block",
                                "src": "10780:57:3",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2573,
                                        "name": "ProposalState",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1904,
                                        "src": "10802:13:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                          "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                        }
                                      },
                                      "id": 2574,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "Succeeded",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "10802:23:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_ProposalState_$1904",
                                        "typeString": "enum NikiGovernorAlpha.ProposalState"
                                      }
                                    },
                                    "functionReturnParameters": 2512,
                                    "id": 2575,
                                    "nodeType": "Return",
                                    "src": "10795:30:3"
                                  }
                                ]
                              }
                            },
                            "id": 2604,
                            "nodeType": "IfStatement",
                            "src": "10610:503:3",
                            "trueBody": {
                              "id": 2568,
                              "nodeType": "Block",
                              "src": "10695:56:3",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2565,
                                      "name": "ProposalState",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1904,
                                      "src": "10717:13:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                        "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                      }
                                    },
                                    "id": 2566,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "Defeated",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "10717:22:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ProposalState_$1904",
                                      "typeString": "enum NikiGovernorAlpha.ProposalState"
                                    }
                                  },
                                  "functionReturnParameters": 2512,
                                  "id": 2567,
                                  "nodeType": "Return",
                                  "src": "10710:29:3"
                                }
                              ]
                            }
                          },
                          "id": 2605,
                          "nodeType": "IfStatement",
                          "src": "10511:602:3",
                          "trueBody": {
                            "id": 2553,
                            "nodeType": "Block",
                            "src": "10550:54:3",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2550,
                                    "name": "ProposalState",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1904,
                                    "src": "10572:13:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                      "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                    }
                                  },
                                  "id": 2551,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Active",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "10572:20:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ProposalState_$1904",
                                    "typeString": "enum NikiGovernorAlpha.ProposalState"
                                  }
                                },
                                "functionReturnParameters": 2512,
                                "id": 2552,
                                "nodeType": "Return",
                                "src": "10565:27:3"
                              }
                            ]
                          }
                        },
                        "id": 2606,
                        "nodeType": "IfStatement",
                        "src": "10409:704:3",
                        "trueBody": {
                          "id": 2544,
                          "nodeType": "Block",
                          "src": "10450:55:3",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2541,
                                  "name": "ProposalState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1904,
                                  "src": "10472:13:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                    "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                  }
                                },
                                "id": 2542,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "Pending",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "10472:21:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ProposalState_$1904",
                                  "typeString": "enum NikiGovernorAlpha.ProposalState"
                                }
                              },
                              "functionReturnParameters": 2512,
                              "id": 2543,
                              "nodeType": "Return",
                              "src": "10465:28:3"
                            }
                          ]
                        }
                      },
                      "id": 2607,
                      "nodeType": "IfStatement",
                      "src": "10324:789:3",
                      "trueBody": {
                        "id": 2535,
                        "nodeType": "Block",
                        "src": "10347:56:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2532,
                                "name": "ProposalState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1904,
                                "src": "10369:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2533,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "Canceled",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10369:22:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "functionReturnParameters": 2512,
                            "id": 2534,
                            "nodeType": "Return",
                            "src": "10362:29:3"
                          }
                        ]
                      }
                    }
                  ]
                },
                "documentation": null,
                "id": 2609,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "state",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2509,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2508,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2609,
                      "src": "10086:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2507,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "10086:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "10085:17:3"
                },
                "returnParameters": {
                  "id": 2512,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2511,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2609,
                      "src": "10124:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ProposalState_$1904",
                        "typeString": "enum NikiGovernorAlpha.ProposalState"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2510,
                        "name": "ProposalState",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1904,
                        "src": "10124:13:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ProposalState_$1904",
                          "typeString": "enum NikiGovernorAlpha.ProposalState"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "10123:15:3"
                },
                "scope": 2861,
                "src": "10071:1049:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2623,
                  "nodeType": "Block",
                  "src": "11184:68:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2617,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3976,
                              "src": "11212:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2618,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "11212:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2619,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2611,
                            "src": "11224:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2620,
                            "name": "support",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2613,
                            "src": "11236:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 2616,
                          "name": "_castVote",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2802,
                          "src": "11202:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                            "typeString": "function (address,uint256,bool)"
                          }
                        },
                        "id": 2621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11202:42:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "functionReturnParameters": 2615,
                      "id": 2622,
                      "nodeType": "Return",
                      "src": "11195:49:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2624,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "castVote",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2614,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2611,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2624,
                      "src": "11146:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2610,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11146:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2613,
                      "name": "support",
                      "nodeType": "VariableDeclaration",
                      "scope": 2624,
                      "src": "11163:12:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2612,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "11163:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "11145:31:3"
                },
                "returnParameters": {
                  "id": 2615,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "11184:0:3"
                },
                "scope": 2861,
                "src": "11128:124:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2702,
                  "nodeType": "Block",
                  "src": "11352:537:3",
                  "statements": [
                    {
                      "assignments": [
                        2638
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2638,
                          "name": "domainSeparator",
                          "nodeType": "VariableDeclaration",
                          "scope": 2702,
                          "src": "11363:23:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 2637,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11363:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2655,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2642,
                                "name": "DOMAIN_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1917,
                                "src": "11410:15:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 2645,
                                        "name": "name",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1807,
                                        "src": "11443:4:3",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 2644,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "11437:5:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": "bytes"
                                    },
                                    "id": 2646,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11437:11:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 2643,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3970,
                                  "src": "11427:9:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 2647,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11427:22:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 2648,
                                  "name": "getChainId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2860,
                                  "src": "11451:10:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
                                    "typeString": "function () pure returns (uint256)"
                                  }
                                },
                                "id": 2649,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11451:12:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2651,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4002,
                                    "src": "11473:4:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_NikiGovernorAlpha_$2861",
                                      "typeString": "contract NikiGovernorAlpha"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_NikiGovernorAlpha_$2861",
                                      "typeString": "contract NikiGovernorAlpha"
                                    }
                                  ],
                                  "id": 2650,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "11465:7:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 2652,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "11465:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2640,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11399:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2641,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11399:10:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2653,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11399:80:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2639,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11389:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 2654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11389:91:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11363:117:3"
                    },
                    {
                      "assignments": [
                        2657
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2657,
                          "name": "structHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 2702,
                          "src": "11491:18:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 2656,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11491:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2666,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2661,
                                "name": "BALLOT_TYPEHASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1922,
                                "src": "11533:15:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2662,
                                "name": "proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2626,
                                "src": "11550:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2663,
                                "name": "support",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2628,
                                "src": "11562:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2659,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11522:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2660,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11522:10:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2664,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11522:48:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2658,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11512:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 2665,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11512:59:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11491:80:3"
                    },
                    {
                      "assignments": [
                        2668
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2668,
                          "name": "digest",
                          "nodeType": "VariableDeclaration",
                          "scope": 2702,
                          "src": "11582:14:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 2667,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "11582:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2677,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "1901",
                                "id": 2672,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11626:10:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                "value": "\u0019\u0001"
                              },
                              {
                                "argumentTypes": null,
                                "id": 2673,
                                "name": "domainSeparator",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2638,
                                "src": "11638:15:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2674,
                                "name": "structHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2657,
                                "src": "11655:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                                  "typeString": "literal_string \"\u0019\u0001\""
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2670,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "11609:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2671,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11609:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2675,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11609:57:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2669,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "11599:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 2676,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11599:68:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11582:85:3"
                    },
                    {
                      "assignments": [
                        2679
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2679,
                          "name": "signatory",
                          "nodeType": "VariableDeclaration",
                          "scope": 2702,
                          "src": "11678:17:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "typeName": {
                            "id": 2678,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11678:7:3",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2686,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2681,
                            "name": "digest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2668,
                            "src": "11708:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2682,
                            "name": "v",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2630,
                            "src": "11716:1:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2683,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2632,
                            "src": "11719:1:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2684,
                            "name": "s",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2634,
                            "src": "11722:1:3",
                            "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": 2680,
                          "name": "ecrecover",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3968,
                          "src": "11698:9:3",
                          "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": 2685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11698:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "11678:46:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 2692,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2688,
                              "name": "signatory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2679,
                              "src": "11743:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2690,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11764:1:3",
                                  "subdenomination": null,
                                  "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": 2689,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11756:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2691,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11756:10:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "11743:23:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265",
                            "id": 2693,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11768:53:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_42278f7b1846f7b3c7912a715db3b64d3fcad0060d57fd3877aa82e9c0dcbd40",
                              "typeString": "literal_string \"NikiGovernorAlpha::castVoteBySig: invalid signature\""
                            },
                            "value": "NikiGovernorAlpha::castVoteBySig: invalid signature"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_42278f7b1846f7b3c7912a715db3b64d3fcad0060d57fd3877aa82e9c0dcbd40",
                              "typeString": "literal_string \"NikiGovernorAlpha::castVoteBySig: invalid signature\""
                            }
                          ],
                          "id": 2687,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "11735:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11735:87:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2695,
                      "nodeType": "ExpressionStatement",
                      "src": "11735:87:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2697,
                            "name": "signatory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2679,
                            "src": "11850:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2698,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2626,
                            "src": "11861:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2699,
                            "name": "support",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2628,
                            "src": "11873:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 2696,
                          "name": "_castVote",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2802,
                          "src": "11840:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                            "typeString": "function (address,uint256,bool)"
                          }
                        },
                        "id": 2700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11840:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "functionReturnParameters": 2636,
                      "id": 2701,
                      "nodeType": "Return",
                      "src": "11833:48:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2703,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "castVoteBySig",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2635,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2626,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2703,
                      "src": "11283:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2625,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11283:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2628,
                      "name": "support",
                      "nodeType": "VariableDeclaration",
                      "scope": 2703,
                      "src": "11300:12:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2627,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "11300:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2630,
                      "name": "v",
                      "nodeType": "VariableDeclaration",
                      "scope": 2703,
                      "src": "11314:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 2629,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "11314:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2632,
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 2703,
                      "src": "11323:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2631,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11323:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2634,
                      "name": "s",
                      "nodeType": "VariableDeclaration",
                      "scope": 2703,
                      "src": "11334:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2633,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11334:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "11282:62:3"
                },
                "returnParameters": {
                  "id": 2636,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "11352:0:3"
                },
                "scope": 2861,
                "src": "11260:629:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 2801,
                  "nodeType": "Block",
                  "src": "11971:772:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_ProposalState_$1904",
                              "typeString": "enum NikiGovernorAlpha.ProposalState"
                            },
                            "id": 2718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2714,
                                  "name": "proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "11996:10:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 2713,
                                "name": "state",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2609,
                                "src": "11990:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "function (uint256) view returns (enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2715,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11990:17:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2716,
                                "name": "ProposalState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1904,
                                "src": "12011:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ProposalState_$1904_$",
                                  "typeString": "type(enum NikiGovernorAlpha.ProposalState)"
                                }
                              },
                              "id": 2717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "Active",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12011:20:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ProposalState_$1904",
                                "typeString": "enum NikiGovernorAlpha.ProposalState"
                              }
                            },
                            "src": "11990:41:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e6720697320636c6f736564",
                            "id": 2719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12033:48:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_9c03ace54137bb8782854ccc0ddf32906e1ccb37f4b21b1108ab4cfc21f9ba3c",
                              "typeString": "literal_string \"NikiGovernorAlpha::_castVote: voting is closed\""
                            },
                            "value": "NikiGovernorAlpha::_castVote: voting is closed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_9c03ace54137bb8782854ccc0ddf32906e1ccb37f4b21b1108ab4cfc21f9ba3c",
                              "typeString": "literal_string \"NikiGovernorAlpha::_castVote: voting is closed\""
                            }
                          ],
                          "id": 2712,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "11982:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11982:100:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2721,
                      "nodeType": "ExpressionStatement",
                      "src": "11982:100:3"
                    },
                    {
                      "assignments": [
                        2723
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2723,
                          "name": "proposal",
                          "nodeType": "VariableDeclaration",
                          "scope": 2801,
                          "src": "12093:25:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Proposal"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2722,
                            "name": "Proposal",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1888,
                            "src": "12093:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2727,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2724,
                          "name": "proposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1908,
                          "src": "12121:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$1888_storage_$",
                            "typeString": "mapping(uint256 => struct NikiGovernorAlpha.Proposal storage ref)"
                          }
                        },
                        "id": 2726,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2725,
                          "name": "proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "12131:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12121:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$1888_storage",
                          "typeString": "struct NikiGovernorAlpha.Proposal storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12093:49:3"
                    },
                    {
                      "assignments": [
                        2729
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2729,
                          "name": "receipt",
                          "nodeType": "VariableDeclaration",
                          "scope": 2801,
                          "src": "12153:23:3",
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                            "typeString": "struct NikiGovernorAlpha.Receipt"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 2728,
                            "name": "Receipt",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 1895,
                            "src": "12153:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Receipt"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2734,
                      "initialValue": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2730,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2723,
                            "src": "12179:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                            }
                          },
                          "id": 2731,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "receipts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1887,
                          "src": "12179:17:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$1895_storage_$",
                            "typeString": "mapping(address => struct NikiGovernorAlpha.Receipt storage ref)"
                          }
                        },
                        "id": 2733,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2732,
                          "name": "voter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2705,
                          "src": "12197:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12179:24:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Receipt_$1895_storage",
                          "typeString": "struct NikiGovernorAlpha.Receipt storage ref"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12153:50:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 2739,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2736,
                                "name": "receipt",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2729,
                                "src": "12222:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                                  "typeString": "struct NikiGovernorAlpha.Receipt storage pointer"
                                }
                              },
                              "id": 2737,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "hasVoted",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1890,
                              "src": "12222:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2738,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12242:5:3",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "12222:25:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74657220616c726561647920766f746564",
                            "id": 2740,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12249:51:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_bb89b55686fd027c045d743f2e28eccc9a78ae3e108b0fc47ff940c2950cd486",
                              "typeString": "literal_string \"NikiGovernorAlpha::_castVote: voter already voted\""
                            },
                            "value": "NikiGovernorAlpha::_castVote: voter already voted"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_bb89b55686fd027c045d743f2e28eccc9a78ae3e108b0fc47ff940c2950cd486",
                              "typeString": "literal_string \"NikiGovernorAlpha::_castVote: voter already voted\""
                            }
                          ],
                          "id": 2735,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "12214:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12214:87:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2742,
                      "nodeType": "ExpressionStatement",
                      "src": "12214:87:3"
                    },
                    {
                      "assignments": [
                        2744
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2744,
                          "name": "votes",
                          "nodeType": "VariableDeclaration",
                          "scope": 2801,
                          "src": "12312:12:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          },
                          "typeName": {
                            "id": 2743,
                            "name": "uint96",
                            "nodeType": "ElementaryTypeName",
                            "src": "12312:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2751,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2747,
                            "name": "voter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2705,
                            "src": "12346:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2748,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2723,
                              "src": "12353:8:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                              }
                            },
                            "id": 2749,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "startBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1873,
                            "src": "12353:19:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2745,
                            "name": "Niki",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1851,
                            "src": "12327:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_NikiInterface_$2935",
                              "typeString": "contract NikiInterface"
                            }
                          },
                          "id": 2746,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPriorVotes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2934,
                          "src": "12327:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$",
                            "typeString": "function (address,uint256) view external returns (uint96)"
                          }
                        },
                        "id": 2750,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12327:46:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12312:61:3"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "id": 2752,
                        "name": "support",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2709,
                        "src": "12390:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 2774,
                        "nodeType": "Block",
                        "src": "12484:87:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2764,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2723,
                                  "src": "12499:8:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                    "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                  }
                                },
                                "id": 2766,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "againstVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1879,
                                "src": "12499:21:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2768,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2723,
                                      "src": "12530:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2769,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "againstVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1879,
                                    "src": "12530:21:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2770,
                                    "name": "votes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2744,
                                    "src": "12553:5:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  ],
                                  "id": 2767,
                                  "name": "add256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2827,
                                  "src": "12523:6:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 2771,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12523:36:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12499:60:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2773,
                            "nodeType": "ExpressionStatement",
                            "src": "12499:60:3"
                          }
                        ]
                      },
                      "id": 2775,
                      "nodeType": "IfStatement",
                      "src": "12386:185:3",
                      "trueBody": {
                        "id": 2763,
                        "nodeType": "Block",
                        "src": "12399:79:3",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2761,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2753,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2723,
                                  "src": "12414:8:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                    "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                  }
                                },
                                "id": 2755,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "forVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1877,
                                "src": "12414:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2757,
                                      "name": "proposal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2723,
                                      "src": "12441:8:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Proposal_$1888_storage_ptr",
                                        "typeString": "struct NikiGovernorAlpha.Proposal storage pointer"
                                      }
                                    },
                                    "id": 2758,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "forVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1877,
                                    "src": "12441:17:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2759,
                                    "name": "votes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2744,
                                    "src": "12460:5:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint96",
                                      "typeString": "uint96"
                                    }
                                  ],
                                  "id": 2756,
                                  "name": "add256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2827,
                                  "src": "12434:6:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 2760,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12434:32:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12414:52:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2762,
                            "nodeType": "ExpressionStatement",
                            "src": "12414:52:3"
                          }
                        ]
                      }
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2776,
                            "name": "receipt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2729,
                            "src": "12583:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Receipt storage pointer"
                            }
                          },
                          "id": 2778,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "hasVoted",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1890,
                          "src": "12583:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 2779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12602:4:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "src": "12583:23:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2781,
                      "nodeType": "ExpressionStatement",
                      "src": "12583:23:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2782,
                            "name": "receipt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2729,
                            "src": "12617:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Receipt storage pointer"
                            }
                          },
                          "id": 2784,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "support",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1892,
                          "src": "12617:15:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2785,
                          "name": "support",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2709,
                          "src": "12635:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "12617:25:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 2787,
                      "nodeType": "ExpressionStatement",
                      "src": "12617:25:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2788,
                            "name": "receipt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2729,
                            "src": "12653:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Receipt_$1895_storage_ptr",
                              "typeString": "struct NikiGovernorAlpha.Receipt storage pointer"
                            }
                          },
                          "id": 2790,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "votes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1894,
                          "src": "12653:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 2791,
                          "name": "votes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2744,
                          "src": "12669:5:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "src": "12653:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "id": 2793,
                      "nodeType": "ExpressionStatement",
                      "src": "12653:21:3"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2795,
                            "name": "voter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2705,
                            "src": "12701:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2796,
                            "name": "proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2707,
                            "src": "12708:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2797,
                            "name": "support",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2709,
                            "src": "12720:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2798,
                            "name": "votes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2744,
                            "src": "12729:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          ],
                          "id": 2794,
                          "name": "VoteCast",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1956,
                          "src": "12692:8:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint256_$returns$__$",
                            "typeString": "function (address,uint256,bool,uint256)"
                          }
                        },
                        "id": 2799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12692:43:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2800,
                      "nodeType": "EmitStatement",
                      "src": "12687:48:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2802,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "_castVote",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2710,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2705,
                      "name": "voter",
                      "nodeType": "VariableDeclaration",
                      "scope": 2802,
                      "src": "11916:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2704,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11916:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2707,
                      "name": "proposalId",
                      "nodeType": "VariableDeclaration",
                      "scope": 2802,
                      "src": "11931:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2706,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11931:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2709,
                      "name": "support",
                      "nodeType": "VariableDeclaration",
                      "scope": 2802,
                      "src": "11948:12:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2708,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "11948:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "11915:46:3"
                },
                "returnParameters": {
                  "id": 2711,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "11971:0:3"
                },
                "scope": 2861,
                "src": "11897:846:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 2826,
                  "nodeType": "Block",
                  "src": "12818:99:3",
                  "statements": [
                    {
                      "assignments": [
                        2812
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2812,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 2826,
                          "src": "12829:6:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2811,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "12829:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2816,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2815,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2813,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2804,
                          "src": "12838:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2814,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2806,
                          "src": "12842:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12838:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "12829:14:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2820,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2818,
                              "name": "c",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2812,
                              "src": "12862:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2819,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2804,
                              "src": "12867:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12862:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "6164646974696f6e206f766572666c6f77",
                            "id": 2821,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12870:19:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5",
                              "typeString": "literal_string \"addition overflow\""
                            },
                            "value": "addition overflow"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5",
                              "typeString": "literal_string \"addition overflow\""
                            }
                          ],
                          "id": 2817,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "12854:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12854:36:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2823,
                      "nodeType": "ExpressionStatement",
                      "src": "12854:36:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2824,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2812,
                        "src": "12908:1:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 2810,
                      "id": 2825,
                      "nodeType": "Return",
                      "src": "12901:8:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2827,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "add256",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2807,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2804,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 2827,
                      "src": "12767:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2803,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12767:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2806,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 2827,
                      "src": "12778:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2805,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12778:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12766:22:3"
                },
                "returnParameters": {
                  "id": 2810,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2809,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2827,
                      "src": "12812:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2808,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12812:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12811:6:3"
                },
                "scope": 2861,
                "src": "12751:166:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 2847,
                  "nodeType": "Block",
                  "src": "12992:82:3",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2837,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2831,
                              "src": "13011:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2838,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2829,
                              "src": "13016:1:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13011:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "7375627472616374696f6e20756e646572666c6f77",
                            "id": 2840,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13019:23:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31",
                              "typeString": "literal_string \"subtraction underflow\""
                            },
                            "value": "subtraction underflow"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31",
                              "typeString": "literal_string \"subtraction underflow\""
                            }
                          ],
                          "id": 2836,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "13003:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 2841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13003:40:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 2842,
                      "nodeType": "ExpressionStatement",
                      "src": "13003:40:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2843,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2829,
                          "src": "13061:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2844,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2831,
                          "src": "13065:1:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13061:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 2835,
                      "id": 2846,
                      "nodeType": "Return",
                      "src": "13054:12:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2848,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "sub256",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2832,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2829,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 2848,
                      "src": "12941:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2828,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12941:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2831,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 2848,
                      "src": "12952:9:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2830,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12952:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12940:22:3"
                },
                "returnParameters": {
                  "id": 2835,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2834,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2848,
                      "src": "12986:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2833,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12986:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "12985:6:3"
                },
                "scope": 2861,
                "src": "12925:149:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 2859,
                  "nodeType": "Block",
                  "src": "13133:99:3",
                  "statements": [
                    {
                      "assignments": [
                        2854
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 2854,
                          "name": "chainId",
                          "nodeType": "VariableDeclaration",
                          "scope": 2859,
                          "src": "13144:12:3",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 2853,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "13144:4:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 2855,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "13144:12:3"
                    },
                    {
                      "externalReferences": [
                        {
                          "chainId": {
                            "declaration": 2854,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "13178:7:3",
                            "valueSize": 1
                          }
                        }
                      ],
                      "id": 2856,
                      "nodeType": "InlineAssembly",
                      "operations": "{ chainId := chainid() }",
                      "src": "13167:33:3"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 2857,
                        "name": "chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2854,
                        "src": "13217:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 2852,
                      "id": 2858,
                      "nodeType": "Return",
                      "src": "13210:14:3"
                    }
                  ]
                },
                "documentation": null,
                "id": 2860,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getChainId",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2849,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13101:2:3"
                },
                "returnParameters": {
                  "id": 2852,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2851,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2860,
                      "src": "13127:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2850,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13127:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13126:6:3"
                },
                "scope": 2861,
                "src": "13082:150:3",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              }
            ],
            "scope": 2936,
            "src": "63:13172:3"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 2925,
            "linearizedBaseContracts": [
              2925
            ],
            "name": "NikiTimelockInterface",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 2866,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "delay",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2862,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13292:2:3"
                },
                "returnParameters": {
                  "id": 2865,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2864,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2866,
                      "src": "13318:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2863,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13318:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13317:6:3"
                },
                "scope": 2925,
                "src": "13278:46:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2871,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "GRACE_PERIOD",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2867,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13351:2:3"
                },
                "returnParameters": {
                  "id": 2870,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2869,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2871,
                      "src": "13377:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2868,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13377:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13376:6:3"
                },
                "scope": 2925,
                "src": "13330:53:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2874,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "acceptAdmin",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2872,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13409:2:3"
                },
                "returnParameters": {
                  "id": 2873,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13420:0:3"
                },
                "scope": 2925,
                "src": "13389:32:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2881,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "queuedTransactions",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2877,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2876,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2881,
                      "src": "13455:12:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2875,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "13455:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13454:14:3"
                },
                "returnParameters": {
                  "id": 2880,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2879,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2881,
                      "src": "13492:4:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2878,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "13492:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13491:6:3"
                },
                "scope": 2925,
                "src": "13427:71:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2896,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "queueTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2892,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2883,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13530:14:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2882,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13530:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2885,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13546:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2884,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13546:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2887,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13558:25:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2886,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "13558:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2889,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13585:19:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2888,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "13585:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2891,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13606:8:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2890,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13606:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13529:86:3"
                },
                "returnParameters": {
                  "id": 2895,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2894,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2896,
                      "src": "13634:7:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2893,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "13634:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13633:9:3"
                },
                "scope": 2925,
                "src": "13504:139:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2909,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "cancelTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2907,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2898,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2909,
                      "src": "13676:14:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2897,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13676:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2900,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2909,
                      "src": "13692:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2899,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13692:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2902,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2909,
                      "src": "13704:25:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2901,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "13704:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2904,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2909,
                      "src": "13731:19:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2903,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "13731:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2906,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2909,
                      "src": "13752:8:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2905,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13752:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13675:86:3"
                },
                "returnParameters": {
                  "id": 2908,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "13770:0:3"
                },
                "scope": 2925,
                "src": "13649:122:3",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 2924,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "executeTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2920,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2911,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13805:14:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2910,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13805:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2913,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13821:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2912,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13821:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2915,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13833:25:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2914,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "13833:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2917,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13860:19:3",
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2916,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "13860:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2919,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13881:8:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2918,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13881:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13804:86:3"
                },
                "returnParameters": {
                  "id": 2923,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2922,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2924,
                      "src": "13917:12:3",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2921,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "13917:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13916:14:3"
                },
                "scope": 2925,
                "src": "13777:154:3",
                "stateMutability": "payable",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 2936,
            "src": "13239:695:3"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 2935,
            "linearizedBaseContracts": [
              2935
            ],
            "name": "NikiInterface",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 2934,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "getPriorVotes",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 2930,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2927,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 2934,
                      "src": "13992:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2926,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "13992:7:3",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2929,
                      "name": "blockNumber",
                      "nodeType": "VariableDeclaration",
                      "scope": 2934,
                      "src": "14009:16:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2928,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "14009:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "13991:35:3"
                },
                "returnParameters": {
                  "id": 2933,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2932,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2934,
                      "src": "14050:6:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint96",
                        "typeString": "uint96"
                      },
                      "typeName": {
                        "id": 2931,
                        "name": "uint96",
                        "nodeType": "ElementaryTypeName",
                        "src": "14050:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "14049:8:3"
                },
                "scope": 2935,
                "src": "13969:89:3",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 2936,
            "src": "13938:123:3"
          }
        ],
        "src": "0:14063:3"
      }
    },
    "contracts/NikiTimelock.sol": {
      "id": 4,
      "AST": {
        "absolutePath": "contracts/NikiTimelock.sol",
        "exportedSymbols": {
          "NikiTimelock": [
            3389
          ]
        },
        "id": 3390,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 2937,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:4"
          },
          {
            "absolutePath": "contracts/SafeMath.sol",
            "file": "./SafeMath.sol",
            "id": 2938,
            "nodeType": "ImportDirective",
            "scope": 3390,
            "sourceUnit": 3962,
            "src": "28:24:4",
            "symbolAliases": [],
            "unitAlias": ""
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 3389,
            "linearizedBaseContracts": [
              3389
            ],
            "name": "NikiTimelock",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "id": 2941,
                "libraryName": {
                  "contractScope": null,
                  "id": 2939,
                  "name": "SafeMath",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3961,
                  "src": "91:8:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SafeMath_$3961",
                    "typeString": "library SafeMath"
                  }
                },
                "nodeType": "UsingForDirective",
                "src": "85:24:4",
                "typeName": {
                  "id": 2940,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "104:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                }
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2945,
                "name": "NewAdmin",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2944,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2943,
                      "indexed": true,
                      "name": "newAdmin",
                      "nodeType": "VariableDeclaration",
                      "scope": 2945,
                      "src": "132:24:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2942,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "132:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "131:26:4"
                },
                "src": "117:41:4"
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2949,
                "name": "NewPendingAdmin",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2948,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2947,
                      "indexed": true,
                      "name": "newPendingAdmin",
                      "nodeType": "VariableDeclaration",
                      "scope": 2949,
                      "src": "186:31:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2946,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "186:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "185:33:4"
                },
                "src": "164:55:4"
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2953,
                "name": "NewDelay",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2952,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2951,
                      "indexed": true,
                      "name": "newDelay",
                      "nodeType": "VariableDeclaration",
                      "scope": 2953,
                      "src": "240:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2950,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "240:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "239:23:4"
                },
                "src": "225:38:4"
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2967,
                "name": "CancelTransaction",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2966,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2955,
                      "indexed": true,
                      "name": "txHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "293:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2954,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "293:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2957,
                      "indexed": true,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "317:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2956,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "317:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2959,
                      "indexed": false,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "341:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2958,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "341:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2961,
                      "indexed": false,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "353:16:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2960,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "353:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2963,
                      "indexed": false,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "372:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2962,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "372:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2965,
                      "indexed": false,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2967,
                      "src": "384:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2964,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "384:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "292:101:4"
                },
                "src": "269:125:4"
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2981,
                "name": "ExecuteTransaction",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2980,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2969,
                      "indexed": true,
                      "name": "txHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "425:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2968,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "425:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2971,
                      "indexed": true,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "449:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2970,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "449:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2973,
                      "indexed": false,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "473:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2972,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "473:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2975,
                      "indexed": false,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "485:16:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2974,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "485:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2977,
                      "indexed": false,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "504:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2976,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "504:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2979,
                      "indexed": false,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2981,
                      "src": "516:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2978,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "516:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "424:101:4"
                },
                "src": "400:126:4"
              },
              {
                "anonymous": false,
                "documentation": null,
                "id": 2995,
                "name": "QueueTransaction",
                "nodeType": "EventDefinition",
                "parameters": {
                  "id": 2994,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2983,
                      "indexed": true,
                      "name": "txHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "555:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2982,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "555:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2985,
                      "indexed": true,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "579:22:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2984,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "579:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2987,
                      "indexed": false,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "603:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2986,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "603:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2989,
                      "indexed": false,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "615:16:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2988,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "615:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2991,
                      "indexed": false,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "633:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 2990,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "633:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2993,
                      "indexed": false,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 2995,
                      "src": "645:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2992,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "645:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "554:100:4"
                },
                "src": "532:123:4"
              },
              {
                "constant": true,
                "id": 2998,
                "name": "GRACE_PERIOD",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "663:43:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2996,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "663:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "3134",
                  "id": 2997,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "699:7:4",
                  "subdenomination": "days",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_1209600_by_1",
                    "typeString": "int_const 1209600"
                  },
                  "value": "14"
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 3001,
                "name": "MINIMUM_DELAY",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "713:43:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2999,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "713:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "32",
                  "id": 3000,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "750:6:4",
                  "subdenomination": "days",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_172800_by_1",
                    "typeString": "int_const 172800"
                  },
                  "value": "2"
                },
                "visibility": "public"
              },
              {
                "constant": true,
                "id": 3004,
                "name": "MAXIMUM_DELAY",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "763:44:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3002,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "763:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": {
                  "argumentTypes": null,
                  "hexValue": "3330",
                  "id": 3003,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "800:7:4",
                  "subdenomination": "days",
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_2592000_by_1",
                    "typeString": "int_const 2592000"
                  },
                  "value": "30"
                },
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3006,
                "name": "admin",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "816:20:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3005,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "816:7:4",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3008,
                "name": "pendingAdmin",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "843:27:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3007,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "843:7:4",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3010,
                "name": "delay",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "877:17:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3009,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "877:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3014,
                "name": "queuedTransactions",
                "nodeType": "VariableDeclaration",
                "scope": 3389,
                "src": "903:51:4",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                  "typeString": "mapping(bytes32 => bool)"
                },
                "typeName": {
                  "id": 3013,
                  "keyType": {
                    "id": 3011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "912:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "903:25:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                    "typeString": "mapping(bytes32 => bool)"
                  },
                  "valueType": {
                    "id": 3012,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "923:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3043,
                  "nodeType": "Block",
                  "src": "1013:273:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3024,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3022,
                              "name": "delay_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3018,
                              "src": "1032:6:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3023,
                              "name": "MINIMUM_DELAY",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3001,
                              "src": "1042:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1032:23:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e",
                            "id": 3025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1057:61:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f7f371749d9011016423d426340cf934413933aba2192e521f1abe3b840fd357",
                              "typeString": "literal_string \"NikiTimelock::constructor: Delay must exceed minimum delay.\""
                            },
                            "value": "NikiTimelock::constructor: Delay must exceed minimum delay."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f7f371749d9011016423d426340cf934413933aba2192e521f1abe3b840fd357",
                              "typeString": "literal_string \"NikiTimelock::constructor: Delay must exceed minimum delay.\""
                            }
                          ],
                          "id": 3021,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1024:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1024:95:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3027,
                      "nodeType": "ExpressionStatement",
                      "src": "1024:95:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3031,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3029,
                              "name": "delay_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3018,
                              "src": "1138:6:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3030,
                              "name": "MAXIMUM_DELAY",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3004,
                              "src": "1148:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1138:23:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e",
                            "id": 3032,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1163:62:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e7c01e7454c4409e0208b50f9346d6b149b7369bfaa79d41c4d343fa91a3d099",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must not exceed maximum delay.\""
                            },
                            "value": "NikiTimelock::setDelay: Delay must not exceed maximum delay."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_e7c01e7454c4409e0208b50f9346d6b149b7369bfaa79d41c4d343fa91a3d099",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must not exceed maximum delay.\""
                            }
                          ],
                          "id": 3028,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1130:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3033,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:96:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3034,
                      "nodeType": "ExpressionStatement",
                      "src": "1130:96:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3035,
                          "name": "admin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3006,
                          "src": "1239:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3036,
                          "name": "admin_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3016,
                          "src": "1247:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1239:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3038,
                      "nodeType": "ExpressionStatement",
                      "src": "1239:14:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3039,
                          "name": "delay",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3010,
                          "src": "1264:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3040,
                          "name": "delay_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3018,
                          "src": "1272:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1264:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3042,
                      "nodeType": "ExpressionStatement",
                      "src": "1264:14:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3044,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3019,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3016,
                      "name": "admin_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3044,
                      "src": "977:14:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3015,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "977:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3018,
                      "name": "delay_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3044,
                      "src": "993:11:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3017,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "993:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "976:29:4"
                },
                "returnParameters": {
                  "id": 3020,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1013:0:4"
                },
                "scope": 3389,
                "src": "965:321:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3047,
                  "nodeType": "Block",
                  "src": "1322:3:4",
                  "statements": []
                },
                "documentation": null,
                "id": 3048,
                "implemented": true,
                "kind": "fallback",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3045,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1302:2:4"
                },
                "returnParameters": {
                  "id": 3046,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1322:0:4"
                },
                "scope": 3389,
                "src": "1294:31:4",
                "stateMutability": "payable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": {
                  "id": 3085,
                  "nodeType": "Block",
                  "src": "1371:384:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "id": 3059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3054,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1390:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3055,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1390:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3057,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4008,
                                  "src": "1412:4:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiTimelock_$3389",
                                    "typeString": "contract NikiTimelock"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_NikiTimelock_$3389",
                                    "typeString": "contract NikiTimelock"
                                  }
                                ],
                                "id": 3056,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1404:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 3058,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1404:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "1390:27:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e",
                            "id": 3060,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1419:59:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_b1ae73c6e5603c9fd8e9f332805a3ec547f54926b7c8b0f79e75188f7b07754e",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Call must come from NikiTimelock.\""
                            },
                            "value": "NikiTimelock::setDelay: Call must come from NikiTimelock."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_b1ae73c6e5603c9fd8e9f332805a3ec547f54926b7c8b0f79e75188f7b07754e",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Call must come from NikiTimelock.\""
                            }
                          ],
                          "id": 3053,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1382:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1382:97:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3062,
                      "nodeType": "ExpressionStatement",
                      "src": "1382:97:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3066,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3064,
                              "name": "delay_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3050,
                              "src": "1498:6:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3065,
                              "name": "MINIMUM_DELAY",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3001,
                              "src": "1508:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1498:23:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e",
                            "id": 3067,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1523:58:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_5e4b478755991ef19e59cd395dad892ebfaeb908d61a7657e7a09f449268fe19",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must exceed minimum delay.\""
                            },
                            "value": "NikiTimelock::setDelay: Delay must exceed minimum delay."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_5e4b478755991ef19e59cd395dad892ebfaeb908d61a7657e7a09f449268fe19",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must exceed minimum delay.\""
                            }
                          ],
                          "id": 3063,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1490:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1490:92:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3069,
                      "nodeType": "ExpressionStatement",
                      "src": "1490:92:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3073,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3071,
                              "name": "delay_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3050,
                              "src": "1601:6:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3072,
                              "name": "MAXIMUM_DELAY",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3004,
                              "src": "1611:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1601:23:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e",
                            "id": 3074,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1626:62:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e7c01e7454c4409e0208b50f9346d6b149b7369bfaa79d41c4d343fa91a3d099",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must not exceed maximum delay.\""
                            },
                            "value": "NikiTimelock::setDelay: Delay must not exceed maximum delay."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_e7c01e7454c4409e0208b50f9346d6b149b7369bfaa79d41c4d343fa91a3d099",
                              "typeString": "literal_string \"NikiTimelock::setDelay: Delay must not exceed maximum delay.\""
                            }
                          ],
                          "id": 3070,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1593:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1593:96:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3076,
                      "nodeType": "ExpressionStatement",
                      "src": "1593:96:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3077,
                          "name": "delay",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3010,
                          "src": "1700:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3078,
                          "name": "delay_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3050,
                          "src": "1708:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1700:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3080,
                      "nodeType": "ExpressionStatement",
                      "src": "1700:14:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3082,
                            "name": "delay",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3010,
                            "src": "1741:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 3081,
                          "name": "NewDelay",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2953,
                          "src": "1732:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                            "typeString": "function (uint256)"
                          }
                        },
                        "id": 3083,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1732:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3084,
                      "nodeType": "EmitStatement",
                      "src": "1727:20:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3086,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setDelay",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3051,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3050,
                      "name": "delay_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3086,
                      "src": "1351:11:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3049,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1351:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1350:13:4"
                },
                "returnParameters": {
                  "id": 3052,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1371:0:4"
                },
                "scope": 3389,
                "src": "1333:422:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3112,
                  "nodeType": "Block",
                  "src": "1793:216:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3093,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3090,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1812:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3091,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1812:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3092,
                              "name": "pendingAdmin",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3008,
                              "src": "1826:12:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1812:26:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e",
                            "id": 3094,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1840:62:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_e7af7f869c4dffe5e4a0e766b129c14a21c655ed37638323b14d5949bf396b71",
                              "typeString": "literal_string \"NikiTimelock::acceptAdmin: Call must come from pendingAdmin.\""
                            },
                            "value": "NikiTimelock::acceptAdmin: Call must come from pendingAdmin."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_e7af7f869c4dffe5e4a0e766b129c14a21c655ed37638323b14d5949bf396b71",
                              "typeString": "literal_string \"NikiTimelock::acceptAdmin: Call must come from pendingAdmin.\""
                            }
                          ],
                          "id": 3089,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1804:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1804:99:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3096,
                      "nodeType": "ExpressionStatement",
                      "src": "1804:99:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3100,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3097,
                          "name": "admin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3006,
                          "src": "1914:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3098,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3976,
                            "src": "1922:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3099,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1922:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "1914:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3101,
                      "nodeType": "ExpressionStatement",
                      "src": "1914:18:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3106,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3102,
                          "name": "pendingAdmin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3008,
                          "src": "1943:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3104,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1966:1:4",
                              "subdenomination": null,
                              "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": 3103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1958:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 3105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1958:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "1943:25:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3107,
                      "nodeType": "ExpressionStatement",
                      "src": "1943:25:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3109,
                            "name": "admin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3006,
                            "src": "1995:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3108,
                          "name": "NewAdmin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2945,
                          "src": "1986:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address)"
                          }
                        },
                        "id": 3110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1986:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3111,
                      "nodeType": "EmitStatement",
                      "src": "1981:20:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3113,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "acceptAdmin",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3087,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1783:2:4"
                },
                "returnParameters": {
                  "id": 3088,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1793:0:4"
                },
                "scope": 3389,
                "src": "1763:246:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3136,
                  "nodeType": "Block",
                  "src": "2072:209:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "id": 3124,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3119,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "2091:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3120,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2091:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3122,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4008,
                                  "src": "2113:4:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_NikiTimelock_$3389",
                                    "typeString": "contract NikiTimelock"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_NikiTimelock_$3389",
                                    "typeString": "contract NikiTimelock"
                                  }
                                ],
                                "id": 3121,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2105:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 3123,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2105:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "src": "2091:27:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d204e696b6954696d656c6f636b2e",
                            "id": 3125,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2120:66:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_7619518b8bcef3468c33824b72145238580edee1e2cffb4482df68c82eb83a91",
                              "typeString": "literal_string \"NikiTimelock::setPendingAdmin: Call must come from NikiTimelock.\""
                            },
                            "value": "NikiTimelock::setPendingAdmin: Call must come from NikiTimelock."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_7619518b8bcef3468c33824b72145238580edee1e2cffb4482df68c82eb83a91",
                              "typeString": "literal_string \"NikiTimelock::setPendingAdmin: Call must come from NikiTimelock.\""
                            }
                          ],
                          "id": 3118,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "2083:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3126,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2083:104:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3127,
                      "nodeType": "ExpressionStatement",
                      "src": "2083:104:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3130,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3128,
                          "name": "pendingAdmin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3008,
                          "src": "2198:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3129,
                          "name": "pendingAdmin_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3115,
                          "src": "2213:13:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2198:28:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3131,
                      "nodeType": "ExpressionStatement",
                      "src": "2198:28:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3133,
                            "name": "pendingAdmin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3008,
                            "src": "2260:12:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3132,
                          "name": "NewPendingAdmin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2949,
                          "src": "2244:15:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address)"
                          }
                        },
                        "id": 3134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2244:29:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3135,
                      "nodeType": "EmitStatement",
                      "src": "2239:34:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3137,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setPendingAdmin",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3116,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3115,
                      "name": "pendingAdmin_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3137,
                      "src": "2042:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3114,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2042:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2041:23:4"
                },
                "returnParameters": {
                  "id": 3117,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "2072:0:4"
                },
                "scope": 3389,
                "src": "2017:264:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3201,
                  "nodeType": "Block",
                  "src": "2422:482:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3156,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3153,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "2441:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3154,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2441:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3155,
                              "name": "admin",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3006,
                              "src": "2455:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "2441:19:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e",
                            "id": 3157,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2462:60:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_cf6dd0dcbf3aade7a49ed25eb9b8ca3b94c18fbb5f8dc59ec11a0149b3966e42",
                              "typeString": "literal_string \"NikiTimelock::queueTransaction: Call must come from admin.\""
                            },
                            "value": "NikiTimelock::queueTransaction: Call must come from admin."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_cf6dd0dcbf3aade7a49ed25eb9b8ca3b94c18fbb5f8dc59ec11a0149b3966e42",
                              "typeString": "literal_string \"NikiTimelock::queueTransaction: Call must come from admin.\""
                            }
                          ],
                          "id": 3152,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "2433:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3158,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2433:90:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3159,
                      "nodeType": "ExpressionStatement",
                      "src": "2433:90:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3161,
                              "name": "eta",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3147,
                              "src": "2542:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3165,
                                  "name": "delay",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3010,
                                  "src": "2573:5:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 3162,
                                    "name": "getBlockTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3388,
                                    "src": "2549:17:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view returns (uint256)"
                                    }
                                  },
                                  "id": 3163,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2549:19:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 3164,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3738,
                                "src": "2549:23:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 3166,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2549:30:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2542:37:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e",
                            "id": 3168,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2581:79:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_7796854cb64544dca662db6a05fa046c97c0fc8a351f14bece104897c7d89f89",
                              "typeString": "literal_string \"NikiTimelock::queueTransaction: Estimated execution block must satisfy delay.\""
                            },
                            "value": "NikiTimelock::queueTransaction: Estimated execution block must satisfy delay."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_7796854cb64544dca662db6a05fa046c97c0fc8a351f14bece104897c7d89f89",
                              "typeString": "literal_string \"NikiTimelock::queueTransaction: Estimated execution block must satisfy delay.\""
                            }
                          ],
                          "id": 3160,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "2534:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3169,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2534:127:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3170,
                      "nodeType": "ExpressionStatement",
                      "src": "2534:127:4"
                    },
                    {
                      "assignments": [
                        3172
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3172,
                          "name": "txHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 3201,
                          "src": "2674:14:4",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 3171,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2674:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3183,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3176,
                                "name": "target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3139,
                                "src": "2712:6:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3177,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3141,
                                "src": "2720:5:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3178,
                                "name": "signature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3143,
                                "src": "2727:9:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3179,
                                "name": "data",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3145,
                                "src": "2738:4:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3180,
                                "name": "eta",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3147,
                                "src": "2744:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3174,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "2701:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 3175,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2701:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 3181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2701:47:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3173,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "2691:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 3182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2691:58:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2674:75:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3188,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3184,
                            "name": "queuedTransactions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3014,
                            "src": "2760:18:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 3186,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3185,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3172,
                            "src": "2779:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "2760:26:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 3187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2789:4:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "src": "2760:33:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 3189,
                      "nodeType": "ExpressionStatement",
                      "src": "2760:33:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3191,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3172,
                            "src": "2828:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3192,
                            "name": "target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3139,
                            "src": "2836:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3193,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3141,
                            "src": "2844:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3194,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3143,
                            "src": "2851:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3195,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3145,
                            "src": "2862:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3196,
                            "name": "eta",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3147,
                            "src": "2868:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 3190,
                          "name": "QueueTransaction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2995,
                          "src": "2811:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                            "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)"
                          }
                        },
                        "id": 3197,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2811:61:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3198,
                      "nodeType": "EmitStatement",
                      "src": "2806:66:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3199,
                        "name": "txHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3172,
                        "src": "2890:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "functionReturnParameters": 3151,
                      "id": 3200,
                      "nodeType": "Return",
                      "src": "2883:13:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3202,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "queueTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3148,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3139,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2315:14:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3138,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2315:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3141,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2331:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3140,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2331:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3143,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2343:23:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3142,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2343:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3145,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2368:17:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3144,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "2368:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3147,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2387:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3146,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2387:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2314:82:4"
                },
                "returnParameters": {
                  "id": 3151,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3150,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3202,
                      "src": "2413:7:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3149,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2413:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2412:9:4"
                },
                "scope": 3389,
                "src": "2289:615:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3251,
                  "nodeType": "Block",
                  "src": "3028:323:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3216,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "3047:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3047:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3218,
                              "name": "admin",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3006,
                              "src": "3061:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "3047:19:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e",
                            "id": 3220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3068:61:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_ada33e8d1771f527bba49f9ac44b778e9c5444bd4fef487a4191e074f8192db0",
                              "typeString": "literal_string \"NikiTimelock::cancelTransaction: Call must come from admin.\""
                            },
                            "value": "NikiTimelock::cancelTransaction: Call must come from admin."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_ada33e8d1771f527bba49f9ac44b778e9c5444bd4fef487a4191e074f8192db0",
                              "typeString": "literal_string \"NikiTimelock::cancelTransaction: Call must come from admin.\""
                            }
                          ],
                          "id": 3215,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3039:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3039:91:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3222,
                      "nodeType": "ExpressionStatement",
                      "src": "3039:91:4"
                    },
                    {
                      "assignments": [
                        3224
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3224,
                          "name": "txHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 3251,
                          "src": "3143:14:4",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 3223,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3143:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3235,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3228,
                                "name": "target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3204,
                                "src": "3181:6:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3229,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3206,
                                "src": "3189:5:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3230,
                                "name": "signature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3208,
                                "src": "3196:9:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3231,
                                "name": "data",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3210,
                                "src": "3207:4:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3232,
                                "name": "eta",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3212,
                                "src": "3213:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3226,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "3170:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 3227,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3170:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 3233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3170:47:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3225,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "3160:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 3234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3160:58:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "3143:75:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3236,
                            "name": "queuedTransactions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3014,
                            "src": "3229:18:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 3238,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3237,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3224,
                            "src": "3248:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "3229:26:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3258:5:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "src": "3229:34:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 3241,
                      "nodeType": "ExpressionStatement",
                      "src": "3229:34:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3243,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3224,
                            "src": "3299:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3244,
                            "name": "target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3204,
                            "src": "3307:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3245,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3206,
                            "src": "3315:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3246,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3208,
                            "src": "3322:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3247,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3210,
                            "src": "3333:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3248,
                            "name": "eta",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3212,
                            "src": "3339:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 3242,
                          "name": "CancelTransaction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2967,
                          "src": "3281:17:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                            "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)"
                          }
                        },
                        "id": 3249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3281:62:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3250,
                      "nodeType": "EmitStatement",
                      "src": "3276:67:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3252,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "cancelTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3213,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3204,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 3252,
                      "src": "2939:14:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3203,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2939:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3206,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 3252,
                      "src": "2955:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3205,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2955:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3208,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 3252,
                      "src": "2967:23:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3207,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2967:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3210,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 3252,
                      "src": "2992:17:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3209,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "2992:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3212,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 3252,
                      "src": "3011:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3211,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3011:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2938:82:4"
                },
                "returnParameters": {
                  "id": 3214,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "3028:0:4"
                },
                "scope": 3389,
                "src": "2912:439:4",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3378,
                  "nodeType": "Block",
                  "src": "3507:1188:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3268,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "3526:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3269,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3526:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3270,
                              "name": "admin",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3006,
                              "src": "3540:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "3526:19:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e",
                            "id": 3272,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3547:62:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_660c55c33e3512010a6c8e40696557e0b34ccccc6ce77aa544fda983a1a5d73d",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Call must come from admin.\""
                            },
                            "value": "NikiTimelock::executeTransaction: Call must come from admin."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_660c55c33e3512010a6c8e40696557e0b34ccccc6ce77aa544fda983a1a5d73d",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Call must come from admin.\""
                            }
                          ],
                          "id": 3267,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3518:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3273,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3518:92:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3274,
                      "nodeType": "ExpressionStatement",
                      "src": "3518:92:4"
                    },
                    {
                      "assignments": [
                        3276
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3276,
                          "name": "txHash",
                          "nodeType": "VariableDeclaration",
                          "scope": 3378,
                          "src": "3623:14:4",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 3275,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3623:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3287,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3280,
                                "name": "target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3254,
                                "src": "3661:6:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3281,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3256,
                                "src": "3669:5:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3282,
                                "name": "signature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3258,
                                "src": "3676:9:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3283,
                                "name": "data",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3260,
                                "src": "3687:4:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3284,
                                "name": "eta",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3262,
                                "src": "3693:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3278,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3963,
                                "src": "3650:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 3279,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3650:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 3285,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3650:47:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3277,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3970,
                          "src": "3640:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 3286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3640:58:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "3623:75:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3289,
                              "name": "queuedTransactions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3014,
                              "src": "3717:18:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                              }
                            },
                            "id": 3291,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3290,
                              "name": "txHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3276,
                              "src": "3736:6:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3717:26:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e",
                            "id": 3292,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3745:67:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_602528ad836643590b9fc830f02fd05bbde671bcb96595b01d308eeb7ac925cd",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction hasn't been queued.\""
                            },
                            "value": "NikiTimelock::executeTransaction: Transaction hasn't been queued."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_602528ad836643590b9fc830f02fd05bbde671bcb96595b01d308eeb7ac925cd",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction hasn't been queued.\""
                            }
                          ],
                          "id": 3288,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3709:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3709:104:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3294,
                      "nodeType": "ExpressionStatement",
                      "src": "3709:104:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3299,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 3296,
                                "name": "getBlockTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3388,
                                "src": "3832:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 3297,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3832:19:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3298,
                              "name": "eta",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3262,
                              "src": "3855:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3832:26:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e",
                            "id": 3300,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3860:75:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_bb5ec74bf9978e8e8aa90901a4128b399fa8adb8c24b4b3b68ff35ee2bcffcf1",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction hasn't surpassed time lock.\""
                            },
                            "value": "NikiTimelock::executeTransaction: Transaction hasn't surpassed time lock."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_bb5ec74bf9978e8e8aa90901a4128b399fa8adb8c24b4b3b68ff35ee2bcffcf1",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction hasn't surpassed time lock.\""
                            }
                          ],
                          "id": 3295,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3824:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3824:112:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3302,
                      "nodeType": "ExpressionStatement",
                      "src": "3824:112:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3310,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 3304,
                                "name": "getBlockTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3388,
                                "src": "3955:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 3305,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3955:19:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3308,
                                  "name": "GRACE_PERIOD",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2998,
                                  "src": "3986:12:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3306,
                                  "name": "eta",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3262,
                                  "src": "3978:3:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 3307,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3738,
                                "src": "3978:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 3309,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3978:21:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3955:44:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e",
                            "id": 3311,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4001:57:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_099704525f4b389a130ad0c3a9c768026463345cdc3830b85c43a1ee89bdbc6b",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction is stale.\""
                            },
                            "value": "NikiTimelock::executeTransaction: Transaction is stale."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_099704525f4b389a130ad0c3a9c768026463345cdc3830b85c43a1ee89bdbc6b",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction is stale.\""
                            }
                          ],
                          "id": 3303,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3947:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3312,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3947:112:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3313,
                      "nodeType": "ExpressionStatement",
                      "src": "3947:112:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3314,
                            "name": "queuedTransactions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3014,
                            "src": "4072:18:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 3316,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3315,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3276,
                            "src": "4091:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "4072:26:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3317,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4101:5:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "src": "4072:34:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 3319,
                      "nodeType": "ExpressionStatement",
                      "src": "4072:34:4"
                    },
                    {
                      "assignments": [
                        3321
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3321,
                          "name": "callData",
                          "nodeType": "VariableDeclaration",
                          "scope": 3378,
                          "src": "4119:21:4",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes"
                          },
                          "typeName": {
                            "id": 3320,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "4119:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_storage_ptr",
                              "typeString": "bytes"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3322,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4119:21:4"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3324,
                                "name": "signature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3258,
                                "src": "4163:9:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 3323,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4157:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3325,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4157:16:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4157:23:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3327,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4184:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4157:28:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 3348,
                        "nodeType": "Block",
                        "src": "4235:97:4",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 3346,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 3334,
                                "name": "callData",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3321,
                                "src": "4250:8:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 3340,
                                                "name": "signature",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3258,
                                                "src": "4301:9:4",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              ],
                                              "id": 3339,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "4295:5:4",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                "typeString": "type(bytes storage pointer)"
                                              },
                                              "typeName": "bytes"
                                            },
                                            "id": 3341,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4295:16:4",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 3338,
                                          "name": "keccak256",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 3970,
                                          "src": "4285:9:4",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes memory) pure returns (bytes32)"
                                          }
                                        },
                                        "id": 3342,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4285:27:4",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 3337,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4278:6:4",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes4_$",
                                        "typeString": "type(bytes4)"
                                      },
                                      "typeName": "bytes4"
                                    },
                                    "id": 3343,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4278:35:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 3344,
                                    "name": "data",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3260,
                                    "src": "4315:4:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes4",
                                      "typeString": "bytes4"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3335,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3963,
                                    "src": "4261:3:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 3336,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "encodePacked",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4261:16:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 3345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4261:59:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "src": "4250:70:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3347,
                            "nodeType": "ExpressionStatement",
                            "src": "4250:70:4"
                          }
                        ]
                      },
                      "id": 3349,
                      "nodeType": "IfStatement",
                      "src": "4153:179:4",
                      "trueBody": {
                        "id": 3333,
                        "nodeType": "Block",
                        "src": "4187:42:4",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 3331,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 3329,
                                "name": "callData",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3321,
                                "src": "4202:8:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 3330,
                                "name": "data",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3260,
                                "src": "4213:4:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "src": "4202:15:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3332,
                            "nodeType": "ExpressionStatement",
                            "src": "4202:15:4"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        3351,
                        3353
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3351,
                          "name": "success",
                          "nodeType": "VariableDeclaration",
                          "scope": 3378,
                          "src": "4405:12:4",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "typeName": {
                            "id": 3350,
                            "name": "bool",
                            "nodeType": "ElementaryTypeName",
                            "src": "4405:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 3353,
                          "name": "returnData",
                          "nodeType": "VariableDeclaration",
                          "scope": 3378,
                          "src": "4419:23:4",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes"
                          },
                          "typeName": {
                            "id": 3352,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "4419:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_storage_ptr",
                              "typeString": "bytes"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3361,
                      "initialValue": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3359,
                            "name": "callData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3321,
                            "src": "4471:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3357,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3256,
                              "src": "4464:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3354,
                                "name": "target",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3254,
                                "src": "4446:6:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 3355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "call",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4446:11:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                              }
                            },
                            "id": 3356,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4446:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$",
                              "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"
                            }
                          },
                          "id": 3358,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4446:24:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
                            "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                          }
                        },
                        "id": 3360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4446:34:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
                          "typeString": "tuple(bool,bytes memory)"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4404:76:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3363,
                            "name": "success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3351,
                            "src": "4499:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b6954696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e",
                            "id": 3364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4508:67:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_4d96f99316cda526f51d0fa053c680b044f5481f0b8c0b2265ed74dd1e63a3dd",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction execution reverted.\""
                            },
                            "value": "NikiTimelock::executeTransaction: Transaction execution reverted."
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_4d96f99316cda526f51d0fa053c680b044f5481f0b8c0b2265ed74dd1e63a3dd",
                              "typeString": "literal_string \"NikiTimelock::executeTransaction: Transaction execution reverted.\""
                            }
                          ],
                          "id": 3362,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "4491:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3365,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4491:85:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3366,
                      "nodeType": "ExpressionStatement",
                      "src": "4491:85:4"
                    },
                    {
                      "eventCall": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3368,
                            "name": "txHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3276,
                            "src": "4613:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3369,
                            "name": "target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3254,
                            "src": "4621:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3370,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3256,
                            "src": "4629:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3371,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3258,
                            "src": "4636:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3372,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3260,
                            "src": "4647:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3373,
                            "name": "eta",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3262,
                            "src": "4653:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 3367,
                          "name": "ExecuteTransaction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2981,
                          "src": "4594:18:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$",
                            "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)"
                          }
                        },
                        "id": 3374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4594:63:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3375,
                      "nodeType": "EmitStatement",
                      "src": "4589:68:4"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3376,
                        "name": "returnData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3353,
                        "src": "4677:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "functionReturnParameters": 3266,
                      "id": 3377,
                      "nodeType": "Return",
                      "src": "4670:17:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3379,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "executeTransaction",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3263,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3254,
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3387:14:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3253,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3387:7:4",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3256,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3403:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3255,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3403:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3258,
                      "name": "signature",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3415:23:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3257,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "3415:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3260,
                      "name": "data",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3440:17:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3259,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "3440:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3262,
                      "name": "eta",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3459:8:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3261,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3459:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3386:82:4"
                },
                "returnParameters": {
                  "id": 3266,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3265,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3379,
                      "src": "3493:12:4",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3264,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "3493:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3492:14:4"
                },
                "scope": 3389,
                "src": "3359:1336:4",
                "stateMutability": "payable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3387,
                  "nodeType": "Block",
                  "src": "4761:104:4",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3384,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3966,
                          "src": "4842:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 3385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4842:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3383,
                      "id": 3386,
                      "nodeType": "Return",
                      "src": "4835:22:4"
                    }
                  ]
                },
                "documentation": null,
                "id": 3388,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "getBlockTimestamp",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3380,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "4729:2:4"
                },
                "returnParameters": {
                  "id": 3383,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3382,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3388,
                      "src": "4755:4:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3381,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4755:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4754:6:4"
                },
                "scope": 3389,
                "src": "4703:162:4",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "internal"
              }
            ],
            "scope": 3390,
            "src": "56:4812:4"
          }
        ],
        "src": "0:4870:4"
      }
    },
    "contracts/NikiToSetter.sol": {
      "id": 5,
      "AST": {
        "absolutePath": "contracts/NikiToSetter.sol",
        "exportedSymbols": {
          "INikiswapV2Factory": [
            3528
          ],
          "NikiFeeToSetter": [
            3517
          ]
        },
        "id": 3529,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 3391,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:5"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 3517,
            "linearizedBaseContracts": [
              3517
            ],
            "name": "NikiFeeToSetter",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "constant": false,
                "id": 3393,
                "name": "factory",
                "nodeType": "VariableDeclaration",
                "scope": 3517,
                "src": "200:22:5",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3392,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "200:7:5",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3395,
                "name": "vestingEnd",
                "nodeType": "VariableDeclaration",
                "scope": 3517,
                "src": "229:22:5",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3394,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "229:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3397,
                "name": "feeTo",
                "nodeType": "VariableDeclaration",
                "scope": 3517,
                "src": "258:20:5",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3396,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "258:7:5",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3399,
                "name": "owner",
                "nodeType": "VariableDeclaration",
                "scope": 3517,
                "src": "287:20:5",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3398,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "287:7:5",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3434,
                  "nodeType": "Block",
                  "src": "403:238:5",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3414,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3411,
                              "name": "vestingEnd_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3403,
                              "src": "422:11:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3412,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "436:5:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 3413,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "436:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "422:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a636f6e7374727563746f723a2076657374696e67206d75737420656e64206166746572206465706c6f796d656e74",
                            "id": 3415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "453:65:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_8972766fffe1272cd0dbb19029a9c3b41920938f1f29491011db5ac9ed46070b",
                              "typeString": "literal_string \"NikiFeeToSetter::constructor: vesting must end after deployment\""
                            },
                            "value": "NikiFeeToSetter::constructor: vesting must end after deployment"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_8972766fffe1272cd0dbb19029a9c3b41920938f1f29491011db5ac9ed46070b",
                              "typeString": "literal_string \"NikiFeeToSetter::constructor: vesting must end after deployment\""
                            }
                          ],
                          "id": 3410,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "414:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "414:105:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3417,
                      "nodeType": "ExpressionStatement",
                      "src": "414:105:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3420,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3418,
                          "name": "factory",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3393,
                          "src": "530:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3419,
                          "name": "factory_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3401,
                          "src": "540:8:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "530:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3421,
                      "nodeType": "ExpressionStatement",
                      "src": "530:18:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3424,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3422,
                          "name": "vestingEnd",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3395,
                          "src": "559:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3423,
                          "name": "vestingEnd_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3403,
                          "src": "572:11:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "559:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3425,
                      "nodeType": "ExpressionStatement",
                      "src": "559:24:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3428,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3426,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3399,
                          "src": "594:5:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3427,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3405,
                          "src": "602:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "594:14:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3429,
                      "nodeType": "ExpressionStatement",
                      "src": "594:14:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3430,
                          "name": "feeTo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3397,
                          "src": "619:5:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3431,
                          "name": "feeTo_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3407,
                          "src": "627:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "619:14:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3433,
                      "nodeType": "ExpressionStatement",
                      "src": "619:14:5"
                    }
                  ]
                },
                "documentation": null,
                "id": 3435,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3408,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3401,
                      "name": "factory_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3435,
                      "src": "328:16:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3400,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "328:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3403,
                      "name": "vestingEnd_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3435,
                      "src": "346:16:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3402,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "346:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3405,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3435,
                      "src": "364:14:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3404,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "364:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3407,
                      "name": "feeTo_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3435,
                      "src": "380:14:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3406,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "380:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "327:68:5"
                },
                "returnParameters": {
                  "id": 3409,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "403:0:5"
                },
                "scope": 3517,
                "src": "316:325:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3452,
                  "nodeType": "Block",
                  "src": "740:114:5",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3444,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3441,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "759:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3442,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "759:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3443,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3399,
                              "src": "773:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "759:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a7365744f776e65723a206e6f7420616c6c6f776564",
                            "id": 3445,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "780:40:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_0fa1618984f9954c1e0f51a597bd7ba5dd1a3d1416502b83e115c1dc6fd9525e",
                              "typeString": "literal_string \"NikiFeeToSetter::setOwner: not allowed\""
                            },
                            "value": "NikiFeeToSetter::setOwner: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_0fa1618984f9954c1e0f51a597bd7ba5dd1a3d1416502b83e115c1dc6fd9525e",
                              "typeString": "literal_string \"NikiFeeToSetter::setOwner: not allowed\""
                            }
                          ],
                          "id": 3440,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "751:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "751:70:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3447,
                      "nodeType": "ExpressionStatement",
                      "src": "751:70:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3450,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3448,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3399,
                          "src": "832:5:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3449,
                          "name": "owner_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3437,
                          "src": "840:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "832:14:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3451,
                      "nodeType": "ExpressionStatement",
                      "src": "832:14:5"
                    }
                  ]
                },
                "documentation": null,
                "id": 3453,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setOwner",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3438,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3437,
                      "name": "owner_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3453,
                      "src": "717:14:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3436,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "717:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "716:16:5"
                },
                "returnParameters": {
                  "id": 3439,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "740:0:5"
                },
                "scope": 3517,
                "src": "699:155:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3481,
                  "nodeType": "Block",
                  "src": "972:260:5",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3462,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3459,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "991:5:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 3460,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "991:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3461,
                              "name": "vestingEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3395,
                              "src": "1010:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "991:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f742074696d6520796574",
                            "id": 3463,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1022:47:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f47925587f43f399f906312179eced196448676b92b13333c51fb45535ebd060",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not time yet\""
                            },
                            "value": "NikiFeeToSetter::setFeeToSetter: not time yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f47925587f43f399f906312179eced196448676b92b13333c51fb45535ebd060",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not time yet\""
                            }
                          ],
                          "id": 3458,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "983:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3464,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "983:87:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3465,
                      "nodeType": "ExpressionStatement",
                      "src": "983:87:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3470,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3467,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1089:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3468,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1089:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3469,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3399,
                              "src": "1103:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1089:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a736574466565546f5365747465723a206e6f7420616c6c6f776564",
                            "id": 3471,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1110:46:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_5d59ac35dec36f8af00f18d72ba51e1ee4a87d002d09ae1dc994f5cf4c9dd141",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not allowed\""
                            },
                            "value": "NikiFeeToSetter::setFeeToSetter: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_5d59ac35dec36f8af00f18d72ba51e1ee4a87d002d09ae1dc994f5cf4c9dd141",
                              "typeString": "literal_string \"NikiFeeToSetter::setFeeToSetter: not allowed\""
                            }
                          ],
                          "id": 3466,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1081:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3472,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1081:76:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3473,
                      "nodeType": "ExpressionStatement",
                      "src": "1081:76:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3478,
                            "name": "feeToSetter_",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3455,
                            "src": "1211:12:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3475,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3393,
                                "src": "1187:7:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 3474,
                              "name": "INikiswapV2Factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3528,
                              "src": "1168:18:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Factory_$3528_$",
                                "typeString": "type(contract INikiswapV2Factory)"
                              }
                            },
                            "id": 3476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1168:27:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_INikiswapV2Factory_$3528",
                              "typeString": "contract INikiswapV2Factory"
                            }
                          },
                          "id": 3477,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "setFeeToSetter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3522,
                          "src": "1168:42:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address) external"
                          }
                        },
                        "id": 3479,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1168:56:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3480,
                      "nodeType": "ExpressionStatement",
                      "src": "1168:56:5"
                    }
                  ]
                },
                "documentation": null,
                "id": 3482,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeToSetter",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3456,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3455,
                      "name": "feeToSetter_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3482,
                      "src": "943:20:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3454,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "943:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "942:22:5"
                },
                "returnParameters": {
                  "id": 3457,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "972:0:5"
                },
                "scope": 3517,
                "src": "919:313:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3515,
                  "nodeType": "Block",
                  "src": "1331:257:5",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3488,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "1350:5:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 3489,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1350:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3490,
                              "name": "vestingEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3395,
                              "src": "1369:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1350:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f742074696d6520796574",
                            "id": 3492,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1381:43:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_4ce4de998eadb2207a81a69d09f131d28d3682177d5da0d7d9cb5543c84efb00",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not time yet\""
                            },
                            "value": "NikiFeeToSetter::toggleFees: not time yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_4ce4de998eadb2207a81a69d09f131d28d3682177d5da0d7d9cb5543c84efb00",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not time yet\""
                            }
                          ],
                          "id": 3487,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1342:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1342:83:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3494,
                      "nodeType": "ExpressionStatement",
                      "src": "1342:83:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3496,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1444:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1444:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3498,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3399,
                              "src": "1458:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1444:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "4e696b69466565546f5365747465723a3a746f67676c65466565733a206e6f7420616c6c6f776564",
                            "id": 3500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1465:42:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c375d436242d1da5d42feef044d760e413176c9cca96f5f2a538c49786d3663a",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not allowed\""
                            },
                            "value": "NikiFeeToSetter::toggleFees: not allowed"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c375d436242d1da5d42feef044d760e413176c9cca96f5f2a538c49786d3663a",
                              "typeString": "literal_string \"NikiFeeToSetter::toggleFees: not allowed\""
                            }
                          ],
                          "id": 3495,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1436:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3501,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1436:72:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3502,
                      "nodeType": "ExpressionStatement",
                      "src": "1436:72:5"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "id": 3507,
                              "name": "on",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3484,
                              "src": "1556:2:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 3510,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1577:1:5",
                                  "subdenomination": null,
                                  "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": 3509,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1569:7:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 3511,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1569:10:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3512,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "1556:23:5",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 3508,
                              "name": "feeTo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3397,
                              "src": "1561:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3504,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3393,
                                "src": "1538:7:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 3503,
                              "name": "INikiswapV2Factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3528,
                              "src": "1519:18:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_INikiswapV2Factory_$3528_$",
                                "typeString": "type(contract INikiswapV2Factory)"
                              }
                            },
                            "id": 3505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1519:27:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_INikiswapV2Factory_$3528",
                              "typeString": "contract INikiswapV2Factory"
                            }
                          },
                          "id": 3506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "setFeeTo",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3527,
                          "src": "1519:36:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                            "typeString": "function (address) external"
                          }
                        },
                        "id": 3513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1519:61:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3514,
                      "nodeType": "ExpressionStatement",
                      "src": "1519:61:5"
                    }
                  ]
                },
                "documentation": null,
                "id": 3516,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "toggleFees",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3485,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3484,
                      "name": "on",
                      "nodeType": "VariableDeclaration",
                      "scope": 3516,
                      "src": "1315:7:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 3483,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1315:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1314:9:5"
                },
                "returnParameters": {
                  "id": 3486,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1331:0:5"
                },
                "scope": 3517,
                "src": "1295:293:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              }
            ],
            "scope": 3529,
            "src": "149:1442:5"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 3528,
            "linearizedBaseContracts": [
              3528
            ],
            "name": "INikiswapV2Factory",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 3522,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeToSetter",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3520,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3519,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3522,
                      "src": "1655:7:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3518,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1655:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1654:9:5"
                },
                "returnParameters": {
                  "id": 3521,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1672:0:5"
                },
                "scope": 3528,
                "src": "1631:42:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 3527,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "setFeeTo",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3525,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3524,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3527,
                      "src": "1697:7:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3523,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1697:7:5",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1696:9:5"
                },
                "returnParameters": {
                  "id": 3526,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1714:0:5"
                },
                "scope": 3528,
                "src": "1679:36:5",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 3529,
            "src": "1595:123:5"
          }
        ],
        "src": "0:1720:5"
      }
    },
    "contracts/NikiTreasuryVester.sol": {
      "id": 6,
      "AST": {
        "absolutePath": "contracts/NikiTreasuryVester.sol",
        "exportedSymbols": {
          "INiki": [
            3711
          ],
          "NikiTreasuryVester": [
            3694
          ]
        },
        "id": 3712,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 3530,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:6"
          },
          {
            "absolutePath": "contracts/SafeMath.sol",
            "file": "./SafeMath.sol",
            "id": 3531,
            "nodeType": "ImportDirective",
            "scope": 3712,
            "sourceUnit": 3962,
            "src": "28:24:6",
            "symbolAliases": [],
            "unitAlias": ""
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "contract",
            "documentation": null,
            "fullyImplemented": true,
            "id": 3694,
            "linearizedBaseContracts": [
              3694
            ],
            "name": "NikiTreasuryVester",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "id": 3534,
                "libraryName": {
                  "contractScope": null,
                  "id": 3532,
                  "name": "SafeMath",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3961,
                  "src": "97:8:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SafeMath_$3961",
                    "typeString": "library SafeMath"
                  }
                },
                "nodeType": "UsingForDirective",
                "src": "91:24:6",
                "typeName": {
                  "id": 3533,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "110:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                }
              },
              {
                "constant": false,
                "id": 3536,
                "name": "niki",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "123:19:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3535,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "123:7:6",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3538,
                "name": "recipient",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "149:24:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3537,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "149:7:6",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3540,
                "name": "vestingAmount",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "182:25:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3539,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "182:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3542,
                "name": "vestingBegin",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "214:24:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3541,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "214:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3544,
                "name": "vestingCliff",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "245:24:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3543,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "245:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3546,
                "name": "vestingEnd",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "276:22:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3545,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "276:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "constant": false,
                "id": 3548,
                "name": "lastUpdate",
                "nodeType": "VariableDeclaration",
                "scope": 3694,
                "src": "307:22:6",
                "stateVariable": true,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3547,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "307:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3613,
                  "nodeType": "Block",
                  "src": "532:580:6",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3564,
                              "name": "vestingBegin_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3556,
                              "src": "551:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3565,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "568:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 3566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "568:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "551:32:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "456c69746554726561737572795665737465723a3a636f6e7374727563746f723a2076657374696e6720626567696e20746f6f206561726c79",
                            "id": 3568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "585:59:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c753d8564eb3d1dd117340ab89ca59c99b5afa86a8e5b9416c9359a410938ad3",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: vesting begin too early\""
                            },
                            "value": "EliteTreasuryVester::constructor: vesting begin too early"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c753d8564eb3d1dd117340ab89ca59c99b5afa86a8e5b9416c9359a410938ad3",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: vesting begin too early\""
                            }
                          ],
                          "id": 3563,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "543:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3569,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "543:102:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3570,
                      "nodeType": "ExpressionStatement",
                      "src": "543:102:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3574,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3572,
                              "name": "vestingCliff_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3558,
                              "src": "664:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3573,
                              "name": "vestingBegin_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3556,
                              "src": "681:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "664:30:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20636c69666620697320746f6f206561726c79",
                            "id": 3575,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "696:54:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_96233aa0825260493e2a2a844d8f9f7f1acdd6716b2b172c61a57cef5d0ddf88",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: cliff is too early\""
                            },
                            "value": "EliteTreasuryVester::constructor: cliff is too early"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_96233aa0825260493e2a2a844d8f9f7f1acdd6716b2b172c61a57cef5d0ddf88",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: cliff is too early\""
                            }
                          ],
                          "id": 3571,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "656:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "656:95:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3577,
                      "nodeType": "ExpressionStatement",
                      "src": "656:95:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3579,
                              "name": "vestingEnd_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3560,
                              "src": "770:11:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3580,
                              "name": "vestingCliff_",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3558,
                              "src": "784:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "770:27:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "456c69746554726561737572795665737465723a3a636f6e7374727563746f723a20656e6420697320746f6f206561726c79",
                            "id": 3582,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "799:52:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_01d89dc34e8b8d50774341fb2b9ba976566e8637e35f8ad6f0f5993513ea235e",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: end is too early\""
                            },
                            "value": "EliteTreasuryVester::constructor: end is too early"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_01d89dc34e8b8d50774341fb2b9ba976566e8637e35f8ad6f0f5993513ea235e",
                              "typeString": "literal_string \"EliteTreasuryVester::constructor: end is too early\""
                            }
                          ],
                          "id": 3578,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "762:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "762:90:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3584,
                      "nodeType": "ExpressionStatement",
                      "src": "762:90:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3587,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3585,
                          "name": "niki",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3536,
                          "src": "865:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3586,
                          "name": "niki_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3550,
                          "src": "872:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "865:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3588,
                      "nodeType": "ExpressionStatement",
                      "src": "865:12:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3589,
                          "name": "recipient",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3538,
                          "src": "888:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3590,
                          "name": "recipient_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3552,
                          "src": "900:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "888:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3592,
                      "nodeType": "ExpressionStatement",
                      "src": "888:22:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3593,
                          "name": "vestingAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3540,
                          "src": "923:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3594,
                          "name": "vestingAmount_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3554,
                          "src": "939:14:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "923:30:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3596,
                      "nodeType": "ExpressionStatement",
                      "src": "923:30:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3597,
                          "name": "vestingBegin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3542,
                          "src": "964:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3598,
                          "name": "vestingBegin_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3556,
                          "src": "979:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "964:28:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3600,
                      "nodeType": "ExpressionStatement",
                      "src": "964:28:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3603,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3601,
                          "name": "vestingCliff",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3544,
                          "src": "1003:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3602,
                          "name": "vestingCliff_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3558,
                          "src": "1018:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1003:28:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3604,
                      "nodeType": "ExpressionStatement",
                      "src": "1003:28:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3607,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3605,
                          "name": "vestingEnd",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3546,
                          "src": "1042:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3606,
                          "name": "vestingEnd_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3560,
                          "src": "1055:11:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1042:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3608,
                      "nodeType": "ExpressionStatement",
                      "src": "1042:24:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3611,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3609,
                          "name": "lastUpdate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3548,
                          "src": "1079:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3610,
                          "name": "vestingBegin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3542,
                          "src": "1092:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1079:25:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3612,
                      "nodeType": "ExpressionStatement",
                      "src": "1079:25:6"
                    }
                  ]
                },
                "documentation": null,
                "id": 3614,
                "implemented": true,
                "kind": "constructor",
                "modifiers": [],
                "name": "",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3561,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3550,
                      "name": "niki_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "360:13:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3549,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "360:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3552,
                      "name": "recipient_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "384:18:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3551,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "384:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3554,
                      "name": "vestingAmount_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "413:19:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3553,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "413:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3556,
                      "name": "vestingBegin_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "443:18:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3555,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "443:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3558,
                      "name": "vestingCliff_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "472:18:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3557,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "472:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3560,
                      "name": "vestingEnd_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3614,
                      "src": "501:16:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3559,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "501:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "349:175:6"
                },
                "returnParameters": {
                  "id": 3562,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "532:0:6"
                },
                "scope": 3694,
                "src": "338:774:6",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3631,
                  "nodeType": "Block",
                  "src": "1169:135:6",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 3623,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3620,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3976,
                                "src": "1188:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3621,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1188:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3622,
                              "name": "recipient",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3538,
                              "src": "1202:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "1188:23:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "456c69746554726561737572795665737465723a3a736574526563697069656e743a20756e617574686f72697a6564",
                            "id": 3624,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1213:49:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f2fae8a74e7003b0cedb8d9ada89a2c4e41ddd7a3d080284e85ea829a3c31d5f",
                              "typeString": "literal_string \"EliteTreasuryVester::setRecipient: unauthorized\""
                            },
                            "value": "EliteTreasuryVester::setRecipient: unauthorized"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f2fae8a74e7003b0cedb8d9ada89a2c4e41ddd7a3d080284e85ea829a3c31d5f",
                              "typeString": "literal_string \"EliteTreasuryVester::setRecipient: unauthorized\""
                            }
                          ],
                          "id": 3619,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1180:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1180:83:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3626,
                      "nodeType": "ExpressionStatement",
                      "src": "1180:83:6"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "argumentTypes": null,
                          "id": 3627,
                          "name": "recipient",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3538,
                          "src": "1274:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "argumentTypes": null,
                          "id": 3628,
                          "name": "recipient_",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3616,
                          "src": "1286:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1274:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3630,
                      "nodeType": "ExpressionStatement",
                      "src": "1274:22:6"
                    }
                  ]
                },
                "documentation": null,
                "id": 3632,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "setRecipient",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3617,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3616,
                      "name": "recipient_",
                      "nodeType": "VariableDeclaration",
                      "scope": 3632,
                      "src": "1142:18:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3615,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1142:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1141:20:6"
                },
                "returnParameters": {
                  "id": 3618,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1169:0:6"
                },
                "scope": 3694,
                "src": "1120:184:6",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              },
              {
                "body": {
                  "id": 3692,
                  "nodeType": "Block",
                  "src": "1336:455:6",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3639,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3636,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3966,
                                "src": "1355:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 3637,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1355:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3638,
                              "name": "vestingCliff",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3544,
                              "src": "1374:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1355:31:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "456c69746554726561737572795665737465723a3a636c61696d3a206e6f742074696d6520796574",
                            "id": 3640,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1388:42:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_6f6469ddc3b422b35b52c55b31ac3bf6d1e89af392f5bc43f2dfea6b6a1734cf",
                              "typeString": "literal_string \"EliteTreasuryVester::claim: not time yet\""
                            },
                            "value": "EliteTreasuryVester::claim: not time yet"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_6f6469ddc3b422b35b52c55b31ac3bf6d1e89af392f5bc43f2dfea6b6a1734cf",
                              "typeString": "literal_string \"EliteTreasuryVester::claim: not time yet\""
                            }
                          ],
                          "id": 3635,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1347:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3641,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1347:84:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3642,
                      "nodeType": "ExpressionStatement",
                      "src": "1347:84:6"
                    },
                    {
                      "assignments": [
                        3644
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3644,
                          "name": "amount",
                          "nodeType": "VariableDeclaration",
                          "scope": 3692,
                          "src": "1442:11:6",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3643,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "1442:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3645,
                      "initialValue": null,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1442:11:6"
                    },
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3649,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3646,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3966,
                            "src": "1468:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 3647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1468:15:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3648,
                          "name": "vestingEnd",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3546,
                          "src": "1487:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1468:29:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 3682,
                        "nodeType": "Block",
                        "src": "1577:157:6",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 3675,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 3662,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3644,
                                "src": "1592:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 3673,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 3671,
                                      "name": "vestingEnd",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3546,
                                      "src": "1653:10:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "id": 3672,
                                      "name": "vestingBegin",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3542,
                                      "src": "1666:12:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "1653:25:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 3668,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 3665,
                                            "name": "block",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3966,
                                            "src": "1619:5:6",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_block",
                                              "typeString": "block"
                                            }
                                          },
                                          "id": 3666,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "timestamp",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": null,
                                          "src": "1619:15:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 3667,
                                          "name": "lastUpdate",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 3548,
                                          "src": "1637:10:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "1619:28:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 3663,
                                        "name": "vestingAmount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3540,
                                        "src": "1601:13:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 3664,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "mul",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 3842,
                                      "src": "1601:17:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 3669,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1601:47:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 3670,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "div",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3894,
                                  "src": "1601:51:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 3674,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1601:78:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1592:87:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 3676,
                            "nodeType": "ExpressionStatement",
                            "src": "1592:87:6"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 3680,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 3677,
                                "name": "lastUpdate",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3548,
                                "src": "1694:10:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3678,
                                  "name": "block",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3966,
                                  "src": "1707:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_block",
                                    "typeString": "block"
                                  }
                                },
                                "id": 3679,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "timestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1707:15:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1694:28:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 3681,
                            "nodeType": "ExpressionStatement",
                            "src": "1694:28:6"
                          }
                        ]
                      },
                      "id": 3683,
                      "nodeType": "IfStatement",
                      "src": "1464:270:6",
                      "trueBody": {
                        "id": 3661,
                        "nodeType": "Block",
                        "src": "1499:72:6",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 3659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "id": 3650,
                                "name": "amount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3644,
                                "src": "1514:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 3656,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4014,
                                        "src": "1553:4:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_NikiTreasuryVester_$3694",
                                          "typeString": "contract NikiTreasuryVester"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_NikiTreasuryVester_$3694",
                                          "typeString": "contract NikiTreasuryVester"
                                        }
                                      ],
                                      "id": 3655,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1545:7:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": "address"
                                    },
                                    "id": 3657,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1545:13:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 3652,
                                        "name": "niki",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3536,
                                        "src": "1529:4:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 3651,
                                      "name": "INiki",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3711,
                                      "src": "1523:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_INiki_$3711_$",
                                        "typeString": "type(contract INiki)"
                                      }
                                    },
                                    "id": 3653,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1523:11:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_INiki_$3711",
                                      "typeString": "contract INiki"
                                    }
                                  },
                                  "id": 3654,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balanceOf",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3701,
                                  "src": "1523:21:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                    "typeString": "function (address) view external returns (uint256)"
                                  }
                                },
                                "id": 3658,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1523:36:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1514:45:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 3660,
                            "nodeType": "ExpressionStatement",
                            "src": "1514:45:6"
                          }
                        ]
                      }
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3688,
                            "name": "recipient",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3538,
                            "src": "1765:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3689,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3644,
                            "src": "1776:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3685,
                                "name": "niki",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3536,
                                "src": "1750:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 3684,
                              "name": "INiki",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3711,
                              "src": "1744:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_INiki_$3711_$",
                                "typeString": "type(contract INiki)"
                              }
                            },
                            "id": 3686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1744:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_INiki_$3711",
                              "typeString": "contract INiki"
                            }
                          },
                          "id": 3687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3710,
                          "src": "1744:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) external returns (bool)"
                          }
                        },
                        "id": 3690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1744:39:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 3691,
                      "nodeType": "ExpressionStatement",
                      "src": "1744:39:6"
                    }
                  ]
                },
                "documentation": null,
                "id": 3693,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "claim",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3633,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1326:2:6"
                },
                "returnParameters": {
                  "id": 3634,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1336:0:6"
                },
                "scope": 3694,
                "src": "1312:479:6",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "public"
              }
            ],
            "scope": 3712,
            "src": "56:1738:6"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "interface",
            "documentation": null,
            "fullyImplemented": false,
            "id": 3711,
            "linearizedBaseContracts": [
              3711
            ],
            "name": "INiki",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": null,
                "documentation": null,
                "id": 3701,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "balanceOf",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3697,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3696,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 3701,
                      "src": "1840:15:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3695,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1840:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1839:17:6"
                },
                "returnParameters": {
                  "id": 3700,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3699,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3701,
                      "src": "1880:4:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3698,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1880:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1879:6:6"
                },
                "scope": 3711,
                "src": "1821:65:6",
                "stateMutability": "view",
                "superFunction": null,
                "visibility": "external"
              },
              {
                "body": null,
                "documentation": null,
                "id": 3710,
                "implemented": false,
                "kind": "function",
                "modifiers": [],
                "name": "transfer",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3706,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3703,
                      "name": "dst",
                      "nodeType": "VariableDeclaration",
                      "scope": 3710,
                      "src": "1910:11:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3702,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1910:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3705,
                      "name": "rawAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 3710,
                      "src": "1923:14:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3704,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1923:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1909:29:6"
                },
                "returnParameters": {
                  "id": 3709,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3708,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3710,
                      "src": "1957:4:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 3707,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1957:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1956:6:6"
                },
                "scope": 3711,
                "src": "1892:71:6",
                "stateMutability": "nonpayable",
                "superFunction": null,
                "visibility": "external"
              }
            ],
            "scope": 3712,
            "src": "1798:168:6"
          }
        ],
        "src": "0:1968:6"
      }
    },
    "contracts/SafeMath.sol": {
      "id": 7,
      "AST": {
        "absolutePath": "contracts/SafeMath.sol",
        "exportedSymbols": {
          "SafeMath": [
            3961
          ]
        },
        "id": 3962,
        "nodeType": "SourceUnit",
        "nodes": [
          {
            "id": 3713,
            "literals": [
              "solidity",
              "^",
              "0.5",
              ".16"
            ],
            "nodeType": "PragmaDirective",
            "src": "0:24:7"
          },
          {
            "baseContracts": [],
            "contractDependencies": [],
            "contractKind": "library",
            "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.",
            "fullyImplemented": true,
            "id": 3961,
            "linearizedBaseContracts": [
              3961
            ],
            "name": "SafeMath",
            "nodeType": "ContractDefinition",
            "nodes": [
              {
                "body": {
                  "id": 3737,
                  "nodeType": "Block",
                  "src": "1053:114:7",
                  "statements": [
                    {
                      "assignments": [
                        3723
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3723,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3737,
                          "src": "1064:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3722,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1064:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3727,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3726,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3724,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3715,
                          "src": "1076:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3725,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3717,
                          "src": "1080:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1076:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1064:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3731,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3729,
                              "name": "c",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3723,
                              "src": "1100:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3730,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3715,
                              "src": "1105:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1100:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
                            "id": 3732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1108:29:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
                              "typeString": "literal_string \"SafeMath: addition overflow\""
                            },
                            "value": "SafeMath: addition overflow"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
                              "typeString": "literal_string \"SafeMath: addition overflow\""
                            }
                          ],
                          "id": 3728,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1092:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1092:46:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3734,
                      "nodeType": "ExpressionStatement",
                      "src": "1092:46:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3735,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3723,
                        "src": "1158:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3721,
                      "id": 3736,
                      "nodeType": "Return",
                      "src": "1151:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the addition of two unsigned integers, reverting on overflow.\n\n     * Counterpart to Solidity's `+` operator.\n\n     * Requirements:\n- Addition cannot overflow.",
                "id": 3738,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "add",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3718,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3715,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3738,
                      "src": "999:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3714,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "999:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3717,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3738,
                      "src": "1010:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3716,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1010:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "998:22:7"
                },
                "returnParameters": {
                  "id": 3721,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3720,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3738,
                      "src": "1044:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3719,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1044:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1043:9:7"
                },
                "scope": 3961,
                "src": "986:181:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3764,
                  "nodeType": "Block",
                  "src": "1513:97:7",
                  "statements": [
                    {
                      "assignments": [
                        3750
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3750,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3764,
                          "src": "1524:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3749,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1524:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3754,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3751,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3740,
                          "src": "1536:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3752,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3742,
                          "src": "1540:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1536:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1524:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3758,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3756,
                              "name": "c",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3750,
                              "src": "1560:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3757,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3740,
                              "src": "1565:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1560:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3759,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3744,
                            "src": "1568:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 3755,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "1552:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3760,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1552:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3761,
                      "nodeType": "ExpressionStatement",
                      "src": "1552:29:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3762,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3750,
                        "src": "1601:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3748,
                      "id": 3763,
                      "nodeType": "Return",
                      "src": "1594:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the addition of two unsigned integers, reverting with custom message on overflow.\n\n     * Counterpart to Solidity's `+` operator.\n\n     * Requirements:\n- Addition cannot overflow.",
                "id": 3765,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "add",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3745,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3740,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3765,
                      "src": "1431:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3739,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1431:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3742,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3765,
                      "src": "1442:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3741,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1442:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3744,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 3765,
                      "src": "1453:26:7",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3743,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1453:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1430:50:7"
                },
                "returnParameters": {
                  "id": 3748,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3747,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3765,
                      "src": "1504:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3746,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1504:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1503:9:7"
                },
                "scope": 3961,
                "src": "1418:192:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3780,
                  "nodeType": "Block",
                  "src": "1946:70:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3775,
                            "name": "a",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3767,
                            "src": "1968:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3776,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3769,
                            "src": "1971:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "536166654d6174683a207375627472616374696f6e20756e646572666c6f77",
                            "id": 3777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1974:33:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_1caebeb8fec78d96e2107fd22e0abe38fcab72034848d9a80a8de2a86ac41d40",
                              "typeString": "literal_string \"SafeMath: subtraction underflow\""
                            },
                            "value": "SafeMath: subtraction underflow"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_1caebeb8fec78d96e2107fd22e0abe38fcab72034848d9a80a8de2a86ac41d40",
                              "typeString": "literal_string \"SafeMath: subtraction underflow\""
                            }
                          ],
                          "id": 3774,
                          "name": "sub",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3781,
                            3808
                          ],
                          "referencedDeclaration": 3808,
                          "src": "1964:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
                          }
                        },
                        "id": 3778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1964:44:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3773,
                      "id": 3779,
                      "nodeType": "Return",
                      "src": "1957:51:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).\n\n     * Counterpart to Solidity's `-` operator.\n\n     * Requirements:\n- Subtraction cannot underflow.",
                "id": 3781,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "sub",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3770,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3767,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3781,
                      "src": "1892:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3766,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1892:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3769,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3781,
                      "src": "1903:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3768,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1903:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1891:22:7"
                },
                "returnParameters": {
                  "id": 3773,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3772,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3781,
                      "src": "1937:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3771,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1937:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1936:9:7"
                },
                "scope": 3961,
                "src": "1879:137:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3807,
                  "nodeType": "Block",
                  "src": "2400:97:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3795,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3793,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3785,
                              "src": "2419:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3794,
                              "name": "a",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3783,
                              "src": "2424:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2419:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3796,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3787,
                            "src": "2427:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 3792,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "2411:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3797,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2411:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3798,
                      "nodeType": "ExpressionStatement",
                      "src": "2411:29:7"
                    },
                    {
                      "assignments": [
                        3800
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3800,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3807,
                          "src": "2451:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3799,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2451:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3804,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3801,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3783,
                          "src": "2463:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3802,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3785,
                          "src": "2467:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2463:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2451:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3805,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3800,
                        "src": "2488:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3791,
                      "id": 3806,
                      "nodeType": "Return",
                      "src": "2481:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).\n\n     * Counterpart to Solidity's `-` operator.\n\n     * Requirements:\n- Subtraction cannot underflow.",
                "id": 3808,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "sub",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3788,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3783,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3808,
                      "src": "2318:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3782,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2318:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3785,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3808,
                      "src": "2329:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3784,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2329:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3787,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 3808,
                      "src": "2340:26:7",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3786,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "2340:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2317:50:7"
                },
                "returnParameters": {
                  "id": 3791,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3790,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3808,
                      "src": "2391:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3789,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2391:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2390:9:7"
                },
                "scope": 3961,
                "src": "2305:192:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3841,
                  "nodeType": "Block",
                  "src": "2807:404:7",
                  "statements": [
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3819,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3817,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3810,
                          "src": "3043:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3818,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3048:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3043:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 3823,
                      "nodeType": "IfStatement",
                      "src": "3039:47:7",
                      "trueBody": {
                        "id": 3822,
                        "nodeType": "Block",
                        "src": "3051:35:7",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3820,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3073:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "functionReturnParameters": 3816,
                            "id": 3821,
                            "nodeType": "Return",
                            "src": "3066:8:7"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        3825
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3825,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3841,
                          "src": "3098:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3824,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3098:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3829,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3826,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3810,
                          "src": "3110:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3827,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3812,
                          "src": "3114:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3110:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "3098:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3833,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3831,
                                "name": "c",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3825,
                                "src": "3134:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3832,
                                "name": "a",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3810,
                                "src": "3138:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3134:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3834,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3812,
                              "src": "3143:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3134:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
                            "id": 3836,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3146:35:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
                              "typeString": "literal_string \"SafeMath: multiplication overflow\""
                            },
                            "value": "SafeMath: multiplication overflow"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
                              "typeString": "literal_string \"SafeMath: multiplication overflow\""
                            }
                          ],
                          "id": 3830,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3126:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3126:56:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3838,
                      "nodeType": "ExpressionStatement",
                      "src": "3126:56:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3839,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3825,
                        "src": "3202:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3816,
                      "id": 3840,
                      "nodeType": "Return",
                      "src": "3195:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n\n     * Counterpart to Solidity's `*` operator.\n\n     * Requirements:\n- Multiplication cannot overflow.",
                "id": 3842,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "mul",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3813,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3810,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3842,
                      "src": "2753:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3809,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2753:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3812,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3842,
                      "src": "2764:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3811,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2764:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2752:22:7"
                },
                "returnParameters": {
                  "id": 3816,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3815,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3842,
                      "src": "2798:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3814,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2798:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "2797:9:7"
                },
                "scope": 3961,
                "src": "2740:471:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3877,
                  "nodeType": "Block",
                  "src": "3549:381:7",
                  "statements": [
                    {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3855,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3853,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3844,
                          "src": "3785:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3854,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3790:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3785:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 3859,
                      "nodeType": "IfStatement",
                      "src": "3781:47:7",
                      "trueBody": {
                        "id": 3858,
                        "nodeType": "Block",
                        "src": "3793:35:7",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3856,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3815:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "functionReturnParameters": 3852,
                            "id": 3857,
                            "nodeType": "Return",
                            "src": "3808:8:7"
                          }
                        ]
                      }
                    },
                    {
                      "assignments": [
                        3861
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3861,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3877,
                          "src": "3840:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3860,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3840:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3865,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3864,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3862,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3844,
                          "src": "3852:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3863,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3846,
                          "src": "3856:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3852:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "3840:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3871,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3869,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3867,
                                "name": "c",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3861,
                                "src": "3876:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3868,
                                "name": "a",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3844,
                                "src": "3880:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3876:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3870,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3846,
                              "src": "3885:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3876:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3872,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3848,
                            "src": "3888:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 3866,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "3868:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3873,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3868:33:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3874,
                      "nodeType": "ExpressionStatement",
                      "src": "3868:33:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3875,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3861,
                        "src": "3921:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3852,
                      "id": 3876,
                      "nodeType": "Return",
                      "src": "3914:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on overflow.\n\n     * Counterpart to Solidity's `*` operator.\n\n     * Requirements:\n- Multiplication cannot overflow.",
                "id": 3878,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "mul",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3849,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3844,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3878,
                      "src": "3467:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3843,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3467:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3846,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3878,
                      "src": "3478:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3845,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3478:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3848,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 3878,
                      "src": "3489:26:7",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3847,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "3489:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3466:50:7"
                },
                "returnParameters": {
                  "id": 3852,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3851,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3878,
                      "src": "3540:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3850,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3540:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "3539:9:7"
                },
                "scope": 3961,
                "src": "3454:476:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3893,
                  "nodeType": "Block",
                  "src": "4465:65:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3888,
                            "name": "a",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3880,
                            "src": "4487:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3889,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3882,
                            "src": "4490:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f",
                            "id": 3890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4493:28:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
                              "typeString": "literal_string \"SafeMath: division by zero\""
                            },
                            "value": "SafeMath: division by zero"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
                              "typeString": "literal_string \"SafeMath: division by zero\""
                            }
                          ],
                          "id": 3887,
                          "name": "div",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3894,
                            3921
                          ],
                          "referencedDeclaration": 3921,
                          "src": "4483:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
                          }
                        },
                        "id": 3891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4483:39:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3886,
                      "id": 3892,
                      "nodeType": "Return",
                      "src": "4476:46:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts on division by zero. The result is rounded towards zero.\n\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n\n     * Requirements:\n- The divisor cannot be zero.",
                "id": 3894,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "div",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3883,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3880,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3894,
                      "src": "4411:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3879,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4411:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3882,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3894,
                      "src": "4422:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3881,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4422:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4410:22:7"
                },
                "returnParameters": {
                  "id": 3886,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3885,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3894,
                      "src": "4456:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3884,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4456:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "4455:9:7"
                },
                "scope": 3961,
                "src": "4398:132:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3920,
                  "nodeType": "Block",
                  "src": "5113:250:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3906,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3898,
                              "src": "5199:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3907,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5203:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5199:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3909,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3900,
                            "src": "5206:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 3905,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "5191:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5191:28:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3911,
                      "nodeType": "ExpressionStatement",
                      "src": "5191:28:7"
                    },
                    {
                      "assignments": [
                        3913
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 3913,
                          "name": "c",
                          "nodeType": "VariableDeclaration",
                          "scope": 3920,
                          "src": "5230:9:7",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 3912,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5230:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "id": 3917,
                      "initialValue": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3914,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3896,
                          "src": "5242:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3915,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3898,
                          "src": "5246:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5242:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "5230:17:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "id": 3918,
                        "name": "c",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3913,
                        "src": "5354:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3904,
                      "id": 3919,
                      "nodeType": "Return",
                      "src": "5347:8:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the integer division of two unsigned integers.\nReverts with custom message on division by zero. The result is rounded towards zero.\n\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n\n     * Requirements:\n- The divisor cannot be zero.",
                "id": 3921,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "div",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3901,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3896,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3921,
                      "src": "5031:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3895,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5031:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3898,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3921,
                      "src": "5042:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3897,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5042:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3900,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 3921,
                      "src": "5053:26:7",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3899,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "5053:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5030:50:7"
                },
                "returnParameters": {
                  "id": 3904,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3903,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3921,
                      "src": "5104:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3902,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5104:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5103:9:7"
                },
                "scope": 3961,
                "src": "5018:345:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3936,
                  "nodeType": "Block",
                  "src": "5887:63:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3931,
                            "name": "a",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3923,
                            "src": "5909:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3932,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3925,
                            "src": "5912:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f",
                            "id": 3933,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5915:26:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
                              "typeString": "literal_string \"SafeMath: modulo by zero\""
                            },
                            "value": "SafeMath: modulo by zero"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
                              "typeString": "literal_string \"SafeMath: modulo by zero\""
                            }
                          ],
                          "id": 3930,
                          "name": "mod",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3937,
                            3960
                          ],
                          "referencedDeclaration": 3960,
                          "src": "5905:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$",
                            "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
                          }
                        },
                        "id": 3934,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5905:37:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3929,
                      "id": 3935,
                      "nodeType": "Return",
                      "src": "5898:44:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n\n     * Requirements:\n- The divisor cannot be zero.",
                "id": 3937,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "mod",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3926,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3923,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3937,
                      "src": "5833:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3922,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5833:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3925,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3937,
                      "src": "5844:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3924,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5844:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5832:22:7"
                },
                "returnParameters": {
                  "id": 3929,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3928,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3937,
                      "src": "5878:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3927,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5878:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "5877:9:7"
                },
                "scope": 3961,
                "src": "5820:130:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              },
              {
                "body": {
                  "id": 3959,
                  "nodeType": "Block",
                  "src": "6522:71:7",
                  "statements": [
                    {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3951,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3949,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3941,
                              "src": "6541:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3950,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6546:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "6541:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3952,
                            "name": "errorMessage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3943,
                            "src": "6549:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 3948,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3979,
                            3980
                          ],
                          "referencedDeclaration": 3980,
                          "src": "6533:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 3953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6533:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 3954,
                      "nodeType": "ExpressionStatement",
                      "src": "6533:29:7"
                    },
                    {
                      "expression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3955,
                          "name": "a",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3939,
                          "src": "6580:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "%",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3956,
                          "name": "b",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3941,
                          "src": "6584:1:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6580:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "functionReturnParameters": 3947,
                      "id": 3958,
                      "nodeType": "Return",
                      "src": "6573:12:7"
                    }
                  ]
                },
                "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n\n     * Requirements:\n- The divisor cannot be zero.",
                "id": 3960,
                "implemented": true,
                "kind": "function",
                "modifiers": [],
                "name": "mod",
                "nodeType": "FunctionDefinition",
                "parameters": {
                  "id": 3944,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3939,
                      "name": "a",
                      "nodeType": "VariableDeclaration",
                      "scope": 3960,
                      "src": "6440:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3938,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6440:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3941,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 3960,
                      "src": "6451:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3940,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6451:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 3943,
                      "name": "errorMessage",
                      "nodeType": "VariableDeclaration",
                      "scope": 3960,
                      "src": "6462:26:7",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3942,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "6462:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "6439:50:7"
                },
                "returnParameters": {
                  "id": 3947,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 3946,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 3960,
                      "src": "6513:7:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3945,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6513:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "6512:9:7"
                },
                "scope": 3961,
                "src": "6427:166:7",
                "stateMutability": "pure",
                "superFunction": null,
                "visibility": "internal"
              }
            ],
            "scope": 3962,
            "src": "739:5857:7"
          }
        ],
        "src": "0:6596:7"
      }
    }
  },
  "sourceList": [
    "contracts/Niki.sol",
    "contracts/NikiFeeTo.sol",
    "contracts/NikiFeeToSetter.sol",
    "contracts/NikiGovernorAlpha.sol",
    "contracts/NikiTimelock.sol",
    "contracts/NikiToSetter.sol",
    "contracts/NikiTreasuryVester.sol",
    "contracts/SafeMath.sol"
  ]
}