Overview ERC721
Total Supply:
432 LANDZ

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

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Created At:
Wed, 09 Aug 2023 11:49:34 GMT
AccessControl.sol
@openzeppelin
contracts
access
AccessControl.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "_root_one",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "_root_two",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "ApprovalCallerNotOwnerNorApproved",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ApprovalQueryForNonexistentToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BalanceQueryForZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintERC2309QuantityExceedsLimit",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintToZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MintZeroQuantity",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OwnerQueryForNonexistentToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OwnershipNotInitializedForExtraData",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferCallerNotOwnerNorApproved",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferFromIncorrectOwner",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferToNonERC721ReceiverImplementer",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferToZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "URIQueryForNonexistentToken",
    "type": "error"
  },
  {
    "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": "fromTokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "toTokenId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "ConsecutiveTransfer",
    "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": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "previousAdminRole",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "newAdminRole",
        "type": "bytes32"
      }
    ],
    "name": "RoleAdminChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleGranted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleRevoked",
    "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"
  },
  {
    "inputs": [],
    "name": "DEFAULT_ADMIN_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_PURCHASABLE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MINTER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseURIExtended",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "exists",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "extension",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "grantRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "proof",
        "type": "bytes32[]"
      }
    ],
    "name": "mintPhaseOne",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "proof",
        "type": "bytes32[]"
      }
    ],
    "name": "mintPhaseTwo",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintState",
    "outputs": [
      {
        "internalType": "enum ZungleLandz.MintState",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "minters",
    "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": [],
    "name": "presalePrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "renounceRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "reserveTokens",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "revokeRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "root_one",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "root_two",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_salePrice",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "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": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "payable",
    "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": "payable",
    "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": [],
    "name": "setClosed",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_extension",
        "type": "string"
      }
    ],
    "name": "setExtension",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPhaseOne",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPhaseThree",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPhaseTwo",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newPrice",
        "type": "uint256"
      }
    ],
    "name": "setPresalePrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "_root",
        "type": "bytes32"
      }
    ],
    "name": "setRootOne",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "_root",
        "type": "bytes32"
      }
    ],
    "name": "setRootTwo",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_payoutAddress",
        "type": "address"
      }
    ],
    "name": "setRoyaltyPayoutAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newPrice",
        "type": "uint256"
      }
    ],
    "name": "setTokenPrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint96",
        "name": "_royalties",
        "type": "uint96"
      }
    ],
    "name": "setTokenRoyalties",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_addr",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "specialMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "tokenPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokenRoyalties",
    "outputs": [
      {
        "internalType": "uint96",
        "name": "",
        "type": "uint96"
      }
    ],
    "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": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
671e87f85809dc0000600d55671bc16d674ec80000600e5560e0604052602c6080818152906200350e60a03980516200004191600f9160209091019062000635565b50604080516020810191829052600090819052620000629160109162000635565b50601180546201f400610100600160681b0319909116179055601480546001600160a01b03191673b090fc5d0c06804dfbf06efb59ce1f291f13162a179055348015620000ae57600080fd5b506040516200353a3803806200353a833981016040819052620000d191620006db565b604080518082018252600c81526b2d3ab733b632902630b7323d60a11b6020808301918252835180850190945260058452642620a7222d60d91b908401528151919291620001229160029162000635565b5080516200013890600390602084019062000635565b50506001600055506200014b33620001b7565b6001600a556200016f620001676008546001600160a01b031690565b600162000209565b60145460115462000198916001600160a01b03169061010090046001600160601b03166200022f565b60128290556013819055620001af60003362000334565b5050620007eb565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200022b8282604051806020016040528060008152506200034060201b60201c565b5050565b6127106001600160601b0382161115620002a35760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002fb5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016200029a565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b6200022b8282620003b7565b6200034c83836200045b565b6001600160a01b0383163b15620003b2576000548281035b60018101906200037a9060009087908662000534565b62000398576040516368d2bf6b60e11b815260040160405180910390fd5b81811062000364578160005414620003af57600080fd5b50505b505050565b60008281526009602090815260408083206001600160a01b038516845290915290205460ff166200022b5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620004173390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600054816200047d5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020620034ee8339815191528180a4600183015b8181146200050c5780836000600080516020620034ee833981519152600080a4600101620004e3565b50816200052b57604051622e076360e81b815260040160405180910390fd5b60005550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906200056b90339089908890889060040162000733565b602060405180830381600087803b1580156200058657600080fd5b505af1925050508015620005b9575060408051601f3d908101601f19168201909252620005b69181019062000700565b60015b62000618573d808015620005ea576040519150601f19603f3d011682016040523d82523d6000602084013e620005ef565b606091505b50805162000610576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b8280546200064390620007ae565b90600052602060002090601f016020900481019282620006675760008555620006b2565b82601f106200068257805160ff1916838001178555620006b2565b82800160010185558215620006b2579182015b82811115620006b257825182559160200191906001019062000695565b50620006c0929150620006c4565b5090565b5b80821115620006c05760008155600101620006c5565b60008060408385031215620006ef57600080fd5b505080516020909101519092909150565b6000602082840312156200071357600080fd5b81516001600160e01b0319811681146200072c57600080fd5b9392505050565b600060018060a01b038087168352602081871681850152856040850152608060608501528451915081608085015260005b82811015620007825785810182015185820160a00152810162000764565b828111156200079557600060a084870101525b5050601f01601f19169190910160a00195945050505050565b600181811c90821680620007c357607f821691505b60208210811415620007e557634e487b7160e01b600052602260045260246000fd5b50919050565b612cf380620007fb6000396000f3fe60806040526004361061034f5760003560e01c80636fecc249116101c6578063c4f2a89c116100f7578063d8c1a2f111610095578063ef83e6091161006f578063ef83e6091461098f578063f2dc6b33146109a4578063f2fde38b146109b9578063f46eccc4146109d957600080fd5b8063d8c1a2f11461091e578063e4d3d44814610931578063e985e9c51461094657600080fd5b8063c87b56dd116100d1578063c87b56dd14610894578063d5391393146108b4578063d547741f146108e8578063d5c9903d1461090857600080fd5b8063c4f2a89c1461084b578063c5857d911461086b578063c753f18d1461087e57600080fd5b806391d1485411610164578063a217fddf1161013e578063a217fddf146107dc578063a22cb465146107f1578063b88d4fde14610811578063c051e38a1461082457600080fd5b806391d148541461079457806395d89b41146107b4578063a0712d68146107c957600080fd5b806378cf19e9116101a057806378cf19e9146107205780637e2285aa146107405780637ff9b596146107605780638da5cb5b1461077657600080fd5b80636fecc249146106cb57806370a08231146106eb578063715018a61461070b57600080fd5b80632d5537b0116102a057806342842e0e1161023e5780634f558e79116102185780634f558e791461064b57806355f804b31461066b5780636352211e1461068b5780636a61e5fc146106ab57600080fd5b806342842e0e1461060357806345aeefde146106165780634699c3c21461063657600080fd5b806332cb6b0c1161027a57806332cb6b0c146105985780633549345e146105ae57806336568abe146105ce5780633ccfd60b146105ee57600080fd5b80632d5537b0146105265780632dff84231461053b5780632f2ff15d1461057857600080fd5b80631169b9d81161030d5780631ebdcaae116102e75780631ebdcaae1461048457806323b872dd146104a4578063248a9ca3146104b75780632a55205a146104e757600080fd5b80631169b9d81461043c578063119e43981461045157806318160ddd1461046657600080fd5b80620e7fa81461035457806301ffc9a71461037d57806306fdde03146103ad578063081812fc146103cf578063087fd40714610407578063095ea7b314610429575b600080fd5b34801561036057600080fd5b5061036a600e5481565b6040519081526020015b60405180910390f35b34801561038957600080fd5b5061039d6103983660046126e9565b610a06565b6040519015158152602001610374565b3480156103b957600080fd5b506103c2610a35565b6040516103749190612a00565b3480156103db57600080fd5b506103ef6103ea3660046126ad565b610ac7565b6040516001600160a01b039091168152602001610374565b34801561041357600080fd5b506104276104223660046126ad565b610b0b565b005b610427610437366004612683565b610b18565b34801561044857600080fd5b50610427610bb8565b34801561045d57600080fd5b5061036a600581565b34801561047257600080fd5b5061036a600154600054036000190190565b34801561049057600080fd5b5061042761049f36600461280d565b610bd7565b6104276104b236600461258f565b610c2a565b3480156104c357600080fd5b5061036a6104d23660046126ad565b60009081526009602052604090206001015490565b3480156104f357600080fd5b506105076105023660046127eb565b610dbb565b604080516001600160a01b039093168352602083019190915201610374565b34801561053257600080fd5b506103c2610e67565b34801561054757600080fd5b506011546105609061010090046001600160601b031681565b6040516001600160601b039091168152602001610374565b34801561058457600080fd5b506104276105933660046126c6565b610ef5565b3480156105a457600080fd5b5061036a6103e881565b3480156105ba57600080fd5b506104276105c93660046126ad565b610f1f565b3480156105da57600080fd5b506104276105e93660046126c6565b610f2c565b3480156105fa57600080fd5b50610427610faf565b61042761061136600461258f565b611029565b34801561062257600080fd5b50610427610631366004612541565b611044565b34801561064257600080fd5b50610427611085565b34801561065757600080fd5b5061039d6106663660046126ad565b6110a0565b34801561067757600080fd5b50610427610686366004612723565b6110ab565b34801561069757600080fd5b506103ef6106a63660046126ad565b6110c6565b3480156106b757600080fd5b506104276106c63660046126ad565b6110d1565b3480156106d757600080fd5b506104276106e6366004612683565b6110de565b3480156106f757600080fd5b5061036a610706366004612541565b611112565b34801561071757600080fd5b50610427611161565b34801561072c57600080fd5b5061042761073b366004612683565b611175565b34801561074c57600080fd5b5061042761075b366004612723565b6111ff565b34801561076c57600080fd5b5061036a600d5481565b34801561078257600080fd5b506008546001600160a01b03166103ef565b3480156107a057600080fd5b5061039d6107af3660046126c6565b61121a565b3480156107c057600080fd5b506103c2611245565b6104276107d73660046126ad565b611254565b3480156107e857600080fd5b5061036a600081565b3480156107fd57600080fd5b5061042761080c366004612647565b6113a0565b61042761081f3660046125cb565b61140c565b34801561083057600080fd5b5060115461083e9060ff1681565b60405161037491906129d8565b34801561085757600080fd5b506104276108663660046126ad565b611456565b61042761087936600461276c565b611463565b34801561088a57600080fd5b5061036a60135481565b3480156108a057600080fd5b506103c26108af3660046126ad565b61167d565b3480156108c057600080fd5b5061036a7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b3480156108f457600080fd5b506104276109033660046126c6565b611733565b34801561091457600080fd5b5061036a60125481565b61042761092c36600461276c565b611758565b34801561093d57600080fd5b506103c2611849565b34801561095257600080fd5b5061039d61096136600461255c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561099b57600080fd5b50610427611856565b3480156109b057600080fd5b50610427611872565b3480156109c557600080fd5b506104276109d4366004612541565b61188e565b3480156109e557600080fd5b5061036a6109f4366004612541565b60156020526000908152604090205481565b6000610a1182611904565b80610a205750610a2082611952565b80610a2f5750610a2f82611973565b92915050565b606060028054610a4490612bf9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7090612bf9565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050905090565b6000610ad2826119a8565b610aef576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b610b136119dd565b601255565b6000610b23826110c6565b9050336001600160a01b03821614610b5c57610b3f8133610961565b610b5c576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610bc06119dd565b601180546002919060ff19166001835b0217905550565b610bdf6119dd565b601180546cffffffffffffffffffffffff0019166101006001600160601b0384811682029290921792839055601454610c27936001600160a01b039091169291900416611a37565b50565b6000610c3582611b34565b9050836001600160a01b0316816001600160a01b031614610c685760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417610cb557610c988633610961565b610cb557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610cdc57604051633a954ecd60e21b815260040160405180910390fd5b8015610ce757600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040902055600160e11b8316610d725760018401600081815260046020526040902054610d70576000548114610d705760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b6000828152600c602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610e30575060408051808201909152600b546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610e4f906001600160601b031687612b97565b610e599190612b75565b915196919550909350505050565b60108054610e7490612bf9565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea090612bf9565b8015610eed5780601f10610ec257610100808354040283529160200191610eed565b820191906000526020600020905b815481529060010190602001808311610ed057829003601f168201915b505050505081565b600082815260096020526040902060010154610f1081611b9d565b610f1a8383611ba7565b505050565b610f276119dd565b600e55565b6001600160a01b0381163314610fa15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610fab8282611c2d565b5050565b610fb76119dd565b47806110055760405162461bcd60e51b815260206004820152601a60248201527f4c414e445a3a204e6f7468696e6720746f2077697468647261770000000000006044820152606401610f98565b60405133904780156108fc02916000818181858888f19350505050610c2757600080fd5b610f1a8383836040518060200160405280600081525061140c565b61104c6119dd565b601480546001600160a01b0319166001600160a01b038316908117909155601154610c27919061010090046001600160601b0316611a37565b61108d6119dd565b601180546001919060ff19168280610bd0565b6000610a2f826119a8565b6110b36119dd565b8051610fab90600f906020840190612416565b6000610a2f82611b34565b6110d96119dd565b600d55565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961110881611b9d565b610f1a8383611c94565b60006001600160a01b03821661113b576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6111696119dd565b6111736000611cae565b565b61117d6119dd565b6000811180156111a957506103e861119c600154600054036000190190565b6111a69083612b5d565b11155b6111f55760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682072657365727665206c65667420666f72207465616d6044820152606401610f98565b610fab8282611c94565b6112076119dd565b8051610fab906010906020840190612416565b60009182526009602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060038054610a4490612bf9565b3233146112735760405162461bcd60e51b8152600401610f9890612a56565b61127b611d00565b600360115460ff16600381111561129457611294612c65565b146112e15760405162461bcd60e51b815260206004820152601960248201527f4c414e445a3a2053616c65206973206e6f7420616374697665000000000000006044820152606401610f98565b600081116113015760405162461bcd60e51b8152600401610f9890612adf565b60058111156113225760405162461bcd60e51b8152600401610f9890612a13565b6103e881611337600154600054036000190190565b6113419190612b5d565b111561135f5760405162461bcd60e51b8152600401610f9890612b16565b3481600d5461136e9190612b97565b111561138c5760405162461bcd60e51b8152600401610f9890612a9b565b6113963382611c94565b610c276001600a55565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611417848484610c2a565b6001600160a01b0383163b156114505761143384848484611d5a565b611450576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b61145e6119dd565b601355565b3233146114825760405162461bcd60e51b8152600401610f9890612a56565b61148a611d00565b600260115460ff1660038111156114a3576114a3612c65565b146114f05760405162461bcd60e51b815260206004820152601f60248201527f4c414e445a3a204d696e74207068617365206973206e6f7420616374697665006044820152606401610f98565b600083116115105760405162461bcd60e51b8152600401610f9890612adf565b6040516bffffffffffffffffffffffff193360601b166020820152611554908390839060340160405160208183030381529060405280519060200120601354611e52565b6115a05760405162461bcd60e51b815260206004820152601c60248201527f4c414e445a3a2043616e6e6f74206d696e7420666f72207068617365000000006044820152606401610f98565b6103e8836115b5600154600054036000190190565b6115bf9190612b5d565b11156115dd5760405162461bcd60e51b8152600401610f9890612b16565b336000908152601560205260409020546005906115fb908590612b5d565b11156116195760405162461bcd60e51b8152600401610f9890612a13565b3483600e546116289190612b97565b146116455760405162461bcd60e51b8152600401610f9890612a9b565b61164f3384611c94565b336000908152601560205260408120805485929061166e908490612b5d565b90915550506001600a55505050565b6060611688826119a8565b6116d45760405162461bcd60e51b815260206004820152601b60248201527f4c414e445a3a20546f6b656e20646f6573206e6f7420657869737400000000006044820152606401610f98565b60006116de611e9d565b905060008151116116fe576040518060200160405280600081525061172c565b8061170884611eac565b601060405160200161171c93929190612862565b6040516020818303038152906040525b9392505050565b60008281526009602052604090206001015461174e81611b9d565b610f1a8383611c2d565b3233146117775760405162461bcd60e51b8152600401610f9890612a56565b61177f611d00565b600160115460ff16600381111561179857611798612c65565b146117e55760405162461bcd60e51b815260206004820152601f60248201527f4c414e445a3a204d696e74207068617365206973206e6f7420616374697665006044820152606401610f98565b600083116118055760405162461bcd60e51b8152600401610f9890612adf565b6040516bffffffffffffffffffffffff193360601b166020820152611554908390839060340160405160208183030381529060405280519060200120601254611e52565b600f8054610e7490612bf9565b61185e6119dd565b601180546003919060ff1916600183610bd0565b61187a6119dd565b601180546000919060ff1916600183610bd0565b6118966119dd565b6001600160a01b0381166118fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f98565b610c2781611cae565b60006301ffc9a760e01b6001600160e01b03198316148061193557506380ac58cd60e01b6001600160e01b03198316145b80610a2f5750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b1480610a2f5750610a2f825b60006001600160e01b03198216637965db0b60e01b1480610a2f57506301ffc9a760e01b6001600160e01b0319831614610a2f565b6000816001111580156119bc575060005482105b8015610a2f575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b031633146111735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f98565b6127106001600160601b0382161115611aa55760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610f98565b6001600160a01b038216611afb5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610f98565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600b55565b60008180600111611b8457600054811015611b8457600081815260046020526040902054600160e01b8116611b82575b8061172c575060001901600081815260046020526040902054611b64565b505b604051636f96cda160e11b815260040160405180910390fd5b610c278133611f49565b611bb1828261121a565b610fab5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611be93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611c37828261121a565b15610fab5760008281526009602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610fab828260405180602001604052806000815250611fa2565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600a541415611d535760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610f98565b6002600a55565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611d8f90339089908890889060040161299b565b602060405180830381600087803b158015611da957600080fd5b505af1925050508015611dd9575060408051601f3d908101601f19168201909252611dd691810190612706565b60015b611e34573d808015611e07576040519150601f19603f3d011682016040523d82523d6000602084013e611e0c565b606091505b508051611e2c576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6000611e9485858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525086925087915061200f9050565b95945050505050565b6060600f8054610a4490612bf9565b60606000611eb983612025565b600101905060008167ffffffffffffffff811115611ed957611ed9612c91565b6040519080825280601f01601f191660200182016040528015611f03576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f3c57611f41565b611f0d565b509392505050565b611f53828261121a565b610fab57611f60816120fd565b611f6b83602061210f565b604051602001611f7c929190612926565b60408051601f198184030181529082905262461bcd60e51b8252610f9891600401612a00565b611fac83836122ab565b6001600160a01b0383163b15610f1a576000548281035b611fd66000868380600101945086611d5a565b611ff3576040516368d2bf6b60e11b815260040160405180910390fd5b818110611fc357816000541461200857600080fd5b5050505050565b60008261201c85846123a2565b14949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106120645772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612090576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106120ae57662386f26fc10000830492506010015b6305f5e10083106120c6576305f5e100830492506008015b61271083106120da57612710830492506004015b606483106120ec576064830492506002015b600a8310610a2f5760010192915050565b6060610a2f6001600160a01b03831660145b6060600061211e836002612b97565b612129906002612b5d565b67ffffffffffffffff81111561214157612141612c91565b6040519080825280601f01601f19166020018201604052801561216b576020820181803683370190505b509050600360fc1b8160008151811061218657612186612c7b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121b5576121b5612c7b565b60200101906001600160f81b031916908160001a90535060006121d9846002612b97565b6121e4906001612b5d565b90505b600181111561225c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061221857612218612c7b565b1a60f81b82828151811061222e5761222e612c7b565b60200101906001600160f81b031916908160001a90535060049490941c9361225581612be2565b90506121e7565b50831561172c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610f98565b600054816122cc5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461237b57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612343565b508161239957604051622e076360e81b815260040160405180910390fd5b60005550505050565b600081815b8451811015611f41576123d3828683815181106123c6576123c6612c7b565b60200260200101516123e7565b9150806123df81612c34565b9150506123a7565b600081831061240357600082815260208490526040902061172c565b600083815260208390526040902061172c565b82805461242290612bf9565b90600052602060002090601f016020900481019282612444576000855561248a565b82601f1061245d57805160ff191683800117855561248a565b8280016001018555821561248a579182015b8281111561248a57825182559160200191906001019061246f565b5061249692915061249a565b5090565b5b80821115612496576000815560010161249b565b600067ffffffffffffffff808411156124ca576124ca612c91565b604051601f8501601f19908116603f011681019082821181831017156124f2576124f2612c91565b8160405280935085815286868601111561250b57600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461253c57600080fd5b919050565b60006020828403121561255357600080fd5b61172c82612525565b6000806040838503121561256f57600080fd5b61257883612525565b915061258660208401612525565b90509250929050565b6000806000606084860312156125a457600080fd5b6125ad84612525565b92506125bb60208501612525565b9150604084013590509250925092565b600080600080608085870312156125e157600080fd5b6125ea85612525565b93506125f860208601612525565b925060408501359150606085013567ffffffffffffffff81111561261b57600080fd5b8501601f8101871361262c57600080fd5b61263b878235602084016124af565b91505092959194509250565b6000806040838503121561265a57600080fd5b61266383612525565b91506020830135801515811461267857600080fd5b809150509250929050565b6000806040838503121561269657600080fd5b61269f83612525565b946020939093013593505050565b6000602082840312156126bf57600080fd5b5035919050565b600080604083850312156126d957600080fd5b8235915061258660208401612525565b6000602082840312156126fb57600080fd5b813561172c81612ca7565b60006020828403121561271857600080fd5b815161172c81612ca7565b60006020828403121561273557600080fd5b813567ffffffffffffffff81111561274c57600080fd5b8201601f8101841361275d57600080fd5b611e4a848235602084016124af565b60008060006040848603121561278157600080fd5b83359250602084013567ffffffffffffffff808211156127a057600080fd5b818601915086601f8301126127b457600080fd5b8135818111156127c357600080fd5b8760208260051b85010111156127d857600080fd5b6020830194508093505050509250925092565b600080604083850312156127fe57600080fd5b50508035926020909101359150565b60006020828403121561281f57600080fd5b81356001600160601b038116811461172c57600080fd5b6000815180845261284e816020860160208601612bb6565b601f01601f19169290920160200192915050565b6000845160206128758285838a01612bb6565b8551918401916128888184848a01612bb6565b8554920191600090600181811c90808316806128a557607f831692505b8583108114156128c357634e487b7160e01b85526022600452602485fd5b8080156128d757600181146128e857612915565b60ff19851688528388019550612915565b60008b81526020902060005b8581101561290d5781548a8201529084019088016128f4565b505083880195505b50939b9a5050505050505050505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161295e816017850160208801612bb6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161298f816028840160208801612bb6565b01602801949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906129ce90830184612836565b9695505050505050565b60208101600483106129fa57634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600061172c6020830184612836565b60208082526023908201527f4c414e445a3a2050757263686173652065786365656473206d617820616c6c6f6040820152621dd95960ea1b606082015260800190565b60208082526025908201527f4c414e445a3a205468652063616c6c657220697320616e6f7468657220636f6e6040820152641d1c9858dd60da1b606082015260800190565b60208082526024908201527f4c414e445a3a204156415820616d6f756e74206973206e6f74207375666669636040820152631a595b9d60e21b606082015260800190565b6020808252601e908201527f4c414e445a3a204d696e696d756d206d696e74206973203120746f6b656e0000604082015260600190565b60208082526027908201527f4c414e445a3a20507572636861736520776f756c6420657863656564204d415860408201526620535550504c5960c81b606082015260800190565b60008219821115612b7057612b70612c4f565b500190565b600082612b9257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612bb157612bb1612c4f565b500290565b60005b83811015612bd1578181015183820152602001612bb9565b838111156114505750506000910152565b600081612bf157612bf1612c4f565b506000190190565b600181811c90821680612c0d57607f821691505b60208210811415612c2e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c4857612c48612c4f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610c2757600080fdfea26469706673582212205488f056e3c2698f1ee0e5896ed1fe3134b9d45c8f1ad70f24af2dc2c2a8729564736f6c63430008070033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68747470733a2f2f6d6f6e6b65657a2d6170692e6865726f6b756170702e636f6d2f6170692f6c616e647a2f2ecdd3f25cf0daf741b4a55966d6490af031deadc0d0b8c40386cdd4c8dc44969de76445514f719465495670c3156c05c17198ba641e7b2d715aac1f5ad69086