Overview ERC721
Total Supply:
150 CHUGP

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

Contract Source Code Verified (Partial Match)
Contract Name:
ChuggersPop

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Created At:
Tue, 30 Aug 2022 13:46:22 GMT
ChuggersPop.sol
contracts
ChuggersPop.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "nftName",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "nftSymbol",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "baseTokenURI",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRoot",
        "type": "bytes32"
      },
      {
        "internalType": "uint256",
        "name": "_startAt",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_WLstartAt",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "_id",
        "type": "uint256"
      }
    ],
    "name": "Claim",
    "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": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "stateMutability": "payable",
    "type": "fallback"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_whitelistedAddress",
        "type": "address"
      }
    ],
    "name": "EarlyMinterMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "KALAO",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_EARLY_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_MINTABLE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_PER_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_PUBLIC_CLAIM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MintIsOpen",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "NFT_PRICE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ROYALTY_VALUE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WLstartAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      }
    ],
    "name": "claim",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      }
    ],
    "name": "earlyClaim",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_whitelistedAddress",
        "type": "address"
      },
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      }
    ],
    "name": "isEarlyMinter",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "merkleRoot",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "n",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "premint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "publicMintedAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addressToWhitelist",
        "type": "address"
      }
    ],
    "name": "removeEarlyUser",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "royaltyAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "_data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_addr",
        "type": "address[]"
      }
    ],
    "name": "setAdmins",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      }
    ],
    "name": "setBaseUri",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      },
      {
        "internalType": "uint256",
        "name": "allowedToMint",
        "type": "uint256"
      }
    ],
    "name": "setEarlyMinters",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "_root",
        "type": "bytes32"
      }
    ],
    "name": "setMerkleRoot",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      }
    ],
    "name": "setRoyaltyAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_startAt",
        "type": "uint256"
      }
    ],
    "name": "setStartAt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_WLstartAt",
        "type": "uint256"
      }
    ],
    "name": "setWLstartAt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "startAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "toggleMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "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": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60a06040819052600060808190526200001b916012916200014f565b50600160138190556014805460ff1916909117905560006015553480156200004257600080fd5b50604051620037d4380380620037d48339810160408190526200006591620002a8565b8651879087906200007e9060009060208501906200014f565b508051620000949060019060208401906200014f565b505050620000b1620000ab620000f960201b60201c565b620000fd565b601680546001600160a01b0319166001600160a01b0386161790558451620000e19060129060208801906200014f565b50600e92909255600c55600d5550620003c892505050565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200015d9062000375565b90600052602060002090601f016020900481019282620001815760008555620001cc565b82601f106200019c57805160ff1916838001178555620001cc565b82800160010185558215620001cc579182015b82811115620001cc578251825591602001919060010190620001af565b50620001da929150620001de565b5090565b5b80821115620001da5760008155600101620001df565b600082601f83011262000206578081fd5b81516001600160401b0380821115620002235762000223620003b2565b604051601f8301601f19908116603f011681019082821181831017156200024e576200024e620003b2565b816040528381526020925086838588010111156200026a578485fd5b8491505b838210156200028d57858201830151818301840152908201906200026e565b838211156200029e57848385830101525b9695505050505050565b600080600080600080600060e0888a031215620002c3578283fd5b87516001600160401b0380821115620002da578485fd5b620002e88b838c01620001f5565b985060208a0151915080821115620002fe578485fd5b6200030c8b838c01620001f5565b975060408a015191508082111562000322578485fd5b50620003318a828b01620001f5565b60608a015190965090506001600160a01b038116811462000350578384fd5b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6002810460018216806200038a57607f821691505b60208210811415620003ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6133fc80620003d86000396000f3fe6080604052600436106102975760003560e01c80636d68b20b1161015a578063a60118e8116100c1578063e985e9c51161007a578063e985e9c514610758578063ead29d4e14610778578063f2c64ad214610798578063f2fde38b146107ad578063f3a133a9146107cd578063fc68e62d146107ed5761029e565b8063a60118e8146106ae578063accc1d5e146106ce578063b88d4fde146106ee578063c74465651461070e578063c87b56dd14610723578063d3dd5fe0146107435761029e565b80638da5cb5b116101135780638da5cb5b1461061a57806393791b031461062f57806395d89b4114610644578063a0bcfc7f14610659578063a22cb46514610679578063a28cf772146106995761029e565b80636d68b20b14610570578063705a13e21461059057806370a08231146105a5578063715018a6146105c55780637cb64759146105da57806386063f71146105fa5761029e565b8063379607f5116101fe5780634f6ccce7116101b75780634f6ccce7146104d1578063538dba3e146104f15780635471f49f146105115780636352211e14610526578063676dd563146105465780636b907eba1461055b5761029e565b8063379607f51461043f5780633ccfd60b146104525780633f879faf1461046757806340b898061461047c57806342842e0e1461049c5780634f02c420146104bc5761029e565b806318160ddd1161025057806318160ddd146103875780631b4f7f351461039c57806323b872dd146103bc5780632a55205a146103dc5780632eb4a7ab1461040a5780632f745c591461041f5761029e565b806301ffc9a7146102a057806306d254da146102d657806306fdde03146102f6578063081812fc14610318578063095ea7b31461034557806315147aee146103655761029e565b3661029e57005b005b3480156102ac57600080fd5b506102c06102bb366004612826565b61080d565b6040516102cd9190612a0a565b60405180910390f35b3480156102e257600080fd5b5061029e6102f13660046125d0565b610820565b34801561030257600080fd5b5061030b61088a565b6040516102cd9190612a1e565b34801561032457600080fd5b5061033861033336600461280e565b61091c565b6040516102cd91906129a0565b34801561035157600080fd5b5061029e61036036600461275b565b61095f565b34801561037157600080fd5b5061037a6109f7565b6040516102cd9190612a15565b34801561039357600080fd5b5061037a6109fc565b3480156103a857600080fd5b506102c06103b73660046126d0565b610a02565b3480156103c857600080fd5b5061029e6103d736600461261c565b610a78565b3480156103e857600080fd5b506103fc6103f73660046128f7565b610ab0565b6040516102cd9291906129f1565b34801561041657600080fd5b5061037a610b0e565b34801561042b57600080fd5b5061037a61043a36600461275b565b610b14565b61029e61044d36600461280e565b610b66565b34801561045e57600080fd5b5061029e610e40565b34801561047357600080fd5b5061037a610eed565b34801561048857600080fd5b5061029e6104973660046125d0565b610ef2565b3480156104a857600080fd5b5061029e6104b736600461261c565b610f4b565b3480156104c857600080fd5b5061037a610f66565b3480156104dd57600080fd5b5061037a6104ec36600461280e565b610f6c565b3480156104fd57600080fd5b5061029e61050c3660046128a4565b610fc7565b34801561051d57600080fd5b5061037a6110d0565b34801561053257600080fd5b5061033861054136600461280e565b6110d5565b34801561055257600080fd5b5061037a61110a565b34801561056757600080fd5b506102c0611116565b34801561057c57600080fd5b5061029e61058b36600461280e565b61111f565b34801561059c57600080fd5b50610338611163565b3480156105b157600080fd5b5061037a6105c03660046125d0565b61117b565b3480156105d157600080fd5b5061029e6111bf565b3480156105e657600080fd5b5061029e6105f536600461280e565b61120a565b34801561060657600080fd5b5061029e6106153660046128c6565b61124e565b34801561062657600080fd5b506103386114ec565b34801561063b57600080fd5b5061037a6114fb565b34801561065057600080fd5b5061030b611501565b34801561066557600080fd5b5061029e61067436600461285e565b611510565b34801561068557600080fd5b5061029e610694366004612721565b611566565b3480156106a557600080fd5b5061037a611578565b3480156106ba57600080fd5b5061037a6106c93660046125d0565b61157e565b3480156106da57600080fd5b5061029e6106e9366004612784565b611599565b3480156106fa57600080fd5b5061029e610709366004612657565b611658565b34801561071a57600080fd5b5061037a611691565b34801561072f57600080fd5b5061030b61073e36600461280e565b611697565b34801561074f57600080fd5b5061029e61171a565b34801561076457600080fd5b506102c06107733660046125ea565b61176d565b34801561078457600080fd5b5061037a6107933660046125d0565b61179b565b3480156107a457600080fd5b5061037a6117ad565b3480156107b957600080fd5b5061029e6107c83660046125d0565b6117b2565b3480156107d957600080fd5b5061029e6107e836600461280e565b611820565b3480156107f957600080fd5b5061029e6108083660046127c4565b611864565b600061081882611914565b90505b919050565b610828611939565b6001600160a01b03166108396114ec565b6001600160a01b0316146108685760405162461bcd60e51b815260040161085f90613030565b60405180910390fd5b601680546001600160a01b0319166001600160a01b0392909216919091179055565b60606000805461089990613304565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590613304565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b60006109278261193d565b6109435760405162461bcd60e51b815260040161085f90612fe4565b506000908152600460205260409020546001600160a01b031690565b600061096a826110d5565b9050806001600160a01b0316836001600160a01b0316141561099e5760405162461bcd60e51b815260040161085f9061313a565b806001600160a01b03166109b0611939565b6001600160a01b031614806109cc57506109cc81610773611939565b6109e85760405162461bcd60e51b815260040161085f90612e03565b6109f2838361195a565b505050565b600381565b60085490565b60008084604051602001610a169190612944565b604051602081830303815290604052805190602001209050610a6f84848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e5491508490506119c8565b95945050505050565b610a89610a83611939565b826119de565b610aa55760405162461bcd60e51b815260040161085f9061317b565b6109f2838383611a63565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b90910462ffffff16928201839052929161271090610afa90866132a2565b610b04919061328e565b9150509250929050565b600e5481565b6000610b1f8361117b565b8210610b3d5760405162461bcd60e51b815260040161085f90612b10565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60145460ff16610b885760405162461bcd60e51b815260040161085f90612a9f565b600c54421015610baa5760405162461bcd60e51b815260040161085f90613218565b6096610bb46109fc565b610bbe9083613276565b1115610bdc5760405162461bcd60e51b815260040161085f90612a31565b60008111610bfc5760405162461bcd60e51b815260040161085f90612d9c565b600a811115610c1d5760405162461bcd60e51b815260040161085f90612ef3565b33600090815260106020526040902054600311610c4c5760405162461bcd60e51b815260040161085f90613241565b33600090815260106020526040902054600390610c699083613276565b1115610c875760405162461bcd60e51b815260040161085f90612fad565b610c9981670429d069189e00006132a2565b341015610cb85760405162461bcd60e51b815260040161085f90612f35565b3360009081526010602052604081208054839290610cd7908490613276565b9091555060009050610cf182670429d069189e00006132a2565b90508060156000828254610d059190613276565b9091555060009050610d1782346132c1565b604051909150309083156108fc029084906000818181858888f19350505050158015610d47573d6000803e3d6000fd5b5060005b83811015610dd857610d66610d5e611939565b601354611b96565b601354601654610d8291906001600160a01b03166101f4611bb0565b600160136000828254610d959190613276565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a280610dd08161333f565b915050610d4b565b508015610e2157610de7611939565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610e1f573d6000803e3d6000fd5b505b6109f273eff2357c9e40103ac4d268b32de478e4fbbfc4f06001611566565b60116000610e4c611939565b6001600160a01b0316815260208101919091526040016000205460ff161515600114610e8a5760405162461bcd60e51b815260040161085f90612dd3565b60004711610eaa5760405162461bcd60e51b815260040161085f90612ae3565b610eb2611939565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610eea573d6000803e3d6000fd5b50565b609681565b610efa611939565b6001600160a01b0316610f0b6114ec565b6001600160a01b031614610f315760405162461bcd60e51b815260040161085f90613030565b6001600160a01b03166000908152600f6020526040812055565b6109f283838360405180602001604052806000815250611658565b60135481565b6000610f766109fc565b8210610f945760405162461bcd60e51b815260040161085f906131cc565b60088281548110610fb557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610fcf611939565b6001600160a01b0316610fe06114ec565b6001600160a01b0316146110065760405162461bcd60e51b815260040161085f90613030565b600082116110265760405162461bcd60e51b815260040161085f90612d9c565b600a8211156110475760405162461bcd60e51b815260040161085f90612ef3565b60005b828110156109f25761105e82601354611b96565b60135460165461107a91906001600160a01b03166101f4611bb0565b60016013600082825461108d9190613276565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a2806110c88161333f565b91505061104a565b600a81565b6000818152600260205260408120546001600160a01b0316806108185760405162461bcd60e51b815260040161085f90612eaa565b670429d069189e000081565b60145460ff1681565b611127611939565b6001600160a01b03166111386114ec565b6001600160a01b03161461115e5760405162461bcd60e51b815260040161085f90613030565b600d55565b73eff2357c9e40103ac4d268b32de478e4fbbfc4f081565b60006001600160a01b0382166111a35760405162461bcd60e51b815260040161085f90612e60565b506001600160a01b031660009081526003602052604090205490565b6111c7611939565b6001600160a01b03166111d86114ec565b6001600160a01b0316146111fe5760405162461bcd60e51b815260040161085f90613030565b6112086000611c32565b565b611212611939565b6001600160a01b03166112236114ec565b6001600160a01b0316146112495760405162461bcd60e51b815260040161085f90613030565b600e55565b60145460ff166112705760405162461bcd60e51b815260040161085f90612a9f565b600d544210156112925760405162461bcd60e51b815260040161085f90613218565b600c5442106112b35760405162461bcd60e51b815260040161085f9061309c565b60966112bd6109fc565b6112c79085613276565b11156112e55760405162461bcd60e51b815260040161085f90612a31565b600a8311156113065760405162461bcd60e51b815260040161085f90612ef3565b336000908152600f6020526040902054600110156113365760405162461bcd60e51b815260040161085f90612c6f565b6000336040516020016113499190612944565b6040516020818303038152906040528051906020012090506113a283838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600e5491508490506119c8565b6113be5760405162461bcd60e51b815260040161085f90612d21565b600084116113de5760405162461bcd60e51b815260040161085f90612d9c565b336000908152600f60205260409020546001906113fb9086613276565b11156114195760405162461bcd60e51b815260040161085f90613065565b336000908152600f602052604081208054869290611438908490613276565b90915550600090505b848110156114c657611454610d5e611939565b60135460165461147091906001600160a01b03166101f4611bb0565b6001601360008282546114839190613276565b90915550506013546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a2806114be8161333f565b915050611441565b506114e673eff2357c9e40103ac4d268b32de478e4fbbfc4f06001611566565b50505050565b600a546001600160a01b031690565b6101f481565b60606001805461089990613304565b611518611939565b6001600160a01b03166115296114ec565b6001600160a01b03161461154f5760405162461bcd60e51b815260040161085f90613030565b8051611562906012906020840190612461565b5050565b611562611571611939565b8383611c84565b600d5481565b6001600160a01b03166000908152600f602052604090205490565b6115a1611939565b6001600160a01b03166115b26114ec565b6001600160a01b0316146115d85760405162461bcd60e51b815260040161085f90613030565b60005b818110156109f25760016011600085858581811061160957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061161e91906125d0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806116508161333f565b9150506115db565b611669611663611939565b836119de565b6116855760405162461bcd60e51b815260040161085f9061317b565b6114e684848484611d27565b600c5481565b60606116a28261193d565b6116be5760405162461bcd60e51b815260040161085f906130eb565b60006116c8611d5a565b905060008151116116e85760405180602001604052806000815250611713565b806116f284611d69565b604051602001611703929190612961565b6040516020818303038152906040525b9392505050565b611722611939565b6001600160a01b03166117336114ec565b6001600160a01b0316146117595760405162461bcd60e51b815260040161085f90613030565b6014805460ff19811660ff90911615179055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60106020526000908152604090205481565b600181565b6117ba611939565b6001600160a01b03166117cb6114ec565b6001600160a01b0316146117f15760405162461bcd60e51b815260040161085f90613030565b6001600160a01b0381166118175760405162461bcd60e51b815260040161085f90612bad565b610eea81611c32565b611828611939565b6001600160a01b03166118396114ec565b6001600160a01b03161461185f5760405162461bcd60e51b815260040161085f90613030565b600c55565b61186c611939565b6001600160a01b031661187d6114ec565b6001600160a01b0316146118a35760405162461bcd60e51b815260040161085f90613030565b60005b828110156114e65781600f60008686858181106118d357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906118e891906125d0565b6001600160a01b031681526020810191909152604001600020558061190c8161333f565b9150506118a6565b60006001600160e01b0319821663152a902d60e11b1480610818575061081882611e84565b3390565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061198f826110d5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000826119d58584611ea9565b14949350505050565b60006119e98261193d565b611a055760405162461bcd60e51b815260040161085f90612d50565b6000611a10836110d5565b9050806001600160a01b0316846001600160a01b03161480611a375750611a37818561176d565b80611a5b5750836001600160a01b0316611a508461091c565b6001600160a01b0316145b949350505050565b826001600160a01b0316611a76826110d5565b6001600160a01b031614611a9c5760405162461bcd60e51b815260040161085f90612bf3565b6001600160a01b038216611ac25760405162461bcd60e51b815260040161085f90612ca6565b611acd838383611f23565b611ad860008261195a565b6001600160a01b0383166000908152600360205260408120805460019290611b019084906132c1565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b2f908490613276565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46109f28383836109f2565b611562828260405180602001604052806000815250611f2e565b612710811115611bd25760405162461bcd60e51b815260040161085f90612a68565b6040805180820182526001600160a01b03938416815262ffffff92831660208083019182526000968752600b905291909420935184549151909216600160a01b0262ffffff60a01b19929093166001600160a01b03199091161716179055565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611cb65760405162461bcd60e51b815260040161085f90612cea565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190611d1a908590612a0a565b60405180910390a3505050565b611d32848484611a63565b611d3e84848484611f61565b6114e65760405162461bcd60e51b815260040161085f90612b5b565b60606012805461089990613304565b606081611d8e57506040805180820190915260018152600360fc1b602082015261081b565b8160005b8115611db85780611da28161333f565b9150611db19050600a8361328e565b9150611d92565b60008167ffffffffffffffff811115611de157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611e0b576020820181803683370190505b5090505b8415611a5b57611e206001836132c1565b9150611e2d600a8661335a565b611e38906030613276565b60f81b818381518110611e5b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611e7d600a8661328e565b9450611e0f565b60006001600160e01b0319821663780e9d6360e01b148061081857506108188261207c565b600081815b8451811015611f1b576000858281518110611ed957634e487b7160e01b600052603260045260246000fd5b60200260200101519050808311611efb57611ef483826120bc565b9250611f08565b611f0581846120bc565b92505b5080611f138161333f565b915050611eae565b509392505050565b6109f28383836120cb565b611f388383612154565b611f456000848484611f61565b6109f25760405162461bcd60e51b815260040161085f90612b5b565b6000611f75846001600160a01b031661223b565b1561207157836001600160a01b031663150b7a02611f91611939565b8786866040518563ffffffff1660e01b8152600401611fb394939291906129b4565b602060405180830381600087803b158015611fcd57600080fd5b505af1925050508015611ffd575060408051601f3d908101601f19168201909252611ffa91810190612842565b60015b612057573d80801561202b576040519150601f19603f3d011682016040523d82523d6000602084013e612030565b606091505b50805161204f5760405162461bcd60e51b815260040161085f90612b5b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a5b565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b14806120ad57506001600160e01b03198216635b5e139f60e01b145b8061081857506108188261224a565b60009182526020526040902090565b6120d68383836109f2565b6001600160a01b0383166120f2576120ed81612263565b612115565b816001600160a01b0316836001600160a01b0316146121155761211583826122a7565b6001600160a01b0382166121315761212c81612344565b6109f2565b826001600160a01b0316826001600160a01b0316146109f2576109f2828261241d565b6001600160a01b03821661217a5760405162461bcd60e51b815260040161085f90612f78565b6121838161193d565b156121a05760405162461bcd60e51b815260040161085f90612c38565b6121ac60008383611f23565b6001600160a01b03821660009081526003602052604081208054600192906121d5908490613276565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4611562600083836109f2565b6001600160a01b03163b151590565b6001600160e01b031981166301ffc9a760e01b14919050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b600060016122b48461117b565b6122be91906132c1565b600083815260076020526040902054909150808214612311576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612356906001906132c1565b6000838152600960205260408120546008805493945090928490811061238c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080600883815481106123bb57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061240157634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b60006124288361117b565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b82805461246d90613304565b90600052602060002090601f01602090048101928261248f57600085556124d5565b82601f106124a857805160ff19168380011785556124d5565b828001600101855582156124d5579182015b828111156124d55782518255916020019190600101906124ba565b506124e19291506124e5565b5090565b5b808211156124e157600081556001016124e6565b600067ffffffffffffffff808411156125155761251561339a565b604051601f8501601f19908116603f0116810190828211818310171561253d5761253d61339a565b8160405280935085815286868601111561255657600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461081b57600080fd5b60008083601f840112612598578081fd5b50813567ffffffffffffffff8111156125af578182fd5b60208301915083602080830285010111156125c957600080fd5b9250929050565b6000602082840312156125e1578081fd5b61171382612570565b600080604083850312156125fc578081fd5b61260583612570565b915061261360208401612570565b90509250929050565b600080600060608486031215612630578081fd5b61263984612570565b925061264760208501612570565b9150604084013590509250925092565b6000806000806080858703121561266c578081fd5b61267585612570565b935061268360208601612570565b925060408501359150606085013567ffffffffffffffff8111156126a5578182fd5b8501601f810187136126b5578182fd5b6126c4878235602084016124fa565b91505092959194509250565b6000806000604084860312156126e4578283fd5b6126ed84612570565b9250602084013567ffffffffffffffff811115612708578283fd5b61271486828701612587565b9497909650939450505050565b60008060408385031215612733578182fd5b61273c83612570565b915060208301358015158114612750578182fd5b809150509250929050565b6000806040838503121561276d578182fd5b61277683612570565b946020939093013593505050565b60008060208385031215612796578182fd5b823567ffffffffffffffff8111156127ac578283fd5b6127b885828601612587565b90969095509350505050565b6000806000604084860312156127d8578283fd5b833567ffffffffffffffff8111156127ee578384fd5b6127fa86828701612587565b909790965060209590950135949350505050565b60006020828403121561281f578081fd5b5035919050565b600060208284031215612837578081fd5b8135611713816133b0565b600060208284031215612853578081fd5b8151611713816133b0565b60006020828403121561286f578081fd5b813567ffffffffffffffff811115612885578182fd5b8201601f81018413612895578182fd5b611a5b848235602084016124fa565b600080604083850312156128b6578182fd5b8235915061261360208401612570565b6000806000604084860312156128da578081fd5b83359250602084013567ffffffffffffffff811115612708578182fd5b60008060408385031215612909578182fd5b50508035926020909101359150565b600081518084526129308160208601602086016132d8565b601f01601f19169290920160200192915050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b600083516129738184602088016132d8565b8351908301906129878183602088016132d8565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906129e790830184612918565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6000602082526117136020830184612918565b60208082526018908201527f4e6f7420656e6f756768206c65667420746f206d696e742e0000000000000000604082015260600190565b6020808252601a908201527f45524332393831526f79616c746965733a20546f6f2068696768000000000000604082015260600190565b60208082526024908201527f49742773206e6f7420706f737369626c6520746f20636c61696d206a757374206040820152633cb2ba1760e11b606082015260800190565b6020808252601390820152724e6f7468696e6720746f20776974686472617760681b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601d908201527f596f752063616e2774206561726c7920636c61696d20616e796d6f7265000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526015908201527424b73b30b634b21026b2b935b63290283937b7b31760591b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252601f908201527f4e756d626572206e65656420746f20626520686967686572207468616e203000604082015260600190565b6020808252601690820152752cb7bab91030b932903737ba103a34329037bbb732b960511b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b60208082526022908201527f796f752063616e277420636c61696d2074686174206d756368206174206f756e604082015261636560f01b606082015260800190565b60208082526023908201527f45746865722076616c75652073656e742069732062656c6f772074686520707260408201526269636560e81b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526019908201527f796f752063616e277420636c61696d2074686174206d75636800000000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f796f752063616e2774206561726c7920636c61696d2074686174206d75636800604082015260600190565b6020808252602f908201527f5075626c6963206d696e74206973206f70656e2c207468652077686974656c6960408201526e39ba1036b4b73a1034b99037bb32b960891b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252600f908201526e139bdd081cdd185c9d1959081e595d608a1b604082015260600190565b6020808252818101527f6578636565647320746865207075626c6963206d696e74696e67206c696d6974604082015260600190565b600082198211156132895761328961336e565b500190565b60008261329d5761329d613384565b500490565b60008160001904831182151516156132bc576132bc61336e565b500290565b6000828210156132d3576132d361336e565b500390565b60005b838110156132f35781810151838201526020016132db565b838111156114e65750506000910152565b60028104600182168061331857607f821691505b6020821081141561333957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156133535761335361336e565b5060010190565b60008261336957613369613384565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610eea57600080fdfea2646970667358221220424ad1f18bc362b7b7ee222bbdeeca13093d78700c9360afbfa0fd77ca93438564736f6c6343000801003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000274b2f0cc4c247ff4b7af4e1fa4f75d98501ff97cba30557595c18a85bf4954a1848d3d94487661c1fb5f3121fe91c5202fff76000000000000000000000000000000000000000000000000000000000630e527800000000000000000000000000000000000000000000000000000000630e5020000000000000000000000000000000000000000000000000000000000000000c436875676765727320506f700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000543485547500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d5a7a715542777938666531594b737551335a527043754d7972436176656f384731347559643565394d6454332f00000000000000000000