{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "factory_",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "windowSize_",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "granularity_",
          "type": "uint8"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenOut",
          "type": "address"
        }
      ],
      "name": "consult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "granularity",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "observationIndexOf",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "index",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "pairObservations",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price0Cumulative",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price1Cumulative",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "periodSize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        }
      ],
      "name": "update",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "windowSize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "evm": {
    "bytecode": {
      "linkReferences": {},
      "object": "[encoded data, 8502 characters]",
      "opcodes": "PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x109B CODESIZE SUB DUP1 PUSH2 0x109B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xFF DUP3 AND GT PUSH2 0x9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536C6964696E6757696E646F774F7261636C653A204752414E554C4152495459 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xFF DUP3 AND DUP1 DUP3 DUP2 PUSH2 0xAB JUMPI INVALID JUMPDEST DIV PUSH1 0xE0 DUP2 SWAP1 MSTORE MUL EQ PUSH2 0xEE 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 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x106B PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP3 SWAP1 MSTORE PUSH1 0xF8 DUP2 SWAP1 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0xC0 MSTORE PUSH1 0xE0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 PUSH2 0xECC PUSH2 0x19F PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2F7 MSTORE DUP1 PUSH2 0x594 MSTORE DUP1 PUSH2 0x5E7 MSTORE DUP1 PUSH2 0x647 MSTORE POP DUP1 PUSH2 0x1F4 MSTORE DUP1 PUSH2 0x4D7 MSTORE DUP1 PUSH2 0x613 MSTORE DUP1 PUSH2 0x766 MSTORE POP DUP1 PUSH2 0x218 MSTORE DUP1 PUSH2 0x27E MSTORE DUP1 PUSH2 0x31B MSTORE POP DUP1 PUSH2 0x242 MSTORE DUP1 PUSH2 0x45C MSTORE DUP1 PUSH2 0x485 MSTORE POP PUSH2 0xECC PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1EA JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0x108 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x216 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x141 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x45A 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 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x47E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x645 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x268 PUSH32 0x0 DUP7 DUP6 PUSH2 0x669 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x275 DUP3 PUSH2 0x754 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xDF0 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x393 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 0xE23 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39F DUP6 PUSH2 0x7FC JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B0 DUP11 DUP10 PUSH2 0xA4E JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x404 JUMPI PUSH2 0x3F7 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0xBA1 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH2 0x3F7 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0xBA1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x434 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AB PUSH32 0x0 DUP5 DUP5 PUSH2 0x669 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x536 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x542 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x57B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 PUSH2 0x5C6 DUP7 PUSH2 0x7FC JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x60E JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x63D JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x678 DUP6 DUP6 PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x96E8AC4277198FF8B6F785478AA9A39F403CB768DD02CBEE326C3E7DA348845F PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x760 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x796 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x7E5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x809 PUSH2 0xC14 JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5909C0D5 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 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x865 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 0x87B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A3D549300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8FB 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 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x902F1AC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x997 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0xA44 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x9E7 DUP5 DUP7 PUSH2 0xC1E JUMP JUMPDEST MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xA1D DUP6 DUP6 PUSH2 0xC1E JUMP JUMPDEST MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE4F PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xB10 JUMPI DUP3 DUP5 PUSH2 0xB13 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB9A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056324C6962726172793A205A45524F5F414444524553530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBAB PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0xBC1 JUMPI INVALID JUMPDEST DIV PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE SWAP1 POP PUSH2 0xBF6 PUSH2 0xBF1 DUP3 DUP6 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0xDC3 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xC26 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xCA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xCEC JUMPI INVALID JUMPDEST DIV PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD1E PUSH2 0xDDC JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xD59 JUMPI POP POP DUP3 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xD56 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDAE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE74 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056324C6962726172793A KECCAK256 0x49 DIFFICULTY GASLIMIT 0x4E SLOAD 0x49 NUMBER COINBASE 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 POP SIGNEXTEND 0xBE 0xE6 DUP2 0xB6 PUSH23 0xD4370E767123F9D73A40D24AEE67F7F7FAB012480256AE 0x4E PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A2057494E44 0x4F JUMPI 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT JUMP GASLIMIT 0x4E 0x4C MSIZE 0x5F DIFFICULTY 0x49 JUMP 0x49 MSTORE8 0x49 TIMESTAMP 0x4C GASLIMIT ",
      "sourceMap": "704:5705:11:-:0;;;1975:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;1975:427:11;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1975:427:11;;;;;;;;;;;;;;2083:1;2068:16;;;;2060:61;;;;;-1:-1:-1;;;2060:61:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:11;2152:56;;;;2212:11;2152:56;2166:26;;;;;2153:39;;;;2152:56;:71;2131:166;;;;-1:-1:-1;;;2131:166:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2307:18;;;;-1:-1:-1;;;;;;2307:18:11;;;2335:24;;;;2369:26;;;;;;;;704:5705;;-1:-1:-1;;;;;704:5705:11;;;;;;;;;;;;;;;;;;;"
    },
    "deployedBytecode": {
      "immutableReferences": {
        "4995": [
          {
            "length": 32,
            "start": 578
          },
          {
            "length": 32,
            "start": 1116
          },
          {
            "length": 32,
            "start": 1157
          }
        ],
        "4997": [
          {
            "length": 32,
            "start": 536
          },
          {
            "length": 32,
            "start": 638
          },
          {
            "length": 32,
            "start": 795
          }
        ],
        "4999": [
          {
            "length": 32,
            "start": 500
          },
          {
            "length": 32,
            "start": 1239
          },
          {
            "length": 32,
            "start": 1555
          },
          {
            "length": 32,
            "start": 1894
          }
        ],
        "5001": [
          {
            "length": 32,
            "start": 759
          },
          {
            "length": 32,
            "start": 1428
          },
          {
            "length": 32,
            "start": 1511
          },
          {
            "length": 32,
            "start": 1607
          }
        ]
      },
      "linkReferences": {},
      "object": "[encoded data, 7576 characters]",
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1EA JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0x108 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x216 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x141 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x45A 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 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x47E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x645 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x268 PUSH32 0x0 DUP7 DUP6 PUSH2 0x669 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x275 DUP3 PUSH2 0x754 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xDF0 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x393 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 0xE23 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39F DUP6 PUSH2 0x7FC JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B0 DUP11 DUP10 PUSH2 0xA4E JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x404 JUMPI PUSH2 0x3F7 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0xBA1 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH2 0x3F7 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0xBA1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x434 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AB PUSH32 0x0 DUP5 DUP5 PUSH2 0x669 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x536 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x542 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x57B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 PUSH2 0x5C6 DUP7 PUSH2 0x7FC JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x60E JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x63D JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x678 DUP6 DUP6 PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x96E8AC4277198FF8B6F785478AA9A39F403CB768DD02CBEE326C3E7DA348845F PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x760 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x796 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x7E5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x809 PUSH2 0xC14 JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5909C0D5 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 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x865 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 0x87B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A3D549300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8FB 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 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x902F1AC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x997 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0xA44 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x9E7 DUP5 DUP7 PUSH2 0xC1E JUMP JUMPDEST MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL SWAP7 SWAP1 SWAP7 ADD SWAP6 PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xA1D DUP6 DUP6 PUSH2 0xC1E JUMP JUMPDEST MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE4F PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xB10 JUMPI DUP3 DUP5 PUSH2 0xB13 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB9A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056324C6962726172793A205A45524F5F414444524553530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBAB PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0xBC1 JUMPI INVALID JUMPDEST DIV PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE SWAP1 POP PUSH2 0xBF6 PUSH2 0xBF1 DUP3 DUP6 PUSH2 0xD16 JUMP JUMPDEST PUSH2 0xDC3 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xC26 PUSH2 0xDCA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0xCA5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A204449565F42595F5A45524F000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 PUSH1 0x70 DUP8 SWAP1 SHL AND DUP2 PUSH2 0xCEC JUMPI INVALID JUMPDEST DIV PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD1E PUSH2 0xDDC JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xD59 JUMPI POP POP DUP3 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xD56 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xDAE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE74 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056324C6962726172793A KECCAK256 0x49 DIFFICULTY GASLIMIT 0x4E SLOAD 0x49 NUMBER COINBASE 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 CHAINID PUSH10 0x786564506F696E743A20 0x4D SSTORE 0x4C SLOAD 0x49 POP 0x4C 0x49 NUMBER COINBASE SLOAD 0x49 0x4F 0x4E 0x5F 0x4F JUMP GASLIMIT MSTORE CHAINID 0x4C 0x4F JUMPI LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 POP SIGNEXTEND 0xBE 0xE6 DUP2 0xB6 PUSH23 0xD4370E767123F9D73A40D24AEE67F7F7FAB012480256AE 0x4E PUSH5 0x736F6C6343 STOP MOD MOD STOP CALLER ",
      "sourceMap": "704:5705:11:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;704:5705:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1643:34:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1058:32;;;:::i;:::-;;;;;;;;;;;;;;;;5345:1062;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5345:1062:11;;;;;;;;;;;;;;;;;;:::i;1911:57::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1911:57:11;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;922:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3373:1050;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3373:1050:11;;;;;;;;;;;:::i;:::-;;2489:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2489:185:11;;:::i;1794:32::-;;;:::i;1643:34::-;;;:::o;1058:32::-;;;:::o;5345:1062::-;5435:14;5461:12;5476:52;5501:7;5510;5519:8;5476:24;:52::i;:::-;5461:67;;5538:36;5577:33;5605:4;5577:27;:33::i;:::-;5658:26;;5538:72;;-1:-1:-1;5640:15:11;:44;5717:10;5702:25;;;5694:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5861:10;5874:1;5861:14;5848:10;:27;5833:11;:42;;5825:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5936:21;5959;5985:52;6032:4;5985:46;:52::i;:::-;5935:102;;;;;6048:14;6067:46;6095:7;6104:8;6067:27;:46::i;:::-;6047:66;;;6138:7;6128:17;;:6;:17;;;6124:277;;;6168:92;6185:16;:33;;;6220:16;6238:11;6251:8;6168:16;:92::i;:::-;6161:99;;;;;;;;;;6124:277;6298:92;6315:16;:33;;;6350:16;6368:11;6381:8;6298:16;:92::i;5345:1062::-;;;;;;:::o;1911:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1911:57:11;;-1:-1:-1;1911:57:11;:::o;922:32::-;;;:::o;3373:1050::-;3440:12;3455:49;3480:7;3489:6;3497;3455:24;:49::i;:::-;3601:22;;;3592:6;3601:22;;;;;;;;;;:29;3440:64;;-1:-1:-1;3587:121:11;3636:11;3632:15;;:1;:15;3587:121;;;3668:22;;;:16;:22;;;;;;;;;;27:10:-1;;3668:29:11;23:18:-1;;;45:23;;3668:29:11;;3649:3;3587:121;;;;3772:22;3797:35;3816:15;3797:18;:35::i;:::-;3876:22;;;3842:31;3876:22;;;;;;;;;;:40;;3772:60;;-1:-1:-1;3842:31:11;;3876:40;;;;;;;;;;;;;;;;;;;;;;;4054:21;;3876:40;;-1:-1:-1;4036:15:11;:39;4103:10;4089:24;;4085:332;;;4130:21;4153;4179:52;4226:4;4179:46;:52::i;:::-;-1:-1:-1;4269:15:11;4245:39;;4298:28;;;:47;;;;4359:28;;;:47;-1:-1:-1;;4085:332:11;3373:1050;;;;;;:::o;2489:185::-;2554:11;2577:16;2608:10;2596:9;:22;;;;;;2577:41;;2655:11;2641:25;;:11;:25;;;;;;;2489:185;-1:-1:-1;;;2489:185:11:o;1794:32::-;;;:::o;715:470:21:-;804:12;829:14;845;863:26;874:6;882;863:10;:26::i;:::-;1023:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;1023:32:21;;;;;1013:43;;;;;;929:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;929:246:21;;;;;;;919:257;;;;;;;;;715:470;-1:-1:-1;;;;;715:470:21:o;2795:425:11:-;2868:36;2916:22;2941:35;2960:15;2941:18;:35::i;:::-;2916:60;;3073:27;3128:11;3103:36;;3104:16;3123:1;3104:20;3103:36;;;;;;;;3073:66;;3168:16;:22;3185:4;3168:22;;;;;;;;;;;;;;;3191:21;3168:45;;;;;;;;;;;;;;;;;;;;3149:64;;2795:425;;;;;:::o;646:1040:22:-;730:21;753;776;826:23;:21;:23::i;:::-;809:40;;893:4;878:41;;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;878:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;878:43:22;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;878:43:22;950;;;;;;;;878;;-1:-1:-1;950:41:22;;;;;;:43;;;;;878;;950;;;;;;;;:41;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;950:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;950:43:22;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;950:43:22;1170:34;;;;;;;;950:43;;-1:-1:-1;1105:16:22;;;;;;1170:32;;;;;;:34;;;;;;;;;;;;;;:32;:34;;;2:2:-1;;;;27:1;24;17:12;2:2;1170:34:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1170:34:22;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1170:34:22;;;;;;;;;;;;;-1:-1:-1;1170:34:22;;-1:-1:-1;1170:34:22;-1:-1:-1;1218:36:22;;;;;;;;1214:466;;1338:35;;;1481:62;;;1486:39;1506:8;1516;1486:19;:39::i;:::-;:42;1481:48;;:62;1461:82;;;;;1607:62;;;1612:39;1632:8;1642;1612:19;:39::i;:::-;:42;1607:48;;:62;1587:82;;;;;-1:-1:-1;1214:466:22;646:1040;;;;;;;;:::o;281:345:21:-;356:14;372;416:6;406:16;;:6;:16;;;;398:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:6;493:15;;:6;:15;;;:53;;531:6;539;493:53;;;512:6;520;493:53;474:72;;-1:-1:-1;474:72:21;-1:-1:-1;564:20:21;;;556:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:345;;;;;:::o;4623:433:11:-;4778:14;4836:40;;:::i;:::-;4879:110;;;;;;;;4967:11;4943:20;4922:18;:41;4921:57;;;;;;4879:110;;;;4836:153;-1:-1:-1;5011:38:11;:26;4836:153;5028:8;5011:16;:26::i;:::-;:36;:38::i;:::-;4999:50;;;4623:433;-1:-1:-1;;;;;;4623:433:11:o;422:121:22:-;510:25;:15;:25;;422:121::o;1517:243:1:-;1598:16;;:::i;:::-;1648:1;1634:11;:15;;;1626:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:59;;;;;;;;;;1704:48;;;1705:32;407:3;1705:32;;;;1704:48;;;;;;1694:59;;;;;1687:66;;1517:243;;;;:::o;1116:249::-;1183:16;;:::i;:::-;1211:6;1235;;;:54;;-1:-1:-1;;1281:7:1;;1276:13;;1250:17;;;;1271:1;1250:17;1271:1;1245:27;;;;;:44;1235:54;1227:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1346:12;;;;;;;;;;;;;1116:249;-1:-1:-1;;;1116:249:1:o;2051:128::-;2150:7;407:3;2150:21;;2051:128::o;704:5705:11:-;;;;;;;;;;-1:-1:-1;704:5705:11;;;:::o;:::-;;;;;;;;;;;;;;:::o"
    }
  },
  "interface": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "factory_",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "windowSize_",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "granularity_",
          "type": "uint8"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenOut",
          "type": "address"
        }
      ],
      "name": "consult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "granularity",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "observationIndexOf",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "index",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "pairObservations",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price0Cumulative",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price1Cumulative",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "periodSize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        }
      ],
      "name": "update",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "windowSize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "[encoded data, 8502 characters]"
}