Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
366.80 SS2

Holders:
26
Profile Summary
Blockchain:
Base (8453)


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

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Created At:
Wed, 22 Jan 2025 07:45:55 GMT
OnlyUpToken.sol
src
tokens
OnlyUpToken.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_weth",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AirdropNotInitiated",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "DisableTimeNotReached",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidAirdropPeriod",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidAirdropToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidReserveIn",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidSender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidSwapParameters",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintingDisabled",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NoReentrancy",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "RestrictedTransfer",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TokenNotDisabled",
    "type": "error"
  },
  {
    "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": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount0",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount1",
        "type": "uint256"
      }
    ],
    "name": "Burn",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "Disable",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "Evolve",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount0",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount1",
        "type": "uint256"
      }
    ],
    "name": "Mint",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "OwnerBurn",
    "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": "sender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount0In",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount1In",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount0Out",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount1Out",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "Swap",
    "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"
  },
  {
    "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": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenAmount",
        "type": "uint256"
      }
    ],
    "name": "convertToAssets",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "ethAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ethAmount",
        "type": "uint256"
      }
    ],
    "name": "convertToShares",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "tokenAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_value",
        "type": "uint256"
      }
    ],
    "name": "determineTax",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "disabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "factory",
    "outputs": [
      {
        "internalType": "contract IOnlyUpFactory",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "genesis",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amountOut",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_reserveIn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "getAmountIn",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amountIn",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amountIn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_reserveIn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "getAmountOut",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "amountOut",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getReserves",
    "outputs": [
      {
        "internalType": "uint112",
        "name": "_reserve0",
        "type": "uint112"
      },
      {
        "internalType": "uint112",
        "name": "_reserve1",
        "type": "uint112"
      },
      {
        "internalType": "uint32",
        "name": "_blockTimestampLast",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_buy",
        "type": "bool"
      }
    ],
    "name": "getTaxes",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "taxes",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "graduate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_receiver",
        "type": "address"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "payable",
    "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": "_receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_tokenAmount",
        "type": "uint256"
      }
    ],
    "name": "redeem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount0Out",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "amount1Out",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "bytes",
        "name": "",
        "type": "bytes"
      }
    ],
    "name": "swap",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "token0",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "token1",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "value",
        "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": "value",
        "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"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
608060405234801562000010575f80fd5b506040516200281b3803806200281b83398101604081905262000033916200020b565b838383600362000044838262000322565b50600462000053828262000322565b5050506001600160a01b0381166200008457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200008f81620000e0565b50600780546001600160a01b0319908116331790915542600855600680546001600160a01b03939093169282168317905560098054821630179055600a8054909116909117905550620003ea915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b80516001600160a01b038116811462000148575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000171575f80fd5b81516001600160401b03808211156200018e576200018e6200014d565b604051601f8301601f19908116603f01168101908282118183101715620001b957620001b96200014d565b81604052838152602092508683858801011115620001d5575f80fd5b5f91505b83821015620001f85785820183015181830184015290820190620001d9565b5f93810190920192909252949350505050565b5f805f80608085870312156200021f575f80fd5b6200022a8562000131565b60208601519094506001600160401b038082111562000247575f80fd5b620002558883890162000161565b945060408701519150808211156200026b575f80fd5b506200027a8782880162000161565b9250506200028b6060860162000131565b905092959194509250565b600181811c90821680620002ab57607f821691505b602082108103620002ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200031d575f81815260208120601f850160051c81016020861015620002f85750805b601f850160051c820191505b81811015620003195782815560010162000304565b5050505b505050565b81516001600160401b038111156200033e576200033e6200014d565b62000356816200034f845462000296565b84620002d0565b602080601f8311600181146200038c575f8415620003745750858301515b5f19600386901b1c1916600185901b17855562000319565b5f85815260208120601f198616915b82811015620003bc578886015182559484019460019091019084016200039b565b5085821015620003da57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b61242380620003f85f395ff3fe6080604052600436106101b2575f3560e01c8063715018a6116100e7578063c45a015511610087578063d3618cca11610062578063d3618cca146104d9578063dd62ed3e146104ed578063ee07080514610531578063f2fde38b14610551575f80fd5b8063c45a01551461047c578063c6e6f5921461049b578063d21220a7146104ba575f80fd5b806395d89b41116100c257806395d89b41146104155780639ca31bfb14610429578063a7f0b3de14610448578063a9059cbb1461045d575f80fd5b8063715018a6146103c557806385f8c259146103d95780638da5cb5b146103f8575f80fd5b80631232b4cf1161015257806323b872dd1161012d57806323b872dd14610344578063313ce567146103635780636a6278421461037e57806370a0823114610391575f80fd5b80631232b4cf146102f257806318160ddd146103115780631e9a695014610325575f80fd5b806307a2d13a1161018d57806307a2d13a146102255780630902f1ac14610244578063095ea7b31461028c5780630dfe1681146102bb575f80fd5b8063022c0d9f146101bd578063054d50d4146101d257806306fdde0314610204575f80fd5b366101b957005b5f80fd5b6101d06101cb36600461209a565b610570565b005b3480156101dd575f80fd5b506101f16101ec366004612128565b6105cc565b6040519081526020015b60405180910390f35b34801561020f575f80fd5b506102186108c6565b6040516101fb9190612151565b348015610230575f80fd5b506101f161023f36600461219c565b610956565b34801561024f575f80fd5b50600c54600b54600d54604080516dffffffffffffffffffffffffffff948516815293909216602084015263ffffffff16908201526060016101fb565b348015610297575f80fd5b506102ab6102a63660046121b3565b6109b7565b60405190151581526020016101fb565b3480156102c6575f80fd5b506009546102da906001600160a01b031681565b6040516001600160a01b0390911681526020016101fb565b3480156102fd575f80fd5b506101f161030c3660046121ea565b6109d0565b34801561031c575f80fd5b506002546101f1565b348015610330575f80fd5b506101d061033f3660046121b3565b610b7c565b34801561034f575f80fd5b506102ab61035e366004612218565b610f23565b34801561036e575f80fd5b50604051601281526020016101fb565b6101d061038c366004612256565b610f46565b34801561039c575f80fd5b506101f16103ab366004612256565b6001600160a01b03165f9081526020819052604090205490565b3480156103d0575f80fd5b506101d06111fd565b3480156103e4575f80fd5b506101f16103f3366004612128565b611210565b348015610403575f80fd5b506005546001600160a01b03166102da565b348015610420575f80fd5b50610218611496565b348015610434575f80fd5b506101f1610443366004612218565b6114a5565b348015610453575f80fd5b506101f160085481565b348015610468575f80fd5b506102ab6104773660046121b3565b6114b9565b348015610487575f80fd5b506007546102da906001600160a01b031681565b3480156104a6575f80fd5b506101f16104b536600461219c565b6114c6565b3480156104c5575f80fd5b50600a546102da906001600160a01b031681565b3480156104e4575f80fd5b506101d0611516565b3480156104f8575f80fd5b506101f1610507366004612271565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561053c575f80fd5b506007546102ab90600160a01b900460ff1681565b34801561055c575f80fd5b506101d061056b366004612256565b611852565b5f8411801561057d575084155b156105905761058b83610f46565b6105c5565b5f8511801561059d575083155b156105ac5761058b8386610b7c565b604051635adaa95f60e01b815260040160405180910390fd5b5050505050565b5f600b5483141580156105e15750600c548314155b156105ff576040516308aea2cb60e11b815260040160405180910390fd5b5f600c54841461060f573061061c565b6006546001600160a01b03165b9050306001600160a01b03821603610778575f61271060075f9054906101000a90046001600160a01b03166001600160a01b031663d55deabb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610682573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a6919061229d565b6106b090886122c8565b6106ba91906122df565b90505f6106c782886122fe565b90505f6106d382610956565b90505f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166324bcdfbd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d919061229d565b61075790846122c8565b61076191906122df565b905061076d81836122fe565b9550505050506108be565b5f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166372417fc26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f0919061229d565b6107fa90886122c8565b61080491906122df565b90505f61081182886122fe565b90505f61081d826114c6565b90505f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166324bcdfbd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610897919061229d565b6108a190846122c8565b6108ab91906122df565b90506108b781836122fe565b9550505050505b509392505050565b6060600380546108d590612311565b80601f016020809104026020016040519081016040528092919081815260200182805461090190612311565b801561094c5780601f106109235761010080835404028352916020019161094c565b820191905f5260205f20905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b5f806002545f1461098957600254670de0b6b3a7640000600b5461097a91906122c8565b61098491906122df565b610991565b6509184e72a0005b9050670de0b6b3a76400006109a682856122c8565b6109b091906122df565b9392505050565b5f336109c4818585611894565b60019150505b92915050565b5f8082610a505760075f9054906101000a90046001600160a01b03166001600160a01b031663d55deabb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b919061229d565b610ac4565b60075f9054906101000a90046001600160a01b03166001600160a01b03166372417fc26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac4919061229d565b90505f8315610b0d5784600b54610adb9190612349565b670de0b6b3a7640000600b5484610af291906122c8565b610afc91906122c8565b610b0691906122df565b9050610b49565b84600254610b1b9190612349565b670de0b6b3a764000060025484610b3291906122c8565b610b3c91906122c8565b610b4691906122df565b90505b670de0b6b3a7640000612710610b5f83886122c8565b610b6991906122df565b610b7391906122df565b95945050505050565b600a54600160a01b900460ff1615610ba757604051632c1ff44360e11b815260040160405180910390fd5b600a805460ff60a01b1916600160a01b9081179091556007540460ff1615610be25760405163af79b43760e01b815260040160405180910390fd5b5f808211610bfe57305f90815260208190526040902054610c00565b815b90505f8215610c0f5733610c11565b305b9050610c1d81836118a6565b5f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166372417fc26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c95919061229d565b610c9f90856122c8565b610ca991906122df565b90505f610cb682856122fe565b90505f610cc282610956565b90505f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166324bcdfbd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c919061229d565b610d4690846122c8565b610d5091906122df565b9050610d5b816118de565b610d6581836122fe565b9150865f03610de85760065460405163a9059cbb60e01b81526001600160a01b038a81166004830152602482018590529091169063a9059cbb906044016020604051808303815f875af1158015610dbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de2919061235c565b50610e76565b600654604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d906024015f604051808303815f87803b158015610e2b575f80fd5b505af1158015610e3d573d5f803e3d5ffd5b50506040516001600160a01b038b16925084156108fc02915084905f818181858888f19350505050158015610e74573d5f803e3d5ffd5b505b610e7e611a58565b604080515f81526020810188905233917f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a910160405180910390a2604080515f80825260208201899052818301859052606082015290516001600160a01b038a169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a35050600a805460ff60a01b19169055505050505050565b5f33610f30858285611ad1565b610f3b858585611b4c565b506001949350505050565b600754600160a01b900460ff1615610f715760405163af79b43760e01b815260040160405180910390fd5b600a54600160a01b900460ff1615610f9c57604051632c1ff44360e11b815260040160405180910390fd5b600a805460ff60a01b1916600160a01b17905534801561101f5760065f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015611003575f80fd5b505af1158015611015573d5f803e3d5ffd5b5050505050611099565b600b546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611068573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108c919061229d565b61109691906122fe565b90505b5f61271060075f9054906101000a90046001600160a01b03166001600160a01b03166324bcdfbd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611111919061229d565b61111b90846122c8565b61112591906122df565b90505f61113282846122fe565b905061113d826118de565b5f611147826114c6565b90506111538582611ba9565b61115b611a58565b604080515f81526020810183905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a2604080518581525f60208201819052818301526060810183905290516001600160a01b0387169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a35050600a805460ff60a01b19169055505050565b611205611bdd565b61120e5f611c0a565b565b5f600b5483141580156112255750600c548314155b15611243576040516308aea2cb60e11b815260040160405180910390fd5b5f600c5484146112535730611260565b6006546001600160a01b03165b90505f60075f9054906101000a90046001600160a01b03166001600160a01b03166324bcdfbd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d7919061229d565b90505f60075f9054906101000a90046001600160a01b03166001600160a01b03166372417fc26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134e919061229d565b90505f60075f9054906101000a90046001600160a01b03166001600160a01b031663d55deabb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c5919061229d565b9050306001600160a01b03851603611433575f6113e4846127106122fe565b6113f06127108b6122c8565b6113fa91906122df565b90505f611406826114c6565b9050611414836127106122fe565b611420612710836122c8565b61142a91906122df565b9650505061148b565b5f611440846127106122fe565b61144c6127108b6122c8565b61145691906122df565b90505f61146282610956565b9050611470846127106122fe565b61147c612710836122c8565b61148691906122df565b965050505b505050509392505050565b6060600480546108d590612311565b5f6114b1848484611c5b565b949350505050565b5f336109c4818585611b4c565b5f806002545f146114f957600254670de0b6b3a7640000600b546114ea91906122c8565b6114f491906122df565b611501565b6509184e72a0005b9050806109a6670de0b6b3a7640000856122c8565b61151e611bdd565b6007805460ff60a01b1916600160a01b17905560405130907f4f0f085b63912ac6b8aebbd52cd6afde1dc2091bb7ebaabf1baf300237bff27d906115659042815260200190565b60405180910390a25f61271060075f9054906101000a90046001600160a01b03166001600160a01b031663a512583a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e5919061229d565b6002546115f291906122c8565b6115fc91906122df565b90505f61271060075f9054906101000a90046001600160a01b03166001600160a01b031663bd871efe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611652573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611676919061229d565b61168090846122c8565b61168a91906122df565b90505f61169782846122fe565b6007549091506116b0906001600160a01b031682611ba9565b6116cb6116c56005546001600160a01b031690565b83611ba9565b6006546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611711573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611735919061229d565b60065460075460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303815f875af1158015611789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ad919061235c565b5060075460405163a40f4fa160e01b815260048101869052602481018390526001600160a01b039091169063a40f4fa1906044015f604051808303815f87803b1580156117f8575f80fd5b505af115801561180a573d5f803e3d5ffd5b505050506118175f611c0a565b60405142815230907fc09feda7adb0a8bbe69c92dbe769d478537a966979f11dff2dda8bc034dba19d9060200160405180910390a250505050565b61185a611bdd565b6001600160a01b03811661188857604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61189181611c0a565b50565b6118a18383836001611d3c565b505050565b6001600160a01b0382166118cf57604051634b637e8f60e11b81525f600482015260240161187f565b6118da825f83611e0e565b5050565b600654604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d906024015f604051808303815f87803b158015611921575f80fd5b505af1158015611933573d5f803e3d5ffd5b505050505f805f60075f9054906101000a90046001600160a01b03166001600160a01b031663caf6cbd56040518163ffffffff1660e01b8152600401606060405180830381865afa15801561198a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ae9190612377565b9250925092506119c66005546001600160a01b031690565b6001600160a01b03166108fc6127106119df85886122c8565b6119e991906122df565b6040518115909202915f818181858888f19350505050158015611a0e573d5f803e3d5ffd5b506001600160a01b0383166108fc612710611a2984886122c8565b611a3391906122df565b6040518115909202915f818181858888f193505050501580156105c5573d5f803e3d5ffd5b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ac2919061229d565b600b55600254600c5542600d55565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114611b465781811015611b3857604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161187f565b611b4684848484035f611d3c565b50505050565b6001600160a01b038316611b7557604051634b637e8f60e11b81525f600482015260240161187f565b6001600160a01b038216611b9e5760405163ec442f0560e01b81525f600482015260240161187f565b6118a1838383611e0e565b6001600160a01b038216611bd25760405163ec442f0560e01b81525f600482015260240161187f565b6118da5f8383611e0e565b6005546001600160a01b0316331461120e5760405163118cdaa760e01b815233600482015260240161187f565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f306001600160a01b03841603611c7357505f6109b0565b60075460405163752e068b60e11b81526001600160a01b03868116600483015285811660248301525f92839291169063ea5c0d16906044016040805180830381865afa158015611cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce991906123ab565b9092509050612710611cfb83866122c8565b611d0591906122df565b611d0f9084612349565b9250612710611d1e82866122c8565b611d2891906122df565b611d329084612349565b9695505050505050565b6001600160a01b038416611d655760405163e602df0560e01b81525f600482015260240161187f565b6001600160a01b038316611d8e57604051634a1406b160e11b81525f600482015260240161187f565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015611b4657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e0091815260200190565b60405180910390a350505050565b6007545f90600160a01b900460ff16611e3e57611e2c848484611c5b565b90508015611e3e57611e3e8482611f60565b5f611e4982846122fe565b90506001600160a01b038516611e75578060025f828254611e6a9190612349565b90915550611ee59050565b6001600160a01b0385165f9081526020819052604090205481811015611ec75760405163391434e360e21b81526001600160a01b0387166004820152602481018290526044810183905260640161187f565b6001600160a01b0386165f9081526020819052604090209082900390555b6001600160a01b038416611f0157600280548290039055611f1f565b6001600160a01b0384165f9081526020819052604090208054820190555b836001600160a01b0316856001600160a01b03165f805160206123ce83398151915283604051611f5191815260200190565b60405180910390a35050505050565b306001600160a01b0383161561202f576001600160a01b0383165f9081526020819052604081208054849290611f979084906122fe565b925050819055508160025f828254611faf91906122fe565b92505081905550806001600160a01b0316836001600160a01b03165f805160206123ce83398151915284604051611fe891815260200190565b60405180910390a3826001600160a01b0316816001600160a01b03165f805160206123ce8339815191528460405161202291815260200190565b60405180910390a3505050565b6040518281526001600160a01b038216905f905f805160206123ce8339815191529060200160405180910390a36040518281525f906001600160a01b038316905f805160206123ce83398151915290602001612022565b6001600160a01b0381168114611891575f80fd5b5f805f805f608086880312156120ae575f80fd5b853594506020860135935060408601356120c781612086565b9250606086013567ffffffffffffffff808211156120e3575f80fd5b818801915088601f8301126120f6575f80fd5b813581811115612104575f80fd5b896020828501011115612115575f80fd5b9699959850939650602001949392505050565b5f805f6060848603121561213a575f80fd5b505081359360208301359350604090920135919050565b5f6020808352835180828501525f5b8181101561217c57858101830151858201604001528201612160565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156121ac575f80fd5b5035919050565b5f80604083850312156121c4575f80fd5b82356121cf81612086565b946020939093013593505050565b8015158114611891575f80fd5b5f80604083850312156121fb575f80fd5b82359150602083013561220d816121dd565b809150509250929050565b5f805f6060848603121561222a575f80fd5b833561223581612086565b9250602084013561224581612086565b929592945050506040919091013590565b5f60208284031215612266575f80fd5b81356109b081612086565b5f8060408385031215612282575f80fd5b823561228d81612086565b9150602083013561220d81612086565b5f602082840312156122ad575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109ca576109ca6122b4565b5f826122f957634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156109ca576109ca6122b4565b600181811c9082168061232557607f821691505b60208210810361234357634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156109ca576109ca6122b4565b5f6020828403121561236c575f80fd5b81516109b0816121dd565b5f805f60608486031215612389575f80fd5b835161239481612086565b602085015160409095015190969495509392505050565b5f80604083850312156123bc575f80fd5b50508051602090910151909290915056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220289ee9ec07afb62fe6feb9a36cdba13038f8e0706c15ff92406da03fa8de585964736f6c63430008140033000000000000000000000000fa760444a229e78a50ca9b3779f4ce4cce10e170000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003535332000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035353320000000000000000000000000000000000000000000000000000000000