Overview ERC20
PRICE
$0.00

ON-CHAIN MARKET CAP n/a

Total Supply:
10,838,844,217,311,414.00 $CAESAR

Holders:
2,702
Profile Summary
Blockchain:
C-Chain (43114)


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

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 9999 runs

Created At:
Tue, 15 Feb 2022 03:12:46 GMT
Caesar.sol
Caesar.sol
Caesar.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_router",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_autoLiquidityReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_treasuryReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_riskFreeValueReceiver",
        "type": "address"
      }
    ],
    "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": "uint256",
        "name": "epoch",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "totalSupply",
        "type": "uint256"
      }
    ],
    "name": "LogRebase",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "MinterAdded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "MinterRemoved",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipRenounced",
    "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"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "addMinter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "autoLiquidityReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "autoRebase",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "blacklist",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "checkFeeExempt",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "checkSwapThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amountPercentage",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "addr",
        "type": "address"
      }
    ],
    "name": "clearStuckBalance",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "enableTransfer",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "feeDenominator",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCirculatingSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "accuracy",
        "type": "uint256"
      }
    ],
    "name": "getLiquidityBacking",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": [],
    "name": "initialDistributionFinished",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isMinter",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isNotInSwap",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "target",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "accuracy",
        "type": "uint256"
      }
    ],
    "name": "isOverLiquified",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isOwner",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "liquidityFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "manualSync",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nextRebase",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pairContract",
    "outputs": [
      {
        "internalType": "contract InterfaceLP",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "epoch",
        "type": "uint256"
      },
      {
        "internalType": "int256",
        "name": "supplyDelta",
        "type": "int256"
      }
    ],
    "name": "rebase",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rebaseFrequency",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "removeMinter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceMinter",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenAddress",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokens",
        "type": "uint256"
      }
    ],
    "name": "rescueToken",
    "outputs": [
      {
        "internalType": "bool",
        "name": "success",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rewardYield",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rewardYieldDenominator",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "riskFreeValueFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "riskFreeValueReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "router",
    "outputs": [
      {
        "internalType": "contract IJoeRouter",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      }
    ],
    "name": "scaledBalanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_autoRebase",
        "type": "bool"
      }
    ],
    "name": "setAutoRebase",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      }
    ],
    "name": "setFeeExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_autoLiquidityReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_treasuryReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_riskFreeValueReceiver",
        "type": "address"
      }
    ],
    "name": "setFeeReceivers",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_liquidityFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_riskFreeValueFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_treasuryFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_sellFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_feeDenominator",
        "type": "uint256"
      }
    ],
    "name": "setFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setInitialDistributionFinished",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "setLP",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_nextRebase",
        "type": "uint256"
      }
    ],
    "name": "setNextRebase",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_rebaseFrequency",
        "type": "uint256"
      }
    ],
    "name": "setRebaseFrequency",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_rewardYield",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_rewardYieldDenominator",
        "type": "uint256"
      }
    ],
    "name": "setRewardYield",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_num",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_denom",
        "type": "uint256"
      }
    ],
    "name": "setSwapBackSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "target",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "accuracy",
        "type": "uint256"
      }
    ],
    "name": "setTargetLiquidity",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "shouldRebase",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_receiver",
        "type": "address"
      }
    ],
    "name": "swipe",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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"
  },
  {
    "inputs": [],
    "name": "treasuryFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "treasuryReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_user",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "_flag",
        "type": "bool"
      }
    ],
    "name": "updateBlacklist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60806040526005600755600360085560056009556005600a55620000516009546200003d600854600754620004c360201b62001dfd1790919060201c565b620004c360201b62001dfd1790919060201c565b600b556064600c819055623feb87600d556402540be400600e55610708600f819055420160105560118054600160ff1990911617610100600160a81b03191662dead00179055601280546001600160a01b0319169055603260165560175560198054600160a01b60ff60a01b199091161790557e068db8bac710cb295e9e1b089a027525460aa64c2f60beb15a6764b6a2339c601a55348015620000f457600080fd5b506040516200371238038062003712833981810160405260808110156200011a57600080fd5b50805160208083015160408085015160609095015181518083018352600681526521b0b2b9b0b960d11b818601908152835180850190945260078452661221a0a2a9a0a960c91b95840195909552805195969395939491939092916012916200018691600091620007d0565b5081516200019c906001906020850190620007d0565b5060028054336101008102610100600160a81b031960ff90951660ff199093169290921793909316179055620001d59250905062000525565b601880546001600160a01b0319166001600160a01b0386811691909117918290556040805163c45a015560e01b81529051929091169163c45a015591600480820192602092909190829003018186803b1580156200023257600080fd5b505afa15801562000247573d6000803e3d6000fd5b505050506040513d60208110156200025e57600080fd5b5051601854604080516339d94ae160e11b815290516001600160a01b039384169363c9c653969316916373b295c2916004808301926020929190829003018186803b158015620002ad57600080fd5b505afa158015620002c2573d6000803e3d6000fd5b505050506040513d6020811015620002d957600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200032957600080fd5b505af11580156200033e573d6000803e3d6000fd5b505050506040513d60208110156200035557600080fd5b5051601980546001600160a01b03199081166001600160a01b03938416178255601380548216878516179055601480548216868516178155601580548316868616179055306000908152601f60209081526040808320601854881684528252808320600019905594546004805491881691909516179093556af8277896582678ac000000601c90815591549094168452601e8252919092206a87b0b4d075b8302fffffff19908190559054620004149262000577811b62001e7117901c565b601d556004805460ff60a01b19169055601480546001600160a01b03908116600090815260066020526040808220805460ff19908116600190811790925530845291909220805490911690911790559054620004719116620005c1565b601454601c5460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a3505050506200087c565b6000828201838110156200051e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620005408160036200063c60201b62001eb31790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006200051e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006c060201b60201c565b6001600160a01b038116620005d557600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b62000648828262000767565b156200069b576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008183620007505760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000714578181015183820152602001620006fa565b50505050905090810190601f168015620007425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200075d57fe5b0495945050505050565b60006001600160a01b038216620007b05760405162461bcd60e51b8152600401808060200182810382526022815260200180620036f06022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000808576000855562000853565b82601f106200082357805160ff191683800117855562000853565b8280016001018555821562000853579182015b828111156200085357825182559160200191906001019062000836565b506200086192915062000865565b5090565b5b8082111562000861576000815560010162000866565b612e64806200088c6000396000f3fe6080604052600436106103fd5760003560e01c80637a43e23f1161020d578063aa271e1a11610128578063d51ed1c8116100bb578063dd62ed3e1161008a578063f2fde38b1161006f578063f2fde38b14610de7578063f887ea4014610e1a578063f9f92be414610e2f57610404565b8063dd62ed3e14610d80578063e15beb8014610dbb57610404565b8063d51ed1c814610cc9578063d5938aac14610cf3578063d7832b1114610d26578063d7c0103214610d3b57610404565b8063cce7db58116100f7578063cce7db5814610c16578063d088935814610c49578063d1fce26414610c81578063d439979014610c9657610404565b8063aa271e1a14610ba4578063bc7e68a314610bd7578063ca33e64c14610bec578063cc32d17614610c0157610404565b806395d89b41116101a05780639ae7372d1161016f5780639ae7372d14610af3578063a457c2d714610b1d578063a8aa1b3114610b56578063a9059cbb14610b6b57610404565b806395d89b4114610a8157806398118cb414610a96578063983b2d5614610aab5780639865027514610ade57610404565b80638da5cb5b116101dc5780638da5cb5b14610a075780638f32d59b14610a1c5780639079f93214610a315780639155e08314610a4657610404565b80637a43e23f146109985780637d4b5017146109c857806383b4ac68146109dd57806389375abf146109f257610404565b80632f34d2821161031857806356a227f2116102ab5780636ddd17131161027a578063715018a61161025f578063715018a61461093b578063749796a514610950578063753d02a11461098357610404565b80636ddd1713146108f357806370a082311461090857610404565b806356a227f21461087b5780635d9280af146108b457806363eab10a146108c95780636d351d1a146108de57610404565b806339509351116102e757806339509351146107ca57806340c10f19146108035780634cd9ddf21461083c5780634d709adf1461086657610404565b80632f34d282146107005780633092afd514610733578063313ce5671461076657806333f3d6281461079157610404565b806318160ddd1161039057806323b872dd1161035f57806323b872dd1461067e5780632b112e49146106c15780632b14ca56146106d65780632be6937d146106eb57610404565b806318160ddd146105f15780631da24f3e146106065780631df4ccfc14610639578063201e79911461064e57610404565b8063095ea7b3116103cc578063095ea7b3146105385780630af08314146105855780631161ae39146105ac578063180b0d7e146105dc57610404565b806301b168271461040957806304a66b481461043b57806306fdde031461047d57806308b1fd8f1461050757610404565b3661040457005b600080fd5b34801561041557600080fd5b506104396004803603604081101561042c57600080fd5b5080359060200135610e62565b005b34801561044757600080fd5b50610439600480360360a081101561045e57600080fd5b5080359060208101359060408101359060608101359060800135610e7e565b34801561048957600080fd5b50610492610ed7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104cc5781810151838201526020016104b4565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c610f6d565b604080516001600160a01b039092168252519081900360200190f35b34801561054457600080fd5b506105716004803603604081101561055b57600080fd5b506001600160a01b038135169060200135610f7c565b604080519115158252519081900360200190f35b34801561059157600080fd5b5061059a611036565b60408051918252519081900360200190f35b3480156105b857600080fd5b50610571600480360360408110156105cf57600080fd5b508035906020013561103c565b3480156105e857600080fd5b5061059a611050565b3480156105fd57600080fd5b5061059a611056565b34801561061257600080fd5b5061059a6004803603602081101561062957600080fd5b50356001600160a01b031661105c565b34801561064557600080fd5b5061059a611077565b34801561065a57600080fd5b506104396004803603604081101561067157600080fd5b508035906020013561107d565b34801561068a57600080fd5b50610571600480360360608110156106a157600080fd5b506001600160a01b03813581169160208101359091169060400135611099565b3480156106cd57600080fd5b5061059a61117a565b3480156106e257600080fd5b5061059a6111f4565b3480156106f757600080fd5b506104396111fa565b34801561070c57600080fd5b506104396004803603602081101561072357600080fd5b50356001600160a01b031661124c565b34801561073f57600080fd5b506104396004803603602081101561075657600080fd5b50356001600160a01b031661129e565b34801561077257600080fd5b5061077b6112bb565b6040805160ff9092168252519081900360200190f35b34801561079d57600080fd5b50610571600480360360408110156107b457600080fd5b506001600160a01b0381351690602001356112c4565b3480156107d657600080fd5b50610571600480360360408110156107ed57600080fd5b506001600160a01b038135169060200135611372565b34801561080f57600080fd5b506104396004803603604081101561082657600080fd5b506001600160a01b038135169060200135611457565b34801561084857600080fd5b506104396004803603602081101561085f57600080fd5b50356115cc565b34801561087257600080fd5b5061051c6115e2565b34801561088757600080fd5b506104396004803603604081101561089e57600080fd5b50803590602001356001600160a01b03166115f1565b3480156108c057600080fd5b5061059a611644565b3480156108d557600080fd5b5061057161164a565b3480156108ea57600080fd5b5061059a611653565b3480156108ff57600080fd5b5061057161166c565b34801561091457600080fd5b5061059a6004803603602081101561092b57600080fd5b50356001600160a01b031661168d565b34801561094757600080fd5b506104396116b5565b34801561095c57600080fd5b506104396004803603602081101561097357600080fd5b50356001600160a01b031661172c565b34801561098f57600080fd5b50610439611761565b3480156109a457600080fd5b5061059a600480360360408110156109bb57600080fd5b50803590602001356117c5565b3480156109d457600080fd5b5061051c61185b565b3480156109e957600080fd5b5061057161186a565b3480156109fe57600080fd5b5061059a611874565b348015610a1357600080fd5b5061051c61187a565b348015610a2857600080fd5b5061057161188e565b348015610a3d57600080fd5b506105716118a4565b348015610a5257600080fd5b5061043960048036036040811015610a6957600080fd5b506001600160a01b03813516906020013515156118ad565b348015610a8d57600080fd5b506104926118e8565b348015610aa257600080fd5b5061059a611948565b348015610ab757600080fd5b5061043960048036036020811015610ace57600080fd5b50356001600160a01b031661194e565b348015610aea57600080fd5b50610439611968565b348015610aff57600080fd5b5061043960048036036020811015610b1657600080fd5b5035611973565b348015610b2957600080fd5b5061057160048036036040811015610b4057600080fd5b506001600160a01b038135169060200135611989565b348015610b6257600080fd5b5061051c611ac4565b348015610b7757600080fd5b5061057160048036036040811015610b8e57600080fd5b506001600160a01b038135169060200135611ad3565b348015610bb057600080fd5b5061057160048036036020811015610bc757600080fd5b50356001600160a01b0316611b4e565b348015610be357600080fd5b5061059a611b5b565b348015610bf857600080fd5b5061051c611b61565b348015610c0d57600080fd5b5061059a611b70565b348015610c2257600080fd5b5061043960048036036020811015610c3957600080fd5b50356001600160a01b0316611b76565b348015610c5557600080fd5b5061043960048036036060811015610c6c57600080fd5b50803515159060208101359060400135611bc4565b348015610c8d57600080fd5b50610571611c42565b348015610ca257600080fd5b5061057160048036036020811015610cb957600080fd5b50356001600160a01b0316611c63565b348015610cd557600080fd5b5061059a60048036036020811015610cec57600080fd5b5035611c81565b348015610cff57600080fd5b5061043960048036036020811015610d1657600080fd5b50356001600160a01b0316611cce565b348015610d3257600080fd5b5061059a611d03565b348015610d4757600080fd5b5061043960048036036060811015610d5e57600080fd5b506001600160a01b038135811691602081013582169160409091013516611d09565b348015610d8c57600080fd5b5061059a60048036036040811015610da357600080fd5b506001600160a01b0381358116916020013516611d71565b348015610dc757600080fd5b5061043960048036036020811015610dde57600080fd5b50351515611d9c565b348015610df357600080fd5b5061043960048036036020811015610e0a57600080fd5b50356001600160a01b0316611dc0565b348015610e2657600080fd5b5061051c611dda565b348015610e3b57600080fd5b5061057160048036036020811015610e5257600080fd5b50356001600160a01b0316611de9565b610e6a61188e565b610e7357600080fd5b600d91909155600e55565b610e8661188e565b610e8f57600080fd5b600785905560098490556008839055600a829055610eb784610eb18786611dfd565b90611dfd565b600b55600c81905560048104600b5410610ed057600080fd5b5050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f635780601f10610f3857610100808354040283529160200191610f63565b820191906000526020600020905b815481529060010190602001808311610f4657829003601f168201915b5050505050905090565b6014546001600160a01b031681565b60045460009074010000000000000000000000000000000000000000900460ff1680610fab5750610fab61188e565b80610fc557503360009081526005602052604090205460ff165b610fce57600080fd5b336000818152601f602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b60008261104883611c81565b119392505050565b600c5481565b601c5490565b6001600160a01b03166000908152601e602052604090205490565b600b5481565b61108561188e565b61108e57600080fd5b601691909155601755565b6000826001600160a01b0381166110af57600080fd5b6001600160a01b0385166000908152601f602090815260408083203384529091529020546000191461116357604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0388166000908152601f8252838120338252909152919091205461113e918590611f4e565b6001600160a01b0386166000908152601f602090815260408083203384529091529020555b61116e858585611fff565b50600195945050505050565b601d546012546001600160a01b039081166000908152601e6020526040808220546011546101009004909316825281205490926111ef9290916111e991906111e3907fffffffffffffffffffffffffffffffffffffffffff784f4b2f8a47cfd0000000906121fe565b906121fe565b90611e71565b905090565b600a5481565b61120261188e565b61120b57600080fd5b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b61125461188e565b61125d57600080fd5b600480546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216821790556000526006602052565b6112a661188e565b6112af57600080fd5b6112b881612240565b50565b60025460ff1690565b60006112ce61188e565b6112d757600080fd5b604080517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b505050506040513d602081101561136957600080fd5b50519392505050565b60045460009074010000000000000000000000000000000000000000900460ff16806113a157506113a161188e565b806113bb57503360009081526005602052604090205460ff165b6113c457600080fd5b336000908152601f602090815260408083206001600160a01b03871684529091529020546113f29083611dfd565b336000818152601f602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61146033611b4e565b6114b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612d9b6030913960400191505060405180910390fd5b601c546114c29082611dfd565b601c8190556fffffffffffffffffffffffffffffffff10156114f3576fffffffffffffffffffffffffffffffff601c555b601c54611512906af8277896582678ac0000006000195b061990611e71565b601d5560048054604080517ffff6cae900000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b15801561157157600080fd5b505af1158015611585573d6000803e3d6000fd5b5050506001600160a01b0383166000908152601e60205260409020546115ac915082611dfd565b6001600160a01b039092166000908152601e602052604090209190915550565b6115d461188e565b6115dd57600080fd5b600f55565b6004546001600160a01b031681565b6115f961188e565b61160257600080fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f1935050505015801561163e573d6000803e3d6000fd5b50505050565b60095481565b60105442101590565b60006111ef601d54601a54611e7190919063ffffffff16565b60195474010000000000000000000000000000000000000000900460ff1681565b601d546001600160a01b0382166000908152601e602052604081205490916110309190611e71565b6116bd61188e565b6116c657600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600280547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169055565b61173461188e565b61173d57600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b601960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117b157600080fd5b505af115801561163e573d6000803e3d6000fd5b60006117cf61188e565b6117d857600080fd5b601b5460ff161561184a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f54727920616761696e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6118548383612282565b9392505050565b6015546001600160a01b031681565b601b5460ff161590565b600f5481565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60115460ff1681565b6118b561188e565b6118be57600080fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f635780601f10610f3857610100808354040283529160200191610f63565b60075481565b61195661188e565b61195f57600080fd5b6112b881612400565b61197133612240565b565b61197b61188e565b61198457600080fd5b601055565b60045460009074010000000000000000000000000000000000000000900460ff16806119b857506119b861188e565b806119d257503360009081526005602052604090205460ff165b6119db57600080fd5b336000908152601f602090815260408083206001600160a01b0387168452909152902054808310611a2f57336000908152601f602090815260408083206001600160a01b0388168452909152812055611a5e565b611a3981846121fe565b336000908152601f602090815260408083206001600160a01b03891684529091529020555b336000818152601f602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6019546001600160a01b031681565b6000826001600160a01b038116611ae957600080fd5b60045474010000000000000000000000000000000000000000900460ff1680611b155750611b1561188e565b80611b2f57503360009081526005602052604090205460ff165b611b3857600080fd5b611b43338585611fff565b506001949350505050565b6000611030600383612442565b60105481565b6013546001600160a01b031681565b60085481565b611b7e61188e565b611b8757600080fd5b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611bbf573d6000803e3d6000fd5b505050565b611bcc61188e565b611bd557600080fd5b601980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000085151502179055611c3a82611c34836af8277896582678ac00000060001961150a565b906124c3565b601a55505050565b60045474010000000000000000000000000000000000000000900460ff1681565b6001600160a01b031660009081526006602052604090205460ff1690565b601d546019546001600160a01b03166000908152601e602052604081205490918291611cac91611e71565b9050611854611cb961117a565b6111e9611cc78460026124c3565b86906124c3565b611cd661188e565b611cdf57600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600e5481565b611d1161188e565b611d1a57600080fd5b601380546001600160a01b039485167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155601480549385169382169390931790925560158054919093169116179055565b6001600160a01b039182166000908152601f6020908152604080832093909416825291909152205490565b611da461188e565b611dad57600080fd5b6011805460ff1916911515919091179055565b611dc861188e565b611dd157600080fd5b6112b881612536565b6018546001600160a01b031681565b602080526000908152604090205460ff1681565b60008282018381101561185457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061185483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125c7565b611ebd8282612442565b15611f2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115611ff7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fbc578181015183820152602001611fa4565b50505050905090810190601f168015611fe95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316600090815260208052604081205460ff1615801561203f57506001600160a01b038316600090815260208052604090205460ff16155b6120aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f696e5f626c61636b6c6973740000000000000000000000000000000000000000604482015290519081900360640190fd5b601b5460ff16156120c7576120c0848484612646565b9050611854565b60006120de601d54846124c390919063ffffffff16565b90506120e86126d8565b156120f5576120f561273f565b6001600160a01b0385166000908152601e602052604090205461211890826121fe565b6001600160a01b0386166000908152601e602052604081209190915561213e8686612ba4565b6121485781612153565b612153868684612bf8565b6001600160a01b0386166000908152601e60205260409020549091506121799082611dfd565b6001600160a01b038087166000818152601e6020526040902092909255601d54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121ca908590611e71565b60408051918252519081900360200190a36121e361164a565b80156121f1575060115460ff165b1561116e5761116e612cca565b600061185483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4e565b61224b600382612d19565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000816122ca57601c54604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250601c54611030565b60008212156122ec57601c546122e49060008490036121fe565b601c556122fd565b601c546122f99083611dfd565b601c555b601c546fffffffffffffffffffffffffffffffff101561232c576fffffffffffffffffffffffffffffffff601c555b601c54612347906af8277896582678ac00000060001961150a565b601d5560048054604080517ffff6cae900000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b5050601c5460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250601c5492915050565b61240b600382611eb3565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166124a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e0d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6000826124d257506000611030565b828202828482816124df57fe5b0414611854576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dec6021913960400191505060405180910390fd5b6001600160a01b03811661254957600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b60008183612630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611fbc578181015183820152602001611fa4565b50600083858161263c57fe5b0495945050505050565b60008061265e601d54846124c390919063ffffffff16565b6001600160a01b0386166000908152601e602052604090205490915061268490826121fe565b6001600160a01b038087166000908152601e602052604080822093909355908616815220546126b39082611dfd565b6001600160a01b0385166000908152601e602052604090205550600190509392505050565b6019546000906001600160a01b031633148015906126f95750601b5460ff16155b801561271f575060195474010000000000000000000000000000000000000000900460ff165b80156111ef575050601a54306000908152601e6020526040902054101590565b601b805460ff1916600117905560165460175460009161275e9161103c565b61276a5760075461276d565b60005b601d54306000908152601e60205260408120549293509161278d91611e71565b905060006127af60026111e9600b546111e987876124c390919063ffffffff16565b905060006127bd83836121fe565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106127f157fe5b6001600160a01b03928316602091820292909201810191909152601854604080517f73b295c2000000000000000000000000000000000000000000000000000000008152905191909316926373b295c2926004808301939192829003018186803b15801561285e57600080fd5b505afa158015612872573d6000803e3d6000fd5b505050506040513d602081101561288857600080fd5b505181518290600190811061289957fe5b6001600160a01b039283166020918202929092018101919091526018546040517f762b1562000000000000000000000000000000000000000000000000000000008152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763762b1562978c9795968c9690939260c49091019187820191028083838b5b8381101561294c578181015183820152602001612934565b505050509050019650505050505050600060405180830381600087803b15801561297557600080fd5b505af1158015612989573d6000803e3d6000fd5b5050505060006129a282476121fe90919063ffffffff16565b905060006129bd6129b4896002611e71565b600b54906121fe565b905060006129d260026111e98481878e6124c3565b905060006129ef836111e9600954876124c390919063ffffffff16565b90506000612a0c846111e9600854886124c390919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114612a63576040519150601f19603f3d011682016040523d82523d6000602084013e612a68565b606091505b50506015546040519192506001600160a01b0316906175309085906000818181858888f193505050503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b5060009250508a159050612b8c57601854601354604080517ff91b3f72000000000000000000000000000000000000000000000000000000008152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f91b3f7291879160c48082019260609290919082900301818588803b158015612b5e57600080fd5b505af1158015612b72573d6000803e3d6000fd5b50505050506040513d6060811015612b8957600080fd5b50505b5050601b805460ff1916905550505050505050505050565b6019546000906001600160a01b0384811691161480612bd057506019546001600160a01b038381169116145b8015611854575050506001600160a01b031660009081526006602052604090205460ff161590565b600b54601954600091906001600160a01b0385811691161415612c2657600a54612c23908290611dfd565b90505b600c54600090612c3a906111e986856124c3565b306000908152601e6020526040902054909150612c579082611dfd565b306000818152601e6020526040902091909155601d546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612ca5908590611e71565b60408051918252519081900360200190a3612cc084826121fe565b9695505050505050565b601b5460ff1661197157426000612cdf61117a565b90506000612cfe600e546111e9600d54856124c390919063ffffffff16565b9050612d0a8382612282565b5050600f549190910160105550565b612d238282612442565b612d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dcb6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220edfa6fea5abf2ef56e7464e94d6d1af285e76a92cd64ab56805fcb264d7b60ab64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f206164647265737300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4000000000000000000000000bd06652acd936ac5987d7fc9aad316f9dc5d490f00000000000000000000000034a4892e3004b7a7e577e45075be9d69c9f13b3e0000000000000000000000002ba51637795d6d8126406cb63913d003f9a5e3f6