Overview ERC20
PRICE
$0.04498 @ 0.00000001507 ETH (-2.14%)

ON-CHAIN MARKET CAP $49,800.00

Total Supply:
1,000,000,000.00 BABYDEGEN

Holders:
30,865
Profile Summary
Blockchain:
Base (8453)


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

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 10 Dec 2024 11:08:07 GMT
SMOON.sol
contracts
SMOON.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name_",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol_",
        "type": "string"
      },
      {
        "internalType": "uint8",
        "name": "decimals_",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "totalSupply_",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "rewardToken_",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "mainRouter_",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "dividendTracker_",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "minimumTokenBalanceForDividends_",
        "type": "uint256"
      }
    ],
    "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": "uint256",
        "name": "newValue",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "oldValue",
        "type": "uint256"
      }
    ],
    "name": "GasForProcessingUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "mainRouter",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "mainPair",
        "type": "address"
      }
    ],
    "name": "MainRouterUpdated",
    "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": false,
        "internalType": "uint256",
        "name": "iterations",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "claims",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "lastProcessedIndex",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "bool",
        "name": "automatic",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "gas",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "processor",
        "type": "address"
      }
    ],
    "name": "ProcessedDividendTracker",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokensSwapped",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "SendDividends",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "pair",
        "type": "address"
      },
      {
        "indexed": false,
        "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": "tokensIntoLiqudity",
        "type": "uint256"
      }
    ],
    "name": "SwapAndLiquify",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "TradingEnabled",
    "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": "UpdateDividendTracker",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newSwapTokensAtAmount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "oldSwapTokensAtAmount",
        "type": "uint256"
      }
    ],
    "name": "UpdateSwapTokensAtAmount",
    "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": "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": [],
    "name": "claim",
    "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": "account",
        "type": "address"
      }
    ],
    "name": "dividendTokenBalanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dividendTracker",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableTrading",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "excludeFromDividends",
    "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": [],
    "name": "gasForProcessing",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "getAccountDividendsInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "int256",
        "name": "",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "",
        "type": "int256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "getAccountDividendsInfoAtIndex",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "int256",
        "name": "",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "",
        "type": "int256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getClaimWait",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLastProcessedIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMinimumTokenBalanceForDividends",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getNumberOfDividendTokenHolders",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getTotalDividendsDistributed",
    "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": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isExcludedFromDividends",
    "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": "mainPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mainRouter",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "gas",
        "type": "uint256"
      }
    ],
    "name": "processDividendTracker",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rewardToken",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setSwapTokensAtAmount",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tradingEnabledTimeStamp",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "claimWait",
        "type": "uint256"
      }
    ],
    "name": "updateClaimWait",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newAddress",
        "type": "address"
      }
    ],
    "name": "updateDividendTracker",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newValue",
        "type": "uint256"
      }
    ],
    "name": "updateGasForProcessing",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_mainRouter",
        "type": "address"
      }
    ],
    "name": "updateMainPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "updateMinimumTokenBalanceForDividends",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdrawETH",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "withdrawToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "withdrawableDividendOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
608060405234801561000f575f80fd5b50604051613bc7380380613bc783398101604081905261002e91610ac4565b8787600361003c8382610c09565b5060046100498282610c09565b50505061006261005d6105df60201b60201c565b6105e3565b6005805460ff60a01b1916600160a01b60ff891602179055600980546001600160a01b0319166001600160a01b0386161790556100a161271086610cc3565b600a819055604080519182525f60208301527f1d3afd1a2942d06995fdb024306050a7b24ad00572be70ce8b1bea325780d28b910160405180910390a1620493e0600c8190556040515f91907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db7908390a361011b82610634565b600880546001600160a01b0319166001600160a01b039290921691821790556040515f91907f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a8908390a360085460095460405163cd6dc68760e01b81526001600160a01b0391821660048201526024810184905291169063cd6dc687906044015f604051808303815f87803b1580156101b2575f80fd5b505af11580156101c4573d5f803e3d5ffd5b5050600680546001600160a01b0319166001600160a01b0387169081179091556101f392503091505f196106d7565b60065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610243573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102679190610ce2565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190610ce2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610334573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103589190610ce2565b600780546001600160a01b0319166001600160a01b039290921691821790556103829060016107fa565b600654600754604080516001600160a01b0393841681529290911660208301527f751e970af297d4e5267dabcea7b369ad737038498379b46448d190d9e261f3c5910160405180910390a160085460405163031e79db60e41b81526001600160a01b0390911660048201819052906331e79db0906024015f604051808303815f87803b158015610410575f80fd5b505af1158015610422573d5f803e3d5ffd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db091506024015f604051808303815f87803b158015610468575f80fd5b505af115801561047a573d5f803e3d5ffd5b505060085460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db091506024015f604051808303815f87803b1580156104c2575f80fd5b505af11580156104d4573d5f803e3d5ffd5b505060085460065460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db091506024015f604051808303815f87803b15801561051e575f80fd5b505af1158015610530573d5f803e3d5ffd5b505050506001600d5f61054761094060201b60201c565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600d909252812080548316600190811790915561dead9091527fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a80549092161790556105d26105cc6005546001600160a01b031690565b8661094f565b5050505050505050610d46565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c175f526e5af43d82803e903d91602b57fd5bf38260781b17602052603760095ff090506001600160a01b0381166106d25760405162461bcd60e51b815260206004820152601660248201527f455243313136373a20637265617465206661696c65640000000000000000000060448201526064015b60405180910390fd5b919050565b6001600160a01b0383166107395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106c9565b6001600160a01b03821661079a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106c9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382165f908152600e60205260409020805460ff191682158015919091179091558190610897575060085460405163c705c56960e01b81526001600160a01b0384811660048301529091169063c705c56990602401602060405180830381865afa158015610871573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108959190610d02565b155b156108f75760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db0906024015f604051808303815f87803b1580156108e0575f80fd5b505af11580156108f2573d5f803e3d5ffd5b505050505b816001600160a01b03167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab82604051610934911515815260200190565b60405180910390a25050565b6005546001600160a01b031690565b6001600160a01b0382166109a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106c9565b8060025f8282546109b69190610d21565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a34575f80fd5b81516001600160401b03811115610a4d57610a4d610a11565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610a7b57610a7b610a11565b604052818152838201602001851015610a92575f80fd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b03811681146106d2575f80fd5b5f805f805f805f80610100898b031215610adc575f80fd5b88516001600160401b03811115610af1575f80fd5b610afd8b828c01610a25565b60208b015190995090506001600160401b03811115610b1a575f80fd5b610b268b828c01610a25565b975050604089015160ff81168114610b3c575f80fd5b60608a01519096509450610b5260808a01610aae565b9350610b6060a08a01610aae565b9250610b6e60c08a01610aae565b60e09990990151979a96995094979396929591945050565b600181811c90821680610b9a57607f821691505b602082108103610bb857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610a0c57805f5260205f20601f840160051c81016020851015610be35750805b601f840160051c820191505b81811015610c02575f8155600101610bef565b5050505050565b81516001600160401b03811115610c2257610c22610a11565b610c3681610c308454610b86565b84610bbe565b6020601f821160018114610c68575f8315610c515750848201515b5f19600385901b1c1916600184901b178455610c02565b5f84815260208120601f198516915b82811015610c975787850151825560209485019460019092019101610c77565b5084821015610cb457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82610cdd57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610cf2575f80fd5b610cfb82610aae565b9392505050565b5f60208284031215610d12575f80fd5b81518015158114610cfb575f80fd5b80820180821115610d4057634e487b7160e01b5f52601160045260245ffd5b92915050565b612e7480610d535f395ff3fe608060405260043610610283575f3560e01c806395d89b4111610155578063c0246668116100be578063e2f4560511610078578063e2f45605146107cd578063e7841ec0146107e2578063e98030c7146107f6578063f27fd25414610815578063f2fde38b14610834578063f7c618c114610853575f80fd5b8063c024666814610728578063c705c56914610747578063cda7dd7b14610766578063cf188ad01461077b578063dd62ed3e1461079a578063e086e5ec146107b9575f80fd5b8063a9059cbb1161010f578063a9059cbb14610625578063ad56c13c14610644578063afa4f3b2146106a8578063b62496f5146106c7578063b95d11be146106f5578063bdd4f29f14610714575f80fd5b806395d89b411461058b5780639a7a23d61461059f5780639c1b8af5146105be578063a26579ad146105d3578063a457c2d7146105e7578063a8b9d24014610606575f80fd5b80634fbee193116101f757806385af30c5116101b157806385af30c5146104de578063871c128d146104fd57806388bdd9be1461051c578063894760691461053b5780638a8c523c1461055a5780638da5cb5b1461056e575f80fd5b80634fbee1931461040d57806364b0f653146104445780636843cd8414610458578063700bb1911461047757806370a0823114610496578063715018a6146104ca575f80fd5b80632c1f5216116102485780632c1f52161461034557806330bb4cff1461037c578063313ce5671461039057806331e79db0146103bb57806339509351146103da5780634e71d92d146103f9575f80fd5b806306fdde031461028e578063095ea7b3146102b85780630dcb2e89146102e757806318160ddd1461030857806323b872dd14610326575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a2610872565b6040516102af91906129ff565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004612a48565b610902565b60405190151581526020016102af565b3480156102f2575f80fd5b50610306610301366004612a72565b61091b565b005b348015610313575f80fd5b506002545b6040519081526020016102af565b348015610331575f80fd5b506102d7610340366004612a89565b610980565b348015610350575f80fd5b50600854610364906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b348015610387575f80fd5b506103186109a3565b34801561039b575f80fd5b50600554600160a01b900460ff1660405160ff90911681526020016102af565b3480156103c6575f80fd5b506103066103d5366004612ac7565b610a13565b3480156103e5575f80fd5b506102d76103f4366004612a48565b610a4d565b348015610404575f80fd5b50610306610a6e565b348015610418575f80fd5b506102d7610427366004612ac7565b6001600160a01b03165f908152600d602052604090205460ff1690565b34801561044f575f80fd5b50610318610ae2565b348015610463575f80fd5b50610318610472366004612ac7565b610b29565b348015610482575f80fd5b50610306610491366004612a72565b610b96565b3480156104a1575f80fd5b506103186104b0366004612ac7565b6001600160a01b03165f9081526020819052604090205490565b3480156104d5575f80fd5b50610306610c63565b3480156104e9575f80fd5b50600754610364906001600160a01b031681565b348015610508575f80fd5b50610306610517366004612a72565b610c76565b348015610527575f80fd5b50610306610536366004612ac7565b610d9a565b348015610546575f80fd5b50610306610555366004612ac7565b6110cf565b348015610565575f80fd5b506103066111a9565b348015610579575f80fd5b506005546001600160a01b0316610364565b348015610596575f80fd5b506102a261121a565b3480156105aa575f80fd5b506103066105b9366004612af6565b611229565b3480156105c9575f80fd5b50610318600c5481565b3480156105de575f80fd5b506103186112c3565b3480156105f2575f80fd5b506102d7610601366004612a48565b61130a565b348015610611575f80fd5b50610318610620366004612ac7565b611384565b348015610630575f80fd5b506102d761063f366004612a48565b6113b6565b34801561064f575f80fd5b5061066361065e366004612ac7565b6113c3565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016102af565b3480156106b3575f80fd5b506103066106c2366004612a72565b61145b565b3480156106d2575f80fd5b506102d76106e1366004612ac7565b600e6020525f908152604090205460ff1681565b348015610700575f80fd5b5061030661070f366004612ac7565b6114ed565b34801561071f575f80fd5b506103186117d8565b348015610733575f80fd5b50610306610742366004612af6565b61181f565b348015610752575f80fd5b506102d7610761366004612ac7565b6118df565b348015610771575f80fd5b50610318600b5481565b348015610786575f80fd5b50600654610364906001600160a01b031681565b3480156107a5575f80fd5b506103186107b4366004612b2d565b61194b565b3480156107c4575f80fd5b50610306611975565b3480156107d8575f80fd5b50610318600a5481565b3480156107ed575f80fd5b50610318611a24565b348015610801575f80fd5b50610306610810366004612a72565b611a6b565b348015610820575f80fd5b5061066361082f366004612a72565b611aa4565b34801561083f575f80fd5b5061030661084e366004612ac7565b611ae5565b34801561085e575f80fd5b50600954610364906001600160a01b031681565b60606003805461088190612b59565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90612b59565b80156108f85780601f106108cf576101008083540402835291602001916108f8565b820191905f5260205f20905b8154815290600101906020018083116108db57829003601f168201915b5050505050905090565b5f3361090f818585611b5b565b60019150505b92915050565b610923611c7e565b600854604051630dcb2e8960e01b8152600481018390526001600160a01b0390911690630dcb2e89906024015b5f604051808303815f87803b158015610967575f80fd5b505af1158015610979573d5f803e3d5ffd5b5050505050565b5f3361098d858285611cd8565b610998858585611d50565b506001949350505050565b600854604080516342d359d760e11b815290515f926001600160a01b0316916385a6b3ae9160048083019260209291908290030181865afa1580156109ea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0e9190612b91565b905090565b610a1b611c7e565b60085460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db090602401610950565b5f3361090f818585610a5f838361194b565b610a699190612bbc565b611b5b565b60085460405163bc4c4b3760e01b81523360048201525f60248201526001600160a01b039091169063bc4c4b37906044016020604051808303815f875af1158015610abb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190612bcf565b50565b600854604080516304ddf6ef60e11b815290515f926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa1580156109ea573d5f803e3d5ffd5b6008546040516370a0823160e01b81526001600160a01b0383811660048301525f9216906370a08231906024015b602060405180830381865afa158015610b72573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190612b91565b6008546040516001624d3b8760e01b03198152600481018390525f91829182916001600160a01b03169063ffb2c479906024016060604051808303815f875af1158015610be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c099190612bea565b604080518481526020810184905290810182905260608101889052929550909350915033905f907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a350505050565b610c6b611c7e565b610c745f6121b7565b565b610c7e611c7e565b62030d408110158015610c9457506207a1208111155b610d025760405162461bcd60e51b815260206004820152603460248201527f676173466f7250726f63657373696e67206d757374206265206265747765656e6044820152730203230302c30303020616e64203530302c3030360641b60648201526084015b60405180910390fd5b600c548103610d685760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f742075706461746520676173466f7250726f63657373696e67207460448201526b6f2073616d652076616c756560a01b6064820152608401610cf9565b600c5460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db7905f90a3600c55565b610da2611c7e565b6008546001600160a01b0390811690821603610e165760405162461bcd60e51b815260206004820152602d60248201527f546865206469766964656e6420747261636b657220616c72656164792068617360448201526c2074686174206164647265737360981b6064820152608401610cf9565b5f819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e849190612c15565b6001600160a01b031614610f145760405162461bcd60e51b815260206004820152604b60248201527f546865206e6577206469766964656e6420747261636b6572206d75737420626560448201527f206f776e656420627920746865204449564944454e4544544f4b454e20746f6b60648201526a195b8818dbdb9d1c9858dd60aa1b608482015260a401610cf9565b60405163031e79db60e41b81526001600160a01b03821660048201819052906331e79db0906024015f604051808303815f87803b158015610f53575f80fd5b505af1158015610f65573d5f803e3d5ffd5b505060405163031e79db60e41b81523060048201526001600160a01b03841692506331e79db091506024015f604051808303815f87803b158015610fa7575f80fd5b505af1158015610fb9573d5f803e3d5ffd5b505060065460405163031e79db60e41b81526001600160a01b03918216600482015290841692506331e79db091506024015f604051808303815f87803b158015611001575f80fd5b505af1158015611013573d5f803e3d5ffd5b505060075460405163031e79db60e41b81526001600160a01b03918216600482015290841692506331e79db091506024015f604051808303815f87803b15801561105b575f80fd5b505af115801561106d573d5f803e3d5ffd5b50506008546040516001600160a01b03918216935090851691507f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a8905f90a3600880546001600160a01b0319166001600160a01b039290921691909117905550565b6110d7611c7e565b6001600160a01b038116300361111d5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610cf9565b610adf6111326005546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611174573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111989190612b91565b6001600160a01b0384169190612208565b6111b1611c7e565b600b54156111ec5760405162461bcd60e51b8152602060048201526008602482015267456e61626c65642160c01b6044820152606401610cf9565b42600b556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c7905f90a1565b60606004805461088190612b59565b611231611c7e565b6007546001600160a01b03908116908316036112b55760405162461bcd60e51b815260206004820152603e60248201527f546865206d61696e20706169722063616e6e6f742062652072656d6f7665642060448201527f66726f6d206175746f6d617465644d61726b65744d616b6572506169727300006064820152608401610cf9565b6112bf828261225f565b5050565b60085460408051631bc9e27b60e21b815290515f926001600160a01b031691636f2789ec9160048083019260209291908290030181865afa1580156109ea573d5f803e3d5ffd5b5f3381611317828661194b565b9050838110156113775760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610cf9565b6109988286868403611b5b565b6008546040516302a2e74960e61b81526001600160a01b0383811660048301525f92169063a8b9d24090602401610b57565b5f3361090f818585611d50565b60085460405163fbcbc0f160e01b81526001600160a01b0383811660048301525f92839283928392839283928392839291169063fbcbc0f1906024015b61010060405180830381865afa15801561141c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114409190612c30565b97509750975097509750975097509750919395975091939597565b611463611c7e565b5f81116114ab5760405162461bcd60e51b8152602060048201526016602482015275073776170546f6b656e734174416d6f756e74203e20360541b6044820152606401610cf9565b600a546040805183815260208101929092527f1d3afd1a2942d06995fdb024306050a7b24ad00572be70ce8b1bea325780d28b910160405180910390a1600a55565b6114f5611c7e565b6006546001600160a01b038281169116146115fd5761151630825f19611b5b565b60085460405163c705c56960e01b81526001600160a01b0383811660048301529091169063c705c56990602401602060405180830381865afa15801561155e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115829190612bcf565b6115e15760085460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db0906024015f604051808303815f87803b1580156115ca575f80fd5b505af11580156115dc573d5f803e3d5ffd5b505050505b600680546001600160a01b0319166001600160a01b0383161790555b60065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116719190612c15565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f49190612c15565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561173e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117629190612c15565b600780546001600160a01b0319166001600160a01b039283169081179091556006546040805191909316815260208101919091527f751e970af297d4e5267dabcea7b369ad737038498379b46448d190d9e261f3c5910160405180910390a1600754610adf906001600160a01b0316600161225f565b60085460408051632f842d8560e21b815290515f926001600160a01b03169163be10b6149160048083019260209291908290030181865afa1580156109ea573d5f803e3d5ffd5b611827611c7e565b6001600160a01b0382165f908152600d602052604090205481151560ff9091161515036118805760405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b6044820152606401610cf9565b6001600160a01b0382165f818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b60085460405163c705c56960e01b81526001600160a01b0383811660048301525f92169063c705c56990602401602060405180830381865afa158015611927573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190612bcf565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61197d611c7e565b5f6119906005546001600160a01b031690565b6001600160a01b0316476040515f6040518083038185875af1925050503d805f81146119d7576040519150601f19603f3d011682016040523d82523d5f602084013e6119dc565b606091505b5050905080610adf5760405162461bcd60e51b815260206004820152601460248201527311985a5b1959081a5b881dda5d1a191c985dd85b60621b6044820152606401610cf9565b6008546040805163039e107b60e61b815290515f926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa1580156109ea573d5f803e3d5ffd5b611a73611c7e565b60085460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c790602401610950565b600854604051635183d6fd60e01b8152600481018390525f9182918291829182918291829182916001600160a01b0390911690635183d6fd90602401611400565b611aed611c7e565b6001600160a01b038116611b525760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cf9565b610adf816121b7565b6001600160a01b038316611bbd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610cf9565b6001600160a01b038216611c1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610cf9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610c745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf9565b5f611ce3848461194b565b90505f198114611d4a5781811015611d3d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cf9565b611d4a8484848403611b5b565b50505050565b6001600160a01b038316611d765760405162461bcd60e51b8152600401610cf990612cb8565b6001600160a01b038216611d9c5760405162461bcd60e51b8152600401610cf990612cfd565b5f8111611deb5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e73666572207a65726f20616d6f756e7400000000006044820152606401610cf9565b305f90815260208190526040902054600a5481108015908190611e185750600754600160a01b900460ff16155b8015611e3b57506001600160a01b0384165f908152600e602052604090205460ff165b8015611e5557506005546001600160a01b03868116911614155b8015611e6f57506005546001600160a01b03858116911614155b15611e9e576007805460ff60a01b1916600160a01b179055611e9082612399565b6007805460ff60a01b191690555b6007546001600160a01b0386165f908152600d602052604090205460ff600160a01b909204821615911680611eea57506001600160a01b0385165f908152600d602052604090205460ff165b15611ef257505f5b5f8115611fc457600b545f03611f3d5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610cf9565b6001600160a01b0386165f908152600e602052604090205460ff1680611f7a57506001600160a01b0387165f908152600e602052604090205460ff165b15611fa757620f4240611f8b6124c3565b611f9a9062ffffff1687612d40565b611fa49190612d57565b90505b611fb18186612d76565b94508015611fc457611fc4873083612514565b611fcf878787612514565b6008546001600160a01b031663e30443bc88611fff816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015612042575f80fd5b505af1925050508015612053575060015b506008546001600160a01b031663e30443bc87612084816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b1580156120c7575f80fd5b505af19250505080156120d8575060015b50600754600160a01b900460ff166121ae57600c546008546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024016060604051808303815f875af1925050508015612156575060408051601f3d908101601f1916820190925261215391810190612bea565b60015b156121ac5760408051848152602081018490529081018290526060810185905233906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a35050505b505b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261225a90849061263c565b505050565b6001600160a01b0382165f908152600e60205260409020805460ff1916821580159190911790915581906122fc575060085460405163c705c56960e01b81526001600160a01b0384811660048301529091169063c705c56990602401602060405180830381865afa1580156122d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122fa9190612bcf565b155b1561235c5760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db0906024015f604051808303815f87803b158015612345575f80fd5b505af1158015612357573d5f803e3d5ffd5b505050505b816001600160a01b03167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab826040516118d3911515815260200190565b6123a28161270f565b6009546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156123e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240c9190612b91565b60085460095491925061242c916001600160a01b03908116911683612208565b60085460405163ba72a95560e01b8152600481018390526001600160a01b039091169063ba72a955906024015f604051808303815f87803b15801561246f575f80fd5b505af1158015612481573d5f803e3d5ffd5b505060408051858152602081018590527f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc3935001905060405180910390a15050565b5f80603c600b54426124d59190612d76565b6124e19061c350612d40565b6124eb9190612d57565b905080620493e010156125015761c35091505090565b61250e8162055730612d89565b91505090565b6001600160a01b03831661253a5760405162461bcd60e51b8152600401610cf990612cb8565b6001600160a01b0382166125605760405162461bcd60e51b8152600401610cf990612cfd565b6001600160a01b0383165f90815260208190526040902054818110156125d75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610cf9565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611d4a565b5f612690826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128799092919063ffffffff16565b905080515f14806126b05750808060200190518101906126b09190612bcf565b61225a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610cf9565b604080516003808252608082019092525f916020820160608036833701905050905030815f8151811061274457612744612da4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561279b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bf9190612c15565b816001815181106127d2576127d2612da4565b6001600160a01b03928316602091820292909201015260095482519116908290600290811061280357612803612da4565b6001600160a01b039283166020918202929092010152600654604051635c11d79560e01b8152911690635c11d795906128489085905f90869030904290600401612db8565b5f604051808303815f87803b15801561285f575f80fd5b505af1158015612871573d5f803e3d5ffd5b505050505050565b606061288784845f8561288f565b949350505050565b6060824710156128f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610cf9565b5f80866001600160a01b0316858760405161290b9190612e28565b5f6040518083038185875af1925050503d805f8114612945576040519150601f19603f3d011682016040523d82523d5f602084013e61294a565b606091505b509150915061295b87838387612966565b979650505050505050565b606083156129d45782515f036129cd576001600160a01b0385163b6129cd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cf9565b5081612887565b61288783838151156129e95781518083602001fd5b8060405162461bcd60e51b8152600401610cf991905b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610adf575f80fd5b5f8060408385031215612a59575f80fd5b8235612a6481612a34565b946020939093013593505050565b5f60208284031215612a82575f80fd5b5035919050565b5f805f60608486031215612a9b575f80fd5b8335612aa681612a34565b92506020840135612ab681612a34565b929592945050506040919091013590565b5f60208284031215612ad7575f80fd5b8135612ae281612a34565b9392505050565b8015158114610adf575f80fd5b5f8060408385031215612b07575f80fd5b8235612b1281612a34565b91506020830135612b2281612ae9565b809150509250929050565b5f8060408385031215612b3e575f80fd5b8235612b4981612a34565b91506020830135612b2281612a34565b600181811c90821680612b6d57607f821691505b602082108103612b8b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612ba1575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561091557610915612ba8565b5f60208284031215612bdf575f80fd5b8151612ae281612ae9565b5f805f60608486031215612bfc575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215612c25575f80fd5b8151612ae281612a34565b5f805f805f805f80610100898b031215612c48575f80fd5b8851612c5381612a34565b809850505f60208a01519050809750505f60408a01519050809650505f60608a01519050809550505f60808a01519050809450505f60a08a01519050809350505f60c08a01519050809250505f60e08a01519050809150509295985092959890939650565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761091557610915612ba8565b5f82612d7157634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561091557610915612ba8565b62ffffff828116828216039081111561091557610915612ba8565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015612e085783516001600160a01b0316835260209384019390920191600101612de1565b50506001600160a01b039590951660608401525050608001529392505050565b5f82518060208501845e5f92019182525091905056fea2646970667358221220946b1b1bb346703b5f4c665524bb71ed11185ef5b7c281d69c02d85e09a115d564736f6c634300081a00330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24000000000000000000000000bba8253ae33fc8eb0442e2c580c171a90a12104a00000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000a4241425920444547454e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942414259444547454e0000000000000000000000000000000000000000000000