Overview ERC20
PRICE
$0.140141 @ 0.00004146 ETH

ON-CHAIN MARKET CAP $140,141.00

Total Supply:
1,000,000.00 SYBL

Holders:
104
Profile Summary
Blockchain:
Ethereum (1)


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

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 08 Aug 2023 19:25:35 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "isExcluded",
        "type": "bool"
      }
    ],
    "name": "ExcludeFromFees",
    "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": "pair",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "SetAutomatedMarketMakerPair",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensSwapped",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "ethReceived",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensIntoLiquidity",
        "type": "uint256"
      }
    ],
    "name": "SwapAndLiquify",
    "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": true,
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldAddress",
        "type": "address"
      }
    ],
    "name": "UpdateUniswapV2Router",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_isExcludedMaxTransactionAmount",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "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": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "automatedMarketMakerPairs",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "lpAddress",
        "type": "address"
      }
    ],
    "name": "blacklistLiquidityPool",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "buyLiquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "buyRevShareFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "buyTotalFees",
    "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": [],
    "name": "enableTrading",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "excluded",
        "type": "bool"
      }
    ],
    "name": "excludeFromFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "updAds",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "isEx",
        "type": "bool"
      }
    ],
    "name": "excludeFromMaxTransaction",
    "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": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isBlacklisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isExcludedFromFees",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTransactionAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxWallet",
    "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": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revShareWallet",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellLiquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellRevShareFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellTotalFees",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "setAutomatedMarketMakerPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_helper",
        "type": "address"
      }
    ],
    "name": "setHelper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_helper",
        "type": "address"
      }
    ],
    "name": "setHelperFromHelper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setSwapTokensAtAmount",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setSwapTokensAtAmountHelper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapTokensAtAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokensForLiquidity",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokensForRevShare",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tradingActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "unblacklist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "uniswapV2Pair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "uniswapV2Router",
    "outputs": [
      {
        "internalType": "contract IUniswapV2Router02",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "updateLimitsAndFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "toAddr",
        "type": "address"
      }
    ],
    "name": "withdrawStuckEth",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_to",
        "type": "address"
      }
    ],
    "name": "withdrawStuckToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60c0604052600e805461ffff191690553480156200001c57600080fd5b5060405180604001604052806007815260200166537962756c6c7360c81b8152506040518060400160405280600481526020016314d6509360e21b81525081600390816200006b91906200067c565b5060046200007a82826200067c565b50505062000097620000916200036660201b60201c565b6200036a565b600a80546001600160a01b03191673183365cc2bfc48d332aed992b669bcf55ecefb29179055737a250d5630b4cf539739df2c5dacb4c659f2488d60096001818169d3c21bcecceda100000085620000f08184620003bc565b6001600160a01b03811660a08190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200013b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000161919062000748565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d5919062000748565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000249919062000748565b6001600160a01b0316608081905262000264906001620003bc565b60805162000274906001620003f1565b6869b5afac750bb80000600c819055600d556127106200029683601462000790565b620002a29190620007b0565b600b5560108690556011859055620002bb8587620007d3565b600f5560138490556014839055620002d48385620007d3565b601255620002f6620002ee6005546001600160a01b031690565b600162000445565b6200030330600162000445565b6200031261dead600162000445565b62000331620003296005546001600160a01b031690565b6001620003bc565b6200033e306001620003bc565b6200034d61dead6001620003bc565b620003593383620004ae565b50505050505050620007e9565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620003c662000575565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260086020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6200044f62000575565b6001600160a01b038216600081815260066020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200050a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200051e9190620007d3565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620005d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000501565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200060357607f821691505b6020821081036200062457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005d357600081815260208120601f850160051c81016020861015620006535750805b601f850160051c820191505b8181101562000674578281556001016200065f565b505050505050565b81516001600160401b03811115620006985762000698620005d8565b620006b081620006a98454620005ee565b846200062a565b602080601f831160018114620006e85760008415620006cf5750858301515b600019600386901b1c1916600185901b17855562000674565b600085815260208120601f198616915b828110156200071957888601518255948401946001909101908401620006f8565b5085821015620007385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200075b57600080fd5b81516001600160a01b03811681146200077357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620007aa57620007aa6200077a565b92915050565b600082620007ce57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620007aa57620007aa6200077a565b60805160a0516124ce620008406000396000818161035901528181611e3101528181611eea01528181611f2601528181611fa00152611fc701526000818161045801528181610c040152610fa801526124ce6000f3fe60806040526004361061028c5760003560e01c806388c90fb71161015a578063bc205ad3116100c1578063e2f456051161007a578063e2f45605146107e8578063f11a24d3146107fe578063f2fde38b14610814578063f637434214610834578063f8b45b051461084a578063fe575a871461086057600080fd5b8063bc205ad31461073c578063c02466681461075c578063c8c8ebe41461077c578063d85ba06314610792578063dd62ed3e146107a8578063e19b2823146107c857600080fd5b80639c6868af116101135780639c6868af1461067d578063a457c2d714610692578063a9059cbb146106b2578063afa4f3b2146106d2578063b62496f5146106f2578063bbc0c7421461072257600080fd5b806388c90fb7146105d55780638a8c523c146105f55780638da5cb5b1461060a57806395d89b4114610628578063986ccc7f1461063d5780639a7a23d61461065d57600080fd5b806339509351116101fe57806370a08231116101b757806370a082311461050a578063715018a6146105405780637571336a1461055557806375e3661e14610575578063782c4e99146105955780637ca8448a146105b557600080fd5b8063395093511461042657806349bd5a5e146104465780634fbee1931461047a5780636741b1fd146104b35780636a486a8e146104d55780636ddd1713146104eb57600080fd5b806318160ddd1161025057806318160ddd1461039357806319eab042146103a85780631a8145bb146103be57806323b872dd146103d457806324b9f3c1146103f4578063313ce5671461040a57600080fd5b806306fdde0314610298578063095ea7b3146102c357806310d5de53146102f3578063156c2f35146103235780631694505e1461034757600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610899565b6040516102ba91906120a0565b60405180910390f35b3480156102cf57600080fd5b506102e36102de366004612103565b61092b565b60405190151581526020016102ba565b3480156102ff57600080fd5b506102e361030e36600461212f565b60076020526000908152604090205460ff1681565b34801561032f57600080fd5b5061033960105481565b6040519081526020016102ba565b34801561035357600080fd5b5061037b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ba565b34801561039f57600080fd5b50600254610339565b3480156103b457600080fd5b5061033960135481565b3480156103ca57600080fd5b5061033960165481565b3480156103e057600080fd5b506102e36103ef366004612153565b610945565b34801561040057600080fd5b5061033960155481565b34801561041657600080fd5b50604051601281526020016102ba565b34801561043257600080fd5b506102e3610441366004612103565b610969565b34801561045257600080fd5b5061037b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048657600080fd5b506102e361049536600461212f565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104bf57600080fd5b506104d36104ce366004612194565b61098b565b005b3480156104e157600080fd5b5061033960125481565b3480156104f757600080fd5b50600e546102e390610100900460ff1681565b34801561051657600080fd5b5061033961052536600461212f565b6001600160a01b031660009081526020819052604090205490565b34801561054c57600080fd5b506104d3610a08565b34801561056157600080fd5b506104d36105703660046121bb565b610a1c565b34801561058157600080fd5b506104d361059036600461212f565b610a4f565b3480156105a157600080fd5b50600a5461037b906001600160a01b031681565b3480156105c157600080fd5b506104d36105d036600461212f565b610a9a565b3480156105e157600080fd5b506104d36105f036600461212f565b610b28565b34801561060157600080fd5b506104d3610bca565b34801561061657600080fd5b506005546001600160a01b031661037b565b34801561063457600080fd5b506102ad610be3565b34801561064957600080fd5b506104d361065836600461212f565b610bf2565b34801561066957600080fd5b506104d36106783660046121bb565b610bfa565b34801561068957600080fd5b506104d3610cb3565b34801561069e57600080fd5b506102e36106ad366004612103565b610cf1565b3480156106be57600080fd5b506102e36106cd366004612103565b610d6c565b3480156106de57600080fd5b506104d36106ed366004612194565b610d7a565b3480156106fe57600080fd5b506102e361070d36600461212f565b60086020526000908152604090205460ff1681565b34801561072e57600080fd5b50600e546102e39060ff1681565b34801561074857600080fd5b506104d36107573660046121f4565b610d82565b34801561076857600080fd5b506104d36107773660046121bb565b610eea565b34801561078857600080fd5b50610339600c5481565b34801561079e57600080fd5b50610339600f5481565b3480156107b457600080fd5b506103396107c33660046121f4565b610f51565b3480156107d457600080fd5b506104d36107e336600461212f565b610f7c565b3480156107f457600080fd5b50610339600b5481565b34801561080a57600080fd5b5061033960115481565b34801561082057600080fd5b506104d361082f36600461212f565b61108c565b34801561084057600080fd5b5061033960145481565b34801561085657600080fd5b50610339600d5481565b34801561086c57600080fd5b506102e361087b36600461212f565b6001600160a01b031660009081526009602052604090205460ff1690565b6060600380546108a890612222565b80601f01602080910402602001604051908101604052809291908181526020018280546108d490612222565b80156109215780601f106108f657610100808354040283529160200191610921565b820191906000526020600020905b81548152906001019060200180831161090457829003601f168201915b5050505050905090565b600033610939818585611105565b60019150505b92915050565b600033610953858285611229565b61095e85858561129d565b506001949350505050565b60003361093981858561097c8383610f51565b6109869190612272565b611105565b600a546001600160a01b031633146109be5760405162461bcd60e51b81526004016109b590612285565b60405180910390fd5b60008111610a035760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742063616e6e6f7420626520360741b60448201526064016109b5565b600b55565b610a106119ee565b610a1a6000611a48565b565b610a246119ee565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600a546001600160a01b03163314610a795760405162461bcd60e51b81526004016109b590612285565b6001600160a01b03166000908152600960205260409020805460ff19169055565b600a546001600160a01b03163314610ac45760405162461bcd60e51b81526004016109b590612285565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610b11576040519150601f19603f3d011682016040523d82523d6000602084013e610b16565b606091505b5050905080610b2457600080fd5b5050565b600a546001600160a01b03163314610b525760405162461bcd60e51b81526004016109b590612285565b6001600160a01b038116610ba85760405162461bcd60e51b815260206004820152601a60248201527f48656c70657220616464726573732063616e6e6f74206265203000000000000060448201526064016109b5565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b610bd26119ee565b600e805461ffff1916610101179055565b6060600480546108a890612222565b610b526119ee565b610c026119ee565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610ca95760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109b5565b610b248282611a9a565b610cbb6119ee565b69054b40b1f852bda00000600c819055600d5560046010819055600160118190556005600f819055601392909255601455601255565b60003381610cff8286610f51565b905083811015610d5f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b5565b61095e8286868403611105565b60003361093981858561129d565b6109be6119ee565b600a546001600160a01b03163314610dac5760405162461bcd60e51b81526004016109b590612285565b6001600160a01b038216610e025760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016109b5565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6d91906122bc565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee491906122d5565b50505050565b610ef26119ee565b6001600160a01b038216600081815260066020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a546001600160a01b03163314610fa65760405162461bcd60e51b81526004016109b590612285565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415801561100557506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b6110685760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f7420626c61636b6c69737420746f6b656e277320763220726f757460448201526d32b91037b9103b19103837b7b61760911b60648201526084016109b5565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6110946119ee565b6001600160a01b0381166110f95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b5565b61110281611a48565b50565b6001600160a01b0383166111675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b5565b6001600160a01b0382166111c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006112358484610f51565b90506000198114610ee457818110156112905760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109b5565b610ee48484848403611105565b6001600160a01b0383166112c35760405162461bcd60e51b81526004016109b5906122f2565b6001600160a01b0382166112e95760405162461bcd60e51b81526004016109b590612337565b6001600160a01b03831660009081526009602052604090205460ff16156113475760405162461bcd60e51b815260206004820152601260248201527114d95b99195c88189b1858dadb1a5cdd195960721b60448201526064016109b5565b6001600160a01b03821660009081526009602052604090205460ff16156113a75760405162461bcd60e51b8152602060048201526014602482015273149958d95a5d995c88189b1858dadb1a5cdd195960621b60448201526064016109b5565b806000036113c0576113bb83836000611aee565b505050565b6005546001600160a01b038481169116148015906113ec57506005546001600160a01b03838116911614155b801561140057506001600160a01b03821615155b801561141757506001600160a01b03821661dead14155b801561142c5750600e5462010000900460ff16155b1561172557600e5460ff166114bf576001600160a01b03831660009081526006602052604090205460ff168061147a57506001600160a01b03821660009081526006602052604090205460ff165b6114bf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b5565b6001600160a01b03831660009081526008602052604090205460ff16801561150057506001600160a01b03821660009081526007602052604090205460ff16155b156115e457600c548111156115755760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016109b5565b600d546001600160a01b03831660009081526020819052604090205461159b9083612272565b11156115df5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b5565b611725565b6001600160a01b03821660009081526008602052604090205460ff16801561162557506001600160a01b03831660009081526007602052604090205460ff16155b1561169b57600c548111156115df5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016109b5565b6001600160a01b03821660009081526007602052604090205460ff1661172557600d546001600160a01b0383166000908152602081905260409020546116e19083612272565b11156117255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b5565b30600090815260208190526040902054600b54811080159081906117505750600e54610100900460ff165b80156117655750600e5462010000900460ff16155b801561178a57506001600160a01b03851660009081526008602052604090205460ff16155b80156117af57506001600160a01b03851660009081526006602052604090205460ff16155b80156117d457506001600160a01b03841660009081526006602052604090205460ff16155b156117ff57600e805462ff00001916620100001790556117f2611c18565b600e805462ff0000191690555b600e546001600160a01b03861660009081526006602052604090205460ff6201000090920482161591168061184c57506001600160a01b03851660009081526006602052604090205460ff165b15611855575060005b600081156119da576001600160a01b03861660009081526008602052604090205460ff16801561188757506000601254115b1561190f5760646012548661189c919061237a565b6118a69190612391565b9050601254601454826118b9919061237a565b6118c39190612391565b601660008282546118d49190612272565b90915550506012546013546118e9908361237a565b6118f39190612391565b601560008282546119049190612272565b909155506119bc9050565b6001600160a01b03871660009081526008602052604090205460ff16801561193957506000600f54115b156119bc576064600f548661194e919061237a565b6119589190612391565b9050600f546011548261196b919061237a565b6119759190612391565b601660008282546119869190612272565b9091555050600f5460105461199b908361237a565b6119a59190612391565b601560008282546119b69190612272565b90915550505b80156119cd576119cd873083611aee565b6119d781866123b3565b94505b6119e5878787611aee565b50505050505050565b6005546001600160a01b03163314610a1a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260086020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611b145760405162461bcd60e51b81526004016109b5906122f2565b6001600160a01b038216611b3a5760405162461bcd60e51b81526004016109b590612337565b6001600160a01b03831660009081526020819052604090205481811015611bb25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ee4565b3060009081526020819052604081205490506000601554601654611c3c9190612272565b90506000821580611c4b575081155b15611c5557505050565b600b54611c6390601461237a565b831115611c7b57600b54611c7890601461237a565b92505b600060028360165486611c8e919061237a565b611c989190612391565b611ca29190612391565b90506000611cb082866123b3565b905047611cbc82611dda565b6000611cc882476123b3565b905060006002601654611cdb9190612391565b611ce590886123b3565b601554611cf2908461237a565b611cfc9190612391565b90506000611d0a82846123b3565b9050600086118015611d1c5750600081115b15611d6f57611d2b8682611f9a565b601654604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b600060168190556015819055600a546040516001600160a01b039091169147919081818185875af1925050503d8060008114611dc7576040519150601f19603f3d011682016040523d82523d6000602084013e611dcc565b606091505b505050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e0f57611e0f6123c6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb191906123dc565b81600181518110611ec457611ec46123c6565b60200260200101906001600160a01b031690816001600160a01b031681525050611f0f307f000000000000000000000000000000000000000000000000000000000000000084611105565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611f649085906000908690309042906004016123f9565b600060405180830381600087803b158015611f7e57600080fd5b505af1158015611f92573d6000803e3d6000fd5b505050505050565b611fc5307f000000000000000000000000000000000000000000000000000000000000000084611105565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71982308560008061200c6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612099919061246a565b5050505050565b600060208083528351808285015260005b818110156120cd578581018301518582016040015282016120b1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461110257600080fd5b6000806040838503121561211657600080fd5b8235612121816120ee565b946020939093013593505050565b60006020828403121561214157600080fd5b813561214c816120ee565b9392505050565b60008060006060848603121561216857600080fd5b8335612173816120ee565b92506020840135612183816120ee565b929592945050506040919091013590565b6000602082840312156121a657600080fd5b5035919050565b801515811461110257600080fd5b600080604083850312156121ce57600080fd5b82356121d9816120ee565b915060208301356121e9816121ad565b809150509250929050565b6000806040838503121561220757600080fd5b8235612212816120ee565b915060208301356121e9816120ee565b600181811c9082168061223657607f821691505b60208210810361225657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561093f5761093f61225c565b6020808252601f908201527f546f6b656e3a2063616c6c6572206973206e6f74207468652048656c70657200604082015260600190565b6000602082840312156122ce57600080fd5b5051919050565b6000602082840312156122e757600080fd5b815161214c816121ad565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761093f5761093f61225c565b6000826123ae57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561093f5761093f61225c565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156123ee57600080fd5b815161214c816120ee565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124495784516001600160a01b031683529383019391830191600101612424565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561247f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220baa3fa24868db30f6a979f9570e1b07dc5f954b4a4c833d1ee0f201f9e80528164736f6c63430008130033