Overview ERC20
PRICE
$0.051

ON-CHAIN MARKET CAP n/a

Total Supply:
24,222,384,021,269,564.00 NART

Holders:
503
Profile Summary
Blockchain:
C-Chain (43114)


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

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 29 Mar 2022 18:45:05 GMT
DarkForest.sol
DarkForest.sol
Address.sol
AddressUpgradeable.sol
Context.sol
ContextUpgradeable.sol
CountersUpgradeable.sol
DarkForest.sol
DarkForestPresale.sol
ERC165Upgradeable.sol
ERC20.sol
ERC20Burnable.sol
ERC721EnumerableUpgradeable.sol
ERC721Upgradeable.sol
ERC721URIStorageUpgradeable.sol
IERC165Upgradeable.sol
IERC20.sol
IERC20Metadata.sol
IERC20Upgradeable.sol
IERC721EnumerableUpgradeable.sol
IERC721MetadataUpgradeable.sol
IERC721ReceiverUpgradeable.sol
IERC721Upgradeable.sol
IJoeFactory.sol
IJoePair.sol
IJoeRouter.sol
ILiquidityPoolManager.sol
Initializable.sol
IPlanetsManager.sol
IUniverse.sol
IWalletObserver.sol
LiquidityPoolManager.sol
LiquidityPoolManagerImplementationPointer.sol
LiquidityPoolManagerImplementationPointerUpgradeable.sol
Ownable.sol
OwnableUpgradeable.sol
OwnerRecovery.sol
OwnerRecoveryUpgradeable.sol
PausableUpgradeable.sol
PlanetsManagerImplementationPointerUpgradeable.sol
PlanetsManagerUpgradeable.sol
PlanetsManagerUpgradeablePresale.sol
ProxyAdmin.sol
ReentrancyGuardUpgradeable.sol
SafeERC20.sol
SafeMath.sol
StringsUpgradeable.sol
TransparentUpgradeableProxy.sol
UniverseImplementationPointer.sol
UniverseImplementationPointerUpgradeable.sol
WalletObserverImplementationPointer.sol
WalletObserverUpgradeable.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_planetsManager",
        "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": "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": "newSellFee",
        "type": "uint256"
      }
    ],
    "name": "SetSellFee",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newTransferFee",
        "type": "uint256"
      }
    ],
    "name": "SetTransferFee",
    "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": "oldImplementation",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newImplementation",
        "type": "address"
      }
    ],
    "name": "UpdateLiquidityPoolManager",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldImplementation",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newImplementation",
        "type": "address"
      }
    ],
    "name": "UpdateWalletObserver",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "accountBurn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "accountReward",
    "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": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burnFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newImplementation",
        "type": "address"
      }
    ],
    "name": "changeLiquidityPoolManagerImplementation",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newImplementation",
        "type": "address"
      }
    ],
    "name": "changeWalletObserverImplementation",
    "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": [],
    "name": "devWallet",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLiquidityPoolManagerImplementation",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getWalletObserverImplementation",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "liquidityReward",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nftWallet",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "planetsManager",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "recoverLostAVAX",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "recoverLostTokens",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellDevFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellNftFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sellTreasuryFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "devWallet_",
        "type": "address"
      }
    ],
    "name": "setDevWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "nftWallet_",
        "type": "address"
      }
    ],
    "name": "setNftWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sellDevFee_",
        "type": "uint256"
      }
    ],
    "name": "setSellDevFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sellNftFee_",
        "type": "uint256"
      }
    ],
    "name": "setSellNftFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sellTreasuryFee_",
        "type": "uint256"
      }
    ],
    "name": "setSellTreasuryFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "transferFee_",
        "type": "uint256"
      }
    ],
    "name": "setTransferFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "transferFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "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"
  }
]


Contract Creation Code
60a06040526003606a819055606b556004606c55606d80546001600160a01b0319908116731981d1dd51f51f7ffc16dd13d69bffba942dacce17909155606e805490911673e76357c518248bfb079c3a82bd5e12efe8a996451790556002606f553480156200006d57600080fd5b5060405162002139380380620021398339810160408190526200009091620004d0565b604080518082018252600a81526911185c9ad19bdc995cdd60b21b6020808301918252835180850190945260048452631390549560e21b908401528151919291620000de916003916200042a565b508051620000f49060049060208401906200042a565b505050620001116200010b620001be60201b60201c565b620001c2565b6001600160a01b038116620001805760405162461bcd60e51b815260206004820152602a60248201527f496d706c656d656e746174696f6e733a20506c616e6574734d616e61676572206044820152691a5cc81b9bdd081cd95d60b21b60648201526084015b60405180910390fd5b6001600160a01b038116608052620001b7620001a46005546001600160a01b031690565b6b87b595f2383509fe1000000062000214565b506200058a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200026c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000177565b6200027a6000838362000315565b80600260008282546200028e919062000502565b90915550506001600160a01b03821660009081526020819052604081208054839290620002bd90849062000502565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36200031160008383620003cf565b5050565b6200032d838383620003ca60201b62000b631760201c565b6038546001600160a01b031615620003ca576038546040516301bdf3ad60e51b81523360048201526001600160a01b038581166024830152848116604483015260648201849052909116906337be75a0906084015b6020604051808303816000875af1158015620003a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c8919062000529565b505b505050565b620003e7838383620003ca60201b62000b631760201c565b6006546001600160a01b031615620003ca5760065460405163079cc46760e11b81523360048201526001600160a01b0390911690630f3988ce9060240162000382565b82805462000438906200054d565b90600052602060002090601f0160209004810192826200045c5760008555620004a7565b82601f106200047757805160ff1916838001178555620004a7565b82800160010185558215620004a7579182015b82811115620004a75782518255916020019190600101906200048a565b50620004b5929150620004b9565b5090565b5b80821115620004b55760008155600101620004ba565b600060208284031215620004e357600080fd5b81516001600160a01b0381168114620004fb57600080fd5b9392505050565b600082198211156200052457634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200053c57600080fd5b81518015158114620004fb57600080fd5b600181811c908216806200056257607f821691505b602082108114156200058457634e487b7160e01b600052602260045260246000fd5b50919050565b608051611b7e620005bb6000396000818161031f01528181610be701528181610ded0152610ebd0152611b7e6000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638da5cb5b11610130578063acb2ad6f116100b8578063d02dd2b31161007c578063d02dd2b3146104b9578063db0e185b146104cc578063dd62ed3e146104df578063e0ce8fcd14610518578063f2fde38b1461052b57600080fd5b8063acb2ad6f14610468578063ad516abc14610471578063b1e3700814610482578063badc119614610495578063cce222c5146104a857600080fd5b80639b5f7c65116100ff5780639b5f7c651461041e578063a0d82dc514610431578063a457c2d71461043a578063a647c9ff1461044d578063a9059cbb1461045557600080fd5b80638da5cb5b146103df5780638ea5220f146103f05780638f02bb5b1461040357806395d89b411461041657600080fd5b806339509351116101be5780636b2fb124116101825780636b2fb1241461037f57806370a0823114610388578063715018a6146103b15780637368e9b0146103b957806379cc6790146103cc57600080fd5b806339509351146102f45780633cdb439d146103075780633f96d3601461031a57806342966c681461035957806361dec3541461036c57600080fd5b80631f53ac02116102055780631f53ac021461029757806323b872dd146102ac57806326a2351a146102bf5780632d9ecafb146102d2578063313ce567146102e557600080fd5b806306fdde0314610237578063095ea7b31461025557806311d8c4381461027857806318160ddd1461028f575b600080fd5b61023f61053e565b60405161024c9190611802565b60405180910390f35b61026861026336600461186c565b6105d0565b604051901515815260200161024c565b610281606b5481565b60405190815260200161024c565b600254610281565b6102aa6102a5366004611898565b6105e6565b005b6102686102ba3660046118b5565b61063b565b6102aa6102cd3660046118f6565b6106e5565b6102aa6102e0366004611898565b610714565b6040516012815260200161024c565b61026861030236600461186c565b610849565b6102aa610315366004611898565b610885565b6103417f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024c565b6102aa6103673660046118f6565b6109af565b6102aa61037a3660046118b5565b6109bc565b610281606c5481565b610281610396366004611898565b6001600160a01b031660009081526020819052604090205490565b6102aa610a60565b6102aa6103c7366004611898565b610a96565b6102aa6103da36600461186c565b610ae2565b6005546001600160a01b0316610341565b606d54610341906001600160a01b031681565b6102aa6104113660046118f6565b610b68565b61023f610bcd565b6102aa61042c36600461186c565b610bdc565b610281606a5481565b61026861044836600461186c565b610caa565b6102aa610d43565b61026861046336600461186c565b610da6565b610281606f5481565b6038546001600160a01b0316610341565b606e54610341906001600160a01b031681565b6102aa6104a33660046118f6565b610db3565b6006546001600160a01b0316610341565b6102aa6104c73660046118f6565b610de2565b6102aa6104da36600461186c565b610eb2565b6102816104ed36600461190f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102aa6105263660046118f6565b610efb565b6102aa610539366004611898565b610f2a565b60606003805461054d90611948565b80601f016020809104026020016040519081016040528092919081815260200182805461057990611948565b80156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105dd338484610fc2565b50600192915050565b6005546001600160a01b031633146106195760405162461bcd60e51b815260040161061090611983565b60405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006106488484846110e6565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156106cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610610565b6106da8533858403610fc2565b506001949350505050565b6005546001600160a01b0316331461070f5760405162461bcd60e51b815260040161061090611983565b606c55565b6005546001600160a01b0316331461073e5760405162461bcd60e51b815260040161061090611983565b6006546001600160a01b0316813b15158061076057506001600160a01b038216155b6107f85760405162461bcd60e51b815260206004820152605860248201527f4c6971756964697479506f6f6c4d616e616765723a20596f752063616e206f6e60448201527f6c792073657420307830206f72206120636f6e7472616374206164647265737360648201527f2061732061206e657720696d706c656d656e746174696f6e0000000000000000608482015260a401610610565b600680546001600160a01b0319166001600160a01b0384811691821790925560405190918316907fdcde9a93392ce8f6a02392dc08f42df39d1fb10ce386c7e9c6c1faba80b2a42490600090a35050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105dd9185906108809086906119ce565b610fc2565b6005546001600160a01b031633146108af5760405162461bcd60e51b815260040161061090611983565b6038546001600160a01b0316813b1515806108d157506001600160a01b038216155b61095e5760405162461bcd60e51b815260206004820152605260248201527f57616c6c65744f627365727665723a20596f752063616e206f6e6c792073657460448201527f20307830206f72206120636f6e747261637420616464726573732061732061206064820152713732bb9034b6b83632b6b2b73a30ba34b7b760711b608482015260a401610610565b603880546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f60a96be23682f57c084f552a943d1253efdd5ed8df42f3187802488e068ca5e390600090a35050565b6109b93382611333565b50565b6005546001600160a01b031633146109e65760405162461bcd60e51b815260040161061090611983565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015610a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5a91906119e6565b50505050565b6005546001600160a01b03163314610a8a5760405162461bcd60e51b815260040161061090611983565b610a946000611494565b565b6005546001600160a01b03163314610ac05760405162461bcd60e51b815260040161061090611983565b606e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610aee83336104ed565b905081811015610b4c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610610565b610b598333848403610fc2565b610b638383611333565b505050565b6005546001600160a01b03163314610b925760405162461bcd60e51b815260040161061090611983565b606f8190556040518181527f7a85e8a0c3f3d4bafa6ac516212f769dfdb9bbf7c6f058d391aa03b0596212439060200160405180910390a150565b60606004805461054d90611948565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114610c255760405162461bcd60e51b815260040161061090611a08565b6006546001600160a01b0384811691161415610ca05760405162461bcd60e51b815260206004820152603460248201527f417065556e6976657273653a20557365206c697175696469747952657761726460448201527320746f20726577617264206c697175696469747960601b6064820152608401610610565b610b6383836114e6565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610d2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610610565b610d393385858403610fc2565b5060019392505050565b6005546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161061090611983565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109b9573d6000803e3d6000fd5b60006105dd3384846110e6565b6005546001600160a01b03163314610ddd5760405162461bcd60e51b815260040161061090611983565b606b55565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114610e2b5760405162461bcd60e51b815260040161061090611a08565b6006546001600160a01b0316610e985760405162461bcd60e51b815260206004820152602c60248201527f417065556e6976657273653a204c6971756964697479506f6f6c4d616e61676560448201526b1c881a5cc81b9bdd081cd95d60a21b6064820152608401610610565b600654610eae906001600160a01b0316836114e6565b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114610b595760405162461bcd60e51b815260040161061090611a08565b6005546001600160a01b03163314610f255760405162461bcd60e51b815260040161061090611983565b606a55565b6005546001600160a01b03163314610f545760405162461bcd60e51b815260040161061090611983565b6001600160a01b038116610fb95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610610565b6109b981611494565b6001600160a01b0383166110245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610610565b6001600160a01b0382166110855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610610565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661110c5760405162461bcd60e51b815260040161061090611a4b565b6001600160a01b0382166111325760405162461bcd60e51b815260040161061090611a90565b600080600080600660009054906101000a90046001600160a01b03166001600160a01b031663c1f1b1b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190611ad3565b6001600160a01b0316866001600160a01b031614156112f6576111e860646111e2606a54886115d990919063ffffffff16565b906115ec565b925061120460646111e2606b54886115d990919063ffffffff16565b915061122060646111e2606c54886115d990919063ffffffff16565b905061123881611232848189886115f8565b906115f8565b94506000600660009054906101000a90046001600160a01b03166001600160a01b031663e00246046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b39190611ad3565b90506112c0888284611604565b606d546112d89089906001600160a01b031686611604565b606e546112f09089906001600160a01b031685611604565b5061131f565b61131060646111e2606f54886115d990919063ffffffff16565b935061131c85856115f8565b94505b61132a878787611604565b50505050505050565b6001600160a01b0382166113935760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610610565b61139f82600083611769565b6001600160a01b038216600090815260208190526040902054818110156114135760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610610565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611442908490611af0565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610b63836000846117c1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661153c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610610565b61154860008383611769565b806002600082825461155a91906119ce565b90915550506001600160a01b038216600090815260208190526040812080548392906115879084906119ce565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610eae600083836117c1565b60006115e58284611b07565b9392505050565b60006115e58284611b26565b60006115e58284611af0565b6001600160a01b03831661162a5760405162461bcd60e51b815260040161061090611a4b565b6001600160a01b0382166116505760405162461bcd60e51b815260040161061090611a90565b61165b838383611769565b6001600160a01b038316600090815260208190526040902054818110156116d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610610565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061170a9084906119ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175691815260200190565b60405180910390a3610a5a8484846117c1565b6038546001600160a01b031615610b63576038546040516301bdf3ad60e51b81523360048201526001600160a01b038581166024830152848116604483015260648201849052909116906337be75a090608401610a17565b6006546001600160a01b031615610b635760065460405163079cc46760e11b81523360048201526001600160a01b0390911690630f3988ce90602401610a17565b600060208083528351808285015260005b8181101561182f57858101830151858201604001528201611813565b81811115611841576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146109b957600080fd5b6000806040838503121561187f57600080fd5b823561188a81611857565b946020939093013593505050565b6000602082840312156118aa57600080fd5b81356115e581611857565b6000806000606084860312156118ca57600080fd5b83356118d581611857565b925060208401356118e581611857565b929592945050506040919091013590565b60006020828403121561190857600080fd5b5035919050565b6000806040838503121561192257600080fd5b823561192d81611857565b9150602083013561193d81611857565b809150509250929050565b600181811c9082168061195c57607f821691505b6020821081141561197d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156119e1576119e16119b8565b500190565b6000602082840312156119f857600080fd5b815180151581146115e557600080fd5b60208082526023908201527f496d706c656d656e746174696f6e733a204e6f7420506c616e6574734d616e6160408201526233b2b960e91b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060208284031215611ae557600080fd5b81516115e581611857565b600082821015611b0257611b026119b8565b500390565b6000816000190483118215151615611b2157611b216119b8565b500290565b600082611b4357634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f79668fe4deb18d00e054114ff5dc5400349636dbbf862d7b74c759c5aa08c7c64736f6c634300080b00330000000000000000000000005f501f84a28995bcd7fe4a3fd1f2c2e45bc8373c