Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
8,025.00 bbAeroSAM-W​ETH

Holders:
33
Profile Summary
Blockchain:
Base (8453)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
Brewery

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Created At:
Mon, 26 Aug 2024 13:20:29 GMT
Brewery.sol
Brewery.sol
Brewery.sol


Contract ABI
[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "shares",
        "type": "uint256"
      }
    ],
    "name": "Deposit",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "version",
        "type": "uint8"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      }
    ],
    "name": "NewStratCandidate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      }
    ],
    "name": "UpgradeStrat",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "shares",
        "type": "uint256"
      }
    ],
    "name": "Withdraw",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "approvalDelay",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "available",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "balance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "subtractedValue",
        "type": "uint256"
      }
    ],
    "name": "decreaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "deposit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "depositAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "earn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "endBlock",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPricePerFullShare",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_userAddress",
        "type": "address"
      }
    ],
    "name": "getUserRewards",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      }
    ],
    "name": "inCaseTokensGetStuck",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "addedValue",
        "type": "uint256"
      }
    ],
    "name": "increaseAllowance",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IStrategy",
        "name": "_strategy",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "_approvalDelay",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_multiplier",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_startBlock",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_endBlock",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_rewardPerBlock",
        "type": "uint256"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "multiplier",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_implementation",
        "type": "address"
      }
    ],
    "name": "proposeStrat",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rewardPerBlock",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_rewardPerBlock",
        "type": "uint256"
      }
    ],
    "name": "setRewardPerBlock",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_startBlock",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_endBlock",
        "type": "uint256"
      }
    ],
    "name": "setStartAndEndRewardBlocks",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "startBlock",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "stratCandidate",
    "outputs": [
      {
        "internalType": "address",
        "name": "implementation",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "proposedTime",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "strategy",
    "outputs": [
      {
        "internalType": "contract IStrategy",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "upgradeStrat",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "userInfo",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "depositAmt",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "lastUpdate",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "rewardDebt",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "userList",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "want",
    "outputs": [
      {
        "internalType": "contract IERC20Upgradeable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_shares",
        "type": "uint256"
      }
    ],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdrawAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
608060405261012c60cf556103e860d05534801561001c57600080fd5b5061278e8061002c6000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806377c7b8fc1161013b578063b69ef8a8116100b8578063de5f62681161007c578063de5f6268146104ea578063def68a9c146104f2578063e2d1e75c14610505578063e66852441461050e578063f2fde38b1461051657600080fd5b8063b69ef8a8146104a1578063b6b55f25146104a9578063bb872b4a146104bc578063d389800f146104cf578063dd62ed3e146104d757600080fd5b806395d89b41116100ff57806395d89b411461044d5780639f4216e814610455578063a457c2d714610468578063a8c62e761461047b578063a9059cbb1461048e57600080fd5b806377c7b8fc14610410578063853828b6146104185780638ae39cac146104205780638da5cb5b14610429578063947f66901461043a57600080fd5b806323b872dd116101c957806348cd4cb11161018d57806348cd4cb11461038d5780635b12ff9b1461039657806370a08231146103a9578063715018a6146103d257806376dfabb8146103da57600080fd5b806323b872dd1461033d5780632e1a7d4d14610350578063313ce56714610363578063395093511461037257806348a0d7541461038557600080fd5b806310adf9f01161021057806310adf9f0146102ad57806318160ddd146102c25780631959a002146102ca5780631b3ed722146103145780631f1fcd511461031d57600080fd5b806306fdde0314610242578063078b0fb714610260578063083c632314610281578063095ea7b31461028a575b600080fd5b61024a610529565b6040516102579190612203565b60405180910390f35b61027361026e36600461224b565b6105bb565b604051908152602001610257565b61027360d25481565b61029d61029836600461226f565b61065f565b6040519015158152602001610257565b6102c06102bb36600461229b565b610679565b005b603554610273565b6102f96102d836600461224b565b60c96020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610257565b61027360d05481565b6103256106e0565b6040516001600160a01b039091168152602001610257565b61029d61034b3660046122bd565b610753565b6102c061035e3660046122fe565b610777565b60405160128152602001610257565b61029d61038036600461226f565b6109e2565b610273610a04565b61027360d15481565b6102c06103a436600461224b565b610a78565b6102736103b736600461224b565b6001600160a01b031660009081526033602052604090205490565b6102c0610c6d565b60cb5460cc546103f1916001600160a01b03169082565b604080516001600160a01b039093168352602083019190915201610257565b610273610c81565b6102c0610cc5565b61027360cf5481565b6065546001600160a01b0316610325565b6102c06104483660046123ba565b610cde565b61024a610e3d565b6103256104633660046122fe565b610e4c565b61029d61047636600461226f565b610e76565b60cd54610325906001600160a01b031681565b61029d61049c36600461226f565b610ef1565b610273610eff565b6102c06104b73660046122fe565b610fe9565b6102c06104ca3660046122fe565b6111bb565b6102c0611244565b6102736104e536600461245e565b6112d5565b6102c0611300565b6102c061050036600461224b565b611375565b61027360ce5481565b6102c0611453565b6102c061052436600461224b565b6115de565b60606036805461053890612497565b80601f016020809104026020016040519081016040528092919081815260200182805461056490612497565b80156105b15780601f10610586576101008083540402835291602001916105b1565b820191906000526020600020905b81548152906001019060200180831161059457829003601f168201915b5050505050905090565b6001600160a01b038116600090815260c96020526040812080541580156105e457506001810154155b156105f25750600092915050565b600060d254431161061357600182015461060c90436124e7565b9050610628565b816001015460d25461062591906124e7565b90505b60008160cf54846000015461063d91906124fa565b61064791906124fa565b83600201546106569190612511565b95945050505050565b60003361066d818585611654565b60019150505b92915050565b610681611779565b4381116106d55760405162461bcd60e51b815260206004820152601f60248201527f456e6420626c6f636b206d75737420626520696e20746865206675747572650060448201526064015b60405180910390fd5b60d19190915560d255565b60cd5460408051631f1fcd5160e01b815290516000926001600160a01b031691631f1fcd519160048083019260209291908290030181865afa15801561072a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074e9190612524565b905090565b6000336107618582856117d3565b61076c85858561184d565b506001949350505050565b600061078260355490565b8261078b610eff565b61079591906124fa565b61079f9190612541565b90506107ab33836119f8565b60006107b56106e0565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190612563565b90508181101561093157600061083582846124e7565b60cd54604051632e1a7d4d60e01b8152600481018390529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561087c57600080fd5b505af1158015610890573d6000803e3d6000fd5b50505050600061089e6106e0565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109089190612563565b9050600061091684836124e7565b90508281101561092d5761092a8185612511565b94505b5050505b33600090815260c96020526040902080541561095657610950336105bb565b60028201555b80548310610970576000815561096b33611b29565b610980565b805461097d9084906124e7565b81555b4360018201556109a333846109936106e0565b6001600160a01b03169190611c46565b60408051338152602081018690527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364910160405180910390a150505050565b60003361066d8185856109f583836112d5565b6109ff9190612511565b611654565b6000610a0e6106e0565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074e9190612563565b610a80611779565b806001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae29190612524565b6001600160a01b0316306001600160a01b031614610b4c5760405162461bcd60e51b815260206004820152602160248201527f50726f706f73616c206e6f742076616c696420666f722074686973205661756c6044820152601d60fa1b60648201526084016106cc565b806001600160a01b0316631f1fcd516040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae9190612524565b6001600160a01b0316610bbf6106e0565b6001600160a01b031614610c065760405162461bcd60e51b815260206004820152600e60248201526d111a5999995c995b9d081dd85b9d60921b60448201526064016106cc565b6040805180820182526001600160a01b03831680825242602092830181905260cb80546001600160a01b0319168317905560cc5591519182527f1aae2ec5647db56da2d513de40528ba3565c6057525637050660c4323bbac7df910160405180910390a150565b610c75611779565b610c7f6000611ca9565b565b6000610c8c60355490565b15610cb857603554610c9c610eff565b610cae90670de0b6b3a76400006124fa565b61074e9190612541565b50670de0b6b3a764000090565b33600090815260336020526040902054610c7f90610777565b600054610100900460ff1615808015610cfe5750600054600160ff909116105b80610d185750303b158015610d18575060005460ff166001145b610d7b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106cc565b6000805460ff191660011790558015610d9e576000805461ff0019166101001790555b610da88888611cfb565b610db0611d2c565b610db8611d5b565b60cd80546001600160a01b0319166001600160a01b038b1617905560ce86905560d085905560d184905560d283905560cf8290558015610e32576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60606037805461053890612497565b60ca8181548110610e5c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60003381610e8482866112d5565b905083811015610ee45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106cc565b61076c8286868403611654565b60003361066d81858561184d565b60cd546040805163722713f760e01b815290516000926001600160a01b03169163722713f79160048083019260209291908290030181865afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190612563565b610f756106e0565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdf9190612563565b61074e9190612511565b610ff1611d8a565b60cd60009054906101000a90046001600160a01b03166001600160a01b031663573fef0a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561104157600080fd5b505af1158015611055573d6000803e3d6000fd5b505050506000611063610eff565b90506110843330846110736106e0565b6001600160a01b0316929190611de3565b61108c611244565b6000611096610eff565b90506110a282826124e7565b925060006110af60355490565b6000036110bd5750826110de565b826110c760355490565b6110d190866124fa565b6110db9190612541565b90505b33600090815260c960205260409020805415611107576110fd336105bb565b600282015561114a565b60ca80546001810182556000919091527f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee10180546001600160a01b031916331790555b8054611157908690612511565b81554360018201556111693383611e1b565b60408051338152602081018790529081018390527f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060600160405180910390a1505050506111b86001609755565b50565b6111c3611779565b60005b60ca5481101561123e57600060ca82815481106111e5576111e561257c565b60009182526020808320909101546001600160a01b031680835260c99091526040909120805491925090156112295761121d336105bb565b60028201554360018201555b5050808061123690612592565b9150506111c6565b5060cf55565b600061124e610a04565b60cd5490915061126a906001600160a01b0316826109936106e0565b60cd60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b5050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b610c7f61130b6106e0565b6040516370a0823160e01b81523360048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b79190612563565b61137d611779565b6113856106e0565b6001600160a01b0316816001600160a01b0316036113ce5760405162461bcd60e51b815260206004820152600660248201526510ba37b5b2b760d11b60448201526064016106cc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114399190612563565b905061144f6001600160a01b0383163383611c46565b5050565b61145b611779565b60cb546001600160a01b03166114ab5760405162461bcd60e51b81526020600482015260156024820152745468657265206973206e6f2063616e64696461746560581b60448201526064016106cc565b60ce5460cc5442916114bc91612511565b106115005760405162461bcd60e51b815260206004820152601460248201527311195b185e481a185cc81b9bdd081c185cdcd95960621b60448201526064016106cc565b60cb546040516001600160a01b0390911681527f7f37d440e85aba7fbf641c4bda5ca4ef669a80bffaacde2aa8d9feb1b048c82c9060200160405180910390a160cd60009054906101000a90046001600160a01b03166001600160a01b031663fb6177876040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b505060cb805460cd80546001600160a01b03199081166001600160a01b03841617909155169055505064012a05f20060cc55610c7f611244565b6115e6611779565b6001600160a01b03811661164b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cc565b6111b881611ca9565b6001600160a01b0383166116b65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106cc565b6001600160a01b0382166117175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106cc565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6065546001600160a01b03163314610c7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cc565b60006117df84846112d5565b90506000198114611847578181101561183a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106cc565b6118478484848403611654565b50505050565b6001600160a01b0383166118b15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106cc565b6001600160a01b0382166119135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106cc565b6001600160a01b0383166000908152603360205260409020548181101561198b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106cc565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119eb9086815260200190565b60405180910390a3611847565b6001600160a01b038216611a585760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106cc565b6001600160a01b03821660009081526033602052604090205481811015611acc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106cc565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161176c565b505050565b60ca5460005b60ca54811015611b8a57826001600160a01b031660ca8281548110611b5657611b5661257c565b6000918252602090912001546001600160a01b031603611b7857809150611b8a565b80611b8281612592565b915050611b2f565b5060ca5481101561144f5760ca8054611ba5906001906124e7565b81548110611bb557611bb561257c565b60009182526020909120015460ca80546001600160a01b039092169183908110611be157611be161257c565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060ca805480611c2057611c206125ab565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6040516001600160a01b038316602482015260448101829052611b2490849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611ee3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611d225760405162461bcd60e51b81526004016106cc906125c1565b61144f8282611fb8565b600054610100900460ff16611d535760405162461bcd60e51b81526004016106cc906125c1565b610c7f611ff8565b600054610100900460ff16611d825760405162461bcd60e51b81526004016106cc906125c1565b610c7f612028565b600260975403611ddc5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cc565b6002609755565b6040516001600160a01b03808516602483015283166044820152606481018290526118479085906323b872dd60e01b90608401611c72565b6001600160a01b038216611e715760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106cc565b8060356000828254611e839190612511565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001609755565b6000611f38826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661204f9092919063ffffffff16565b9050805160001480611f59575080806020019051810190611f59919061260c565b611b245760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106cc565b600054610100900460ff16611fdf5760405162461bcd60e51b81526004016106cc906125c1565b6036611feb838261267c565b506037611b24828261267c565b600054610100900460ff1661201f5760405162461bcd60e51b81526004016106cc906125c1565b610c7f33611ca9565b600054610100900460ff16611edc5760405162461bcd60e51b81526004016106cc906125c1565b606061205e8484600085612066565b949350505050565b6060824710156120c75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106cc565b600080866001600160a01b031685876040516120e3919061273c565b60006040518083038185875af1925050503d8060008114612120576040519150601f19603f3d011682016040523d82523d6000602084013e612125565b606091505b509150915061213687838387612141565b979650505050505050565b606083156121b05782516000036121a9576001600160a01b0385163b6121a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106cc565b508161205e565b61205e83838151156121c55781518083602001fd5b8060405162461bcd60e51b81526004016106cc9190612203565b60005b838110156121fa5781810151838201526020016121e2565b50506000910152565b60208152600082518060208401526122228160408501602087016121df565b601f01601f19169190910160400192915050565b6001600160a01b03811681146111b857600080fd5b60006020828403121561225d57600080fd5b813561226881612236565b9392505050565b6000806040838503121561228257600080fd5b823561228d81612236565b946020939093013593505050565b600080604083850312156122ae57600080fd5b50508035926020909101359150565b6000806000606084860312156122d257600080fd5b83356122dd81612236565b925060208401356122ed81612236565b929592945050506040919091013590565b60006020828403121561231057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261233e57600080fd5b813567ffffffffffffffff8082111561235957612359612317565b604051601f8301601f19908116603f0116810190828211818310171561238157612381612317565b8160405283815286602085880101111561239a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600080600080610100898b0312156123d757600080fd5b88356123e281612236565b9750602089013567ffffffffffffffff808211156123ff57600080fd5b61240b8c838d0161232d565b985060408b013591508082111561242157600080fd5b5061242e8b828c0161232d565b989b979a5097986060810135985060808101359760a0820135975060c0820135965060e090910135945092505050565b6000806040838503121561247157600080fd5b823561247c81612236565b9150602083013561248c81612236565b809150509250929050565b600181811c908216806124ab57607f821691505b6020821081036124cb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610673576106736124d1565b8082028115828204841417610673576106736124d1565b80820180821115610673576106736124d1565b60006020828403121561253657600080fd5b815161226881612236565b60008261255e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561257557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016125a4576125a46124d1565b5060010190565b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561261e57600080fd5b8151801515811461226857600080fd5b601f821115611b2457600081815260208120601f850160051c810160208610156126555750805b601f850160051c820191505b8181101561267457828155600101612661565b505050505050565b815167ffffffffffffffff81111561269657612696612317565b6126aa816126a48454612497565b8461262e565b602080601f8311600181146126df57600084156126c75750858301515b600019600386901b1c1916600185901b178555612674565b600085815260208120601f198616915b8281101561270e578886015182559484019460019091019084016126ef565b508582101561272c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161274e8184602087016121df565b919091019291505056fea2646970667358221220ebbcdd4c89b863e0462d9c7d28297d99a12c5953eb96893ef61abe55b7a7ce4164736f6c63430008130033