Overview ERC721
Total Supply:
0 DeBankChainGensis

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

Contract Source Code Verified (Exact Match)
Contract Name:
MyNFT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No

Created At:
Sun, 23 Jun 2024 08:54:01 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "ERC721IncorrectOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ERC721InsufficientApproval",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC721InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "ERC721InvalidOperator",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "ERC721InvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC721InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC721InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ERC721NonexistentToken",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "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": "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"
  },
  {
    "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": [],
    "name": "disableMinting",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableMinting",
    "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": "",
        "type": "address"
      }
    ],
    "name": "hasMinted",
    "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": [],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintingEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nextTokenId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_baseURI",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "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": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "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"
  }
]


Contract Creation Code
60806040523480156200001157600080fd5b50336040518060400160405280601181526020017f446542616e6b436861696e47656e7369730000000000000000000000000000008152506040518060400160405280601181526020017f446542616e6b436861696e47656e7369730000000000000000000000000000008152508160009081620000909190620004b6565b508060019081620000a29190620004b6565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001119190620005e2565b60405180910390fd5b6200012b816200017660201b60201c565b5060016007819055506000600860006101000a81548160ff02191690831515021790555060405180602001604052806000815250600a90816200016f9190620004b6565b50620005ff565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002be57607f821691505b602082108103620002d457620002d362000276565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200033e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ff565b6200034a8683620002ff565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000397620003916200038b8462000362565b6200036c565b62000362565b9050919050565b6000819050919050565b620003b38362000376565b620003cb620003c2826200039e565b8484546200030c565b825550505050565b600090565b620003e2620003d3565b620003ef818484620003a8565b505050565b5b8181101562000417576200040b600082620003d8565b600181019050620003f5565b5050565b601f82111562000466576200043081620002da565b6200043b84620002ef565b810160208510156200044b578190505b620004636200045a85620002ef565b830182620003f4565b50505b505050565b600082821c905092915050565b60006200048b600019846008026200046b565b1980831691505092915050565b6000620004a6838362000478565b9150826002028217905092915050565b620004c1826200023c565b67ffffffffffffffff811115620004dd57620004dc62000247565b5b620004e98254620002a5565b620004f68282856200041b565b600060209050601f8311600181146200052e576000841562000519578287015190505b62000525858262000498565b86555062000595565b601f1984166200053e86620002da565b60005b82811015620005685784890151825560018201915060208501945060208101905062000541565b8683101562000588578489015162000584601f89168262000478565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005ca826200059d565b9050919050565b620005dc81620005bd565b82525050565b6000602082019050620005f96000830184620005d1565b92915050565b612924806200060f6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a22cb4651161007c578063a22cb46514610366578063b88d4fde14610382578063c87b56dd1461039e578063e797ec1b146103ce578063e985e9c5146103d8578063f2fde38b146104085761014d565b8063715018a6146102da57806375794a3c146102e45780637e5cd5c1146103025780638da5cb5b1461030c57806395d89b411461032a5780639fd6db12146103485761014d565b806323b872dd1161011557806323b872dd146101f657806338e21cce1461021257806342842e0e1461024257806355f804b31461025e5780636352211e1461027a57806370a08231146102aa5761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d05780631249c58b146101ec575b600080fd5b61016c60048036038101906101679190611c25565b610424565b6040516101799190611c6d565b60405180910390f35b61018a610506565b6040516101979190611d18565b60405180910390f35b6101ba60048036038101906101b59190611d70565b610598565b6040516101c79190611dde565b60405180910390f35b6101ea60048036038101906101e59190611e25565b6105b4565b005b6101f46105ca565b005b610210600480360381019061020b9190611e65565b61072a565b005b61022c60048036038101906102279190611eb8565b61082c565b6040516102399190611c6d565b60405180910390f35b61025c60048036038101906102579190611e65565b61084c565b005b6102786004803603810190610273919061201a565b61086c565b005b610294600480360381019061028f9190611d70565b610887565b6040516102a19190611dde565b60405180910390f35b6102c460048036038101906102bf9190611eb8565b610899565b6040516102d19190612072565b60405180910390f35b6102e2610953565b005b6102ec610967565b6040516102f99190612072565b60405180910390f35b61030a61096d565b005b610314610992565b6040516103219190611dde565b60405180910390f35b6103326109bc565b60405161033f9190611d18565b60405180910390f35b610350610a4e565b60405161035d9190611c6d565b60405180910390f35b610380600480360381019061037b91906120b9565b610a61565b005b61039c6004803603810190610397919061219a565b610a77565b005b6103b860048036038101906103b39190611d70565b610a94565b6040516103c59190611d18565b60405180910390f35b6103d6610b37565b005b6103f260048036038101906103ed919061221d565b610b5c565b6040516103ff9190611c6d565b60405180910390f35b610422600480360381019061041d9190611eb8565b610bf0565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104ef57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104ff57506104fe82610c76565b5b9050919050565b6060600080546105159061228c565b80601f01602080910402602001604051908101604052809291908181526020018280546105419061228c565b801561058e5780601f106105635761010080835404028352916020019161058e565b820191906000526020600020905b81548152906001019060200180831161057157829003601f168201915b5050505050905090565b60006105a382610ce0565b506105ad82610d68565b9050919050565b6105c682826105c1610da5565b610dad565b5050565b600860009054906101000a900460ff16610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090612309565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90612375565b60405180910390fd5b60006007549050600760008154809291906106c0906123c4565b91905055506106cf3382610dbf565b6001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361079c5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107939190611dde565b60405180910390fd5b60006107b083836107ab610da5565b610ddd565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610826578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161081d9392919061240c565b60405180910390fd5b50505050565b60096020528060005260406000206000915054906101000a900460ff1681565b61086783838360405180602001604052806000815250610a77565b505050565b610874610ff7565b80600a908161088391906125ef565b5050565b600061089282610ce0565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361090c5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109039190611dde565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61095b610ff7565b610965600061107e565b565b60075481565b610975610ff7565b6000600860006101000a81548160ff021916908315150217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546109cb9061228c565b80601f01602080910402602001604051908101604052809291908181526020018280546109f79061228c565b8015610a445780601f10610a1957610100808354040283529160200191610a44565b820191906000526020600020905b815481529060010190602001808311610a2757829003601f168201915b5050505050905090565b600860009054906101000a900460ff1681565b610a73610a6c610da5565b8383611144565b5050565b610a8284848461072a565b610a8e848484846112b3565b50505050565b60606007548210610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad190612733565b60405180910390fd5b6000610ae461146a565b90506000815111610b045760405180602001604052806000815250610b2f565b80610b0e846114fc565b604051602001610b1f92919061278f565b6040516020818303038152906040525b915050919050565b610b3f610ff7565b6001600860006101000a81548160ff021916908315150217905550565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610bf8610ff7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c6a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c619190611dde565b60405180910390fd5b610c738161107e565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600080610cec836115ca565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d5f57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610d569190612072565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610dba8383836001611607565b505050565b610dd98282604051806020016040528060008152506117cc565b5050565b600080610de9846115ca565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610e2b57610e2a8184866117e8565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ebc57610e6d600085600080611607565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610f3f576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b610fff610da5565b73ffffffffffffffffffffffffffffffffffffffff1661101d610992565b73ffffffffffffffffffffffffffffffffffffffff161461107c57611040610da5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016110739190611dde565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111b557816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016111ac9190611dde565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112a69190611c6d565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611464578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026112f7610da5565b8685856040518563ffffffff1660e01b81526004016113199493929190612808565b6020604051808303816000875af192505050801561135557506040513d601f19601f820116820180604052508101906113529190612869565b60015b6113d9573d8060008114611385576040519150601f19603f3d011682016040523d82523d6000602084013e61138a565b606091505b5060008151036113d157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016113c89190611dde565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461146257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016114599190611dde565b60405180910390fd5b505b50505050565b6060600a80546114799061228c565b80601f01602080910402602001604051908101604052809291908181526020018280546114a59061228c565b80156114f25780601f106114c7576101008083540402835291602001916114f2565b820191906000526020600020905b8154815290600101906020018083116114d557829003601f168201915b5050505050905090565b60606000600161150b846118ac565b01905060008167ffffffffffffffff81111561152a57611529611eef565b5b6040519080825280601f01601f19166020018201604052801561155c5781602001600182028036833780820191505090505b509050600082602001820190505b6001156115bf578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816115b3576115b2612896565b5b0494506000850361156a575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806116405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561177457600061165084610ce0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116bb57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156116ce57506116cc8184610b5c565b155b1561171057826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016117079190611dde565b60405180910390fd5b811561177257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6117d683836119ff565b6117e360008484846112b3565b505050565b6117f3838383611af8565b6118a757600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361186857806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161185f9190612072565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161189e9291906128c5565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061190a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611900576118ff612896565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611947576d04ee2d6d415b85acef8100000000838161193d5761193c612896565b5b0492506020810190505b662386f26fc10000831061197657662386f26fc10000838161196c5761196b612896565b5b0492506010810190505b6305f5e100831061199f576305f5e100838161199557611994612896565b5b0492506008810190505b61271083106119c45761271083816119ba576119b9612896565b5b0492506004810190505b606483106119e757606483816119dd576119dc612896565b5b0492506002810190505b600a83106119f6576001810190505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a715760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a689190611dde565b60405180910390fd5b6000611a7f83836000610ddd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611af35760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611aea9190611dde565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b715750611b708484610b5c565b5b80611baf57508273ffffffffffffffffffffffffffffffffffffffff16611b9783610d68565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c0281611bcd565b8114611c0d57600080fd5b50565b600081359050611c1f81611bf9565b92915050565b600060208284031215611c3b57611c3a611bc3565b5b6000611c4984828501611c10565b91505092915050565b60008115159050919050565b611c6781611c52565b82525050565b6000602082019050611c826000830184611c5e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc2578082015181840152602081019050611ca7565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cea82611c88565b611cf48185611c93565b9350611d04818560208601611ca4565b611d0d81611cce565b840191505092915050565b60006020820190508181036000830152611d328184611cdf565b905092915050565b6000819050919050565b611d4d81611d3a565b8114611d5857600080fd5b50565b600081359050611d6a81611d44565b92915050565b600060208284031215611d8657611d85611bc3565b5b6000611d9484828501611d5b565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dc882611d9d565b9050919050565b611dd881611dbd565b82525050565b6000602082019050611df36000830184611dcf565b92915050565b611e0281611dbd565b8114611e0d57600080fd5b50565b600081359050611e1f81611df9565b92915050565b60008060408385031215611e3c57611e3b611bc3565b5b6000611e4a85828601611e10565b9250506020611e5b85828601611d5b565b9150509250929050565b600080600060608486031215611e7e57611e7d611bc3565b5b6000611e8c86828701611e10565b9350506020611e9d86828701611e10565b9250506040611eae86828701611d5b565b9150509250925092565b600060208284031215611ece57611ecd611bc3565b5b6000611edc84828501611e10565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f2782611cce565b810181811067ffffffffffffffff82111715611f4657611f45611eef565b5b80604052505050565b6000611f59611bb9565b9050611f658282611f1e565b919050565b600067ffffffffffffffff821115611f8557611f84611eef565b5b611f8e82611cce565b9050602081019050919050565b82818337600083830152505050565b6000611fbd611fb884611f6a565b611f4f565b905082815260208101848484011115611fd957611fd8611eea565b5b611fe4848285611f9b565b509392505050565b600082601f83011261200157612000611ee5565b5b8135612011848260208601611faa565b91505092915050565b6000602082840312156120305761202f611bc3565b5b600082013567ffffffffffffffff81111561204e5761204d611bc8565b5b61205a84828501611fec565b91505092915050565b61206c81611d3a565b82525050565b60006020820190506120876000830184612063565b92915050565b61209681611c52565b81146120a157600080fd5b50565b6000813590506120b38161208d565b92915050565b600080604083850312156120d0576120cf611bc3565b5b60006120de85828601611e10565b92505060206120ef858286016120a4565b9150509250929050565b600067ffffffffffffffff82111561211457612113611eef565b5b61211d82611cce565b9050602081019050919050565b600061213d612138846120f9565b611f4f565b90508281526020810184848401111561215957612158611eea565b5b612164848285611f9b565b509392505050565b600082601f83011261218157612180611ee5565b5b813561219184826020860161212a565b91505092915050565b600080600080608085870312156121b4576121b3611bc3565b5b60006121c287828801611e10565b94505060206121d387828801611e10565b93505060406121e487828801611d5b565b925050606085013567ffffffffffffffff81111561220557612204611bc8565b5b6122118782880161216c565b91505092959194509250565b6000806040838503121561223457612233611bc3565b5b600061224285828601611e10565b925050602061225385828601611e10565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122a457607f821691505b6020821081036122b7576122b661225d565b5b50919050565b7f4d696e74696e672069732063757272656e746c792064697361626c6564000000600082015250565b60006122f3601d83611c93565b91506122fe826122bd565b602082019050919050565b60006020820190508181036000830152612322816122e6565b9050919050565b7f596f75206861766520616c7265616479206d696e74656420616e204e46540000600082015250565b600061235f601e83611c93565b915061236a82612329565b602082019050919050565b6000602082019050818103600083015261238e81612352565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123cf82611d3a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361240157612400612395565b5b600182019050919050565b60006060820190506124216000830186611dcf565b61242e6020830185612063565b61243b6040830184611dcf565b949350505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026124a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612468565b6124af8683612468565b95508019841693508086168417925050509392505050565b6000819050919050565b60006124ec6124e76124e284611d3a565b6124c7565b611d3a565b9050919050565b6000819050919050565b612506836124d1565b61251a612512826124f3565b848454612475565b825550505050565b600090565b61252f612522565b61253a8184846124fd565b505050565b5b8181101561255e57612553600082612527565b600181019050612540565b5050565b601f8211156125a35761257481612443565b61257d84612458565b8101602085101561258c578190505b6125a061259885612458565b83018261253f565b50505b505050565b600082821c905092915050565b60006125c6600019846008026125a8565b1980831691505092915050565b60006125df83836125b5565b9150826002028217905092915050565b6125f882611c88565b67ffffffffffffffff81111561261157612610611eef565b5b61261b825461228c565b612626828285612562565b600060209050601f8311600181146126595760008415612647578287015190505b61265185826125d3565b8655506126b9565b601f19841661266786612443565b60005b8281101561268f5784890151825560018201915060208501945060208101905061266a565b868310156126ac57848901516126a8601f8916826125b5565b8355505b6001600288020188555050505b505050505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061271d602f83611c93565b9150612728826126c1565b604082019050919050565b6000602082019050818103600083015261274c81612710565b9050919050565b600081905092915050565b600061276982611c88565b6127738185612753565b9350612783818560208601611ca4565b80840191505092915050565b600061279b828561275e565b91506127a7828461275e565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b60006127da826127b3565b6127e481856127be565b93506127f4818560208601611ca4565b6127fd81611cce565b840191505092915050565b600060808201905061281d6000830187611dcf565b61282a6020830186611dcf565b6128376040830185612063565b818103606083015261284981846127cf565b905095945050505050565b60008151905061286381611bf9565b92915050565b60006020828403121561287f5761287e611bc3565b5b600061288d84828501612854565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006040820190506128da6000830185611dcf565b6128e76020830184612063565b939250505056fea2646970667358221220efd4ad02001dfcb6eed9e9da6c7d4abf7bd1058fbf340771dcf5e9842b638db364736f6c63430008140033