Overview ERC721
Total Supply:
6 m721

Holders:
3
Profile Summary
Blockchain:
Sepolia (11155111)

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

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No

Created At:
Wed, 02 Oct 2024 09:17:24 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_contractURI",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      }
    ],
    "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": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "contractURI",
    "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": "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": "_to",
        "type": "address"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "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": "_uri",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      }
    ],
    "name": "setContractURI",
    "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": [],
    "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"
  }
]


Contract Creation Code
6080604052346200043b5762001c7c803803806200001d8162000475565b928339810190606081830312620004365780519060018060a01b03928383168093036200043157602091828101519160018060401b03928381116200042c57816200006a918401620004b0565b5060408201518381116200042757620000849201620004b0565b506200008f62000440565b600b81527f4d6f636b2045524337323100000000000000000000000000000000000000000083820152620000c262000440565b916004928381527f6d373231000000000000000000000000000000000000000000000000000000008582015282519082821162000412576000958654926001958685811c9516801562000407575b83861014620003f4578190601f958681116200039c575b5083908683116001146200032e578a9262000321575b505081871b916000199060031b1c19161787555b81519384116200030e5784548581811c9116801562000303575b82821014620002f057908184869594931162000290575b5080928411600114620002205750869262000213575b505081831b916000199060031b1c19161790555b8215620001fd57507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600654938360018060a01b031986161760065560405194169180a36117399081620005438239f35b60249160405191631e4fbdf760e01b8352820152fd5b9091500151388062000198565b9190859450601f1984168589528389209389905b8282106200026e575050841162000254575b505050811b019055620001ac565b015160001960f88460031b161c1916905538808062000246565b8496978193949596829397870151815501960194018796959493929162000234565b90919293508588528188208480870160051c820192848810620002e6575b9187968992969594930160051c01915b828110620002ce57505062000182565b909192939495508981550190868695949392620002be565b92508192620002ae565b602488602289634e487b7160e01b835252fd5b90607f16906200016b565b602487604188634e487b7160e01b835252fd5b909150015138806200013d565b90889350601f198316918b8052858c20928c5b878282106200037c575050841162000362575b505050811b01875562000151565b015160001960f88460031b161c1916905538808062000354565b91929395968291958786015181550195019301908a959493929162000341565b909150898052838a208680850160051c820192868610620003ea575b918a91869594930160051c01915b828110620003d657505062000127565b90919293508b8155019088849392620003c6565b92508192620003b8565b60248960228a634e487b7160e01b835252fd5b94607f169462000110565b604185634e487b7160e01b6000525260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b604051906040820182811060018060401b038211176200045f57604052565b634e487b7160e01b600052604160045260246000fd5b9060405191601f8019910116820182811060018060401b038211176200049a57604052565b634e487b7160e01b600052604160045260246000fd5b919080601f840112156200053d57825160018060401b0381116200052757602090620004e582601f19601f8401160162000475565b92818452828287010111620005225760005b8181106200050d57508260009394955001015290565b808380928801015182828701015201620004f7565b600080fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040818152600480361015610016575b600080fd5b600092833560e01c90816301ffc9a7146111105750806306fdde031461101c578063081812fc14610fdb578063095ea7b314610ef457806318160ddd14610ecd57806323b872dd14610eaf57806342842e0e14610e7f57806342966c6814610d2f57806355f804b314610bbf5780636352211e14610b8a5780636a62784214610a6b57806370a0823114610a11578063715018a6146109aa5780638da5cb5b1461097b578063938e3d7b1461080b57806395d89b4114610717578063a22cb4651461066f578063b88d4fde146105d2578063c87b56dd146102f2578063e8a3d485146101fc578063e985e9c5146101a65763f2fde38b0361001157346101a257602060031936011261019e5761012a6111d3565b90610133611385565b60018060a01b03809216928315610188575050600654826bffffffffffffffffffffffff60a01b821617600655167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b90846024925191631e4fbdf760e01b8352820152fd5b8280fd5b8280fd5b5050346101f857806003193601126101f45760ff816020936101c66111d3565b6101ce6111ed565b9060018060a01b0380911683526005875283832091168252855220541690519015158152f35b5080fd5b5080fd5b5050346102ee57816003193601126102ea578051908260075461021e8161134b565b9182855260019182811690816000146102c25750600114610262575b50505061024c8261025e9403836112e0565b519182916020835260208301906111ae565b0390f35b9450600785527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8286106102a75750505061024c82602061025e958201019461023a565b8181602092979394975483858901015201910194919061028a565b61025e97508693506020925061024c94915060ff191682840152151560051b8201019461023a565b5080fd5b5080fd5b508290346105ce57602091826003193601126105cb578290848335610316816116c9565b508151948391600854876103298261134b565b94858252888201956001938a85821691826000146105ac57505060011461053f575b50906103589103896112e0565b875115156000146105205781809387917a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000009081811015610510575b5050886d04ee2d6d415b85acef810000000080871015610501575b5050662386f26fc10000808610156104f2575b506305f5e100808610156104e3575b50612710808610156104d6575b505060648410156104c4575b60219082600a809610156104bd575b9392919061041a83820161041261040982611318565b9a519a8b6112e0565b808a52611318565b988a890199601f1901368b3750870101905b610487575b5050505093610472926104579492610466610483978a5197889551809288880190611189565b84019151809386840190611189565b010380845201826112e0565b925b519282849384528301906111ae565b0390f35b839060001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156104b85791908261042c565b610431565b01826103f3565b926002606460219204940190506103e4565b9091940493018b806103d8565b6008919295049401908c6103cb565b6010919295049401908c6103bc565b9091929504940190888d6103a9565b9195509150049285908c8061038e565b5050505090915061048392505190610537826112ae565b815292610474565b9050600888527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39088915b818310610583575050908861035892820101909161034b565b8496985080919597999a93509391935483858d01015201910188908a989795938c97959361056a565b9092915061035894935060ff19168852151560051b820101909161034b565b80fd5b5080fd5b50903461066b576080600319360112610667576105ed6111d3565b6105f56111ed565b846064359467ffffffffffffffff8611610663573660238701121561065f578501359461062d61062487611318565b955195866112e0565b858552366024878301011161065b57856106589660246020930183880137850101526044359161154b565b80f35b5080fd5b5080fd5b5080fd5b8280fd5b8280fd5b509034610713578060031936011261070f576106896111d3565b906024359182151580930361070b5760018060a01b03169283156106f65750338452600560205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b836024925191630b61174360e31b8352820152fd5b8480fd5b8280fd5b8280fd5b50503461080757816003193601126108035780519082600180549161073b8361134b565b9283865282811690816000146107db575060011461077c575b505050610766826107789403836112e0565b519182916020835260208301906111ae565b0390f35b94508085527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8286106107c0575050506107668260206107789582010194610754565b818160209297939497548385890101520191019491906107a3565b61077897508693506020925061076694915060ff191682840152151560051b82010194610754565b5080fd5b5080fd5b5082346109785761081b3661124b565b9092610825611385565b67ffffffffffffffff8211610965575061084060075461134b565b601f8111610902575b5081601f8211600114610885578293829392610879575b50508160011b916000199060031b1c1916176007555b80f35b90915001358380610860565b601f198216937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68891845b8681106108ea57508360019596106108d0575b505050811b01600755610876565b60001960f88560031b161c199101351690558380806108c2565b909260206001819286860135815501940191016108af565b7fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f830160051c81019160208410610958575b601f0160051c01905b81811061094c5750610849565b8084600192550161093f565b9150601f81929050610936565b826041602492634e487b7160e01b835252fd5b80fd5b5050346109a657816003193601126109a25760209060018060a01b03600654169051908152f35b5080fd5b5080fd5b8334610a0e5780600319360112610a0b576109c3611385565b806006546bffffffffffffffffffffffff60a01b811660065560018060a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b80fd5b509134610a68576020600319360112610a655760018060a01b03610a336111d3565b16928315610a505750806020938392526003845220549051908152f35b9060249251916322718ad960e21b8352820152fd5b80fd5b80fd5b509034610b86576020600319360112610b8257610a866111d3565b60095460001991828214610b6f576001820160095560018060a01b03809116908115610b5957828752600260205284872054168015159384610b39575b508187526003602052848720600181540190558287526002602052848720826bffffffffffffffffffffffff60a01b8254161790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8780a4610b24578280f35b9160249251916339e3563760e11b8352820152fd5b610b42846116a5565b818852600360205285882090815401905538610ac3565b60248688875191633250574960e11b8352820152fd5b602486601187634e487b7160e01b835252fd5b8280fd5b8280fd5b509134610bbc576020600319360112610bb95750610baa602092356116c9565b90519060018060a01b03168152f35b80fd5b80fd5b508234610d2c57610bcf3661124b565b9092610bd9611385565b67ffffffffffffffff8211610d195750610bf460085461134b565b601f8111610cb6575b5081601f8211600114610c39578293829392610c2d575b50508160011b916000199060031b1c1916176008555b80f35b90915001358380610c14565b601f198216937ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee391845b868110610c9e5750836001959610610c84575b505050811b01600855610c2a565b60001960f88560031b161c19910135169055838080610c76565b90926020600181928686013581550194019101610c63565b7ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c81019160208410610d0c575b601f0160051c01905b818110610d005750610bfd565b80846001925501610cf3565b9150601f81929050610cea565b826041602492634e487b7160e01b835252fd5b80fd5b50829034610e7b5760209081600319360112610e77578035918284526002815260018060a01b0391828686205416923315159081610ddb575b505050936002849583959495610dbb575b8585525282206bffffffffffffffffffffffff60a01b81541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a480f35b610dc4866116a5565b838552600381528285206000198154019055610d79565b81610e28575b5015610dee578080610d68565b93505015600014610e0d576024925191637e27328960e01b8352820152fd5b604492519163177e802f60e01b835233908301526024820152fd5b9050338414908115610e59575b8115610e43575b5087610de1565b9050848652818352339087872054161487610e3c565b905083865260058352868620338752835260ff878720541690610e35565b8280fd5b5080fd5b505034610eab57610ea890610e9336611207565b91925192610ea0846112ae565b85845261154b565b80f35b5080fd5b8334610eca57610ec7610ec136611207565b916113af565b80f35b80fd5b505034610ef05781600319360112610eec576020906009549051908152f35b5080fd5b5080fd5b509034610fd75780600319360112610fd357610f0e6111d3565b91602435610f1b816116c9565b33151580610fc1575b80610f9a575b610f8357819060018060a01b03809616958691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258880a484526020528220906bffffffffffffffffffffffff60a01b82541617905580f35b60248385519063a9fbf51f60e01b82523390820152fd5b5060018060a01b0381168652600560205283862033875260205260ff848720541615610f2a565b503360018060a01b0382161415610f24565b8280fd5b8280fd5b503461101857602060031936011261101457918260209335610ffc816116c9565b50825283528160018060a01b03912054169051908152f35b8280fd5b8280fd5b50503461110c57816003193601126111085780519082805461103d8161134b565b9182855260019182811690816000146110e05750600114611081575b50505061106b8261107d9403836112e0565b519182916020835260208301906111ae565b0390f35b80809650527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8286106110c55750505061106b82602061107d9582010194611059565b818160209297939497548385890101520191019491906110a8565b61107d97508693506020925061106b94915060ff191682840152151560051b82010194611059565b5080fd5b5080fd5b92505034611185576020600319360112611181573563ffffffff60e01b811680910361117d57602092506380ac58cd60e01b811490811561116b575b811561115a575b5015158152f35b90506301ffc9a760e01b1438611153565b9050635b5e139f60e01b81149061114c565b8280fd5b8280fd5b8280fd5b60005b83811061119d575050906000910152565b80602091830151818501520161118c565b906020916111c781518092818552858086019101611189565b601f8019910116010190565b6004359060018060a01b03821682036111e857565b600080fd5b6024359060018060a01b038216820361120257565b600080fd5b6060906003190112611246576004359060018060a01b039182811681036112415791602435908116810361123c579060443590565b600080fd5b600080fd5b600080fd5b9060206003198301126112a95760043567ffffffffffffffff928382116112a4578060238301121561129f57816004013593841161129a5760248483010111611295576024019190565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6020810190811067ffffffffffffffff8211176112ca57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761130257604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161133557602090601f80199101160190565b634e487b7160e01b600052604160045260246000fd5b90600182811c9216801561137b575b602083101461136557565b634e487b7160e01b600052602260045260246000fd5b91607f169161135a565b60018060a01b0360065416330361139857565b602460405163118cdaa760e01b8152336004820152fd5b909160018060a01b0380931692831561153357600092828452826020956002875260409684888820541696879133151580611492575b509060027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284611472575b858352600381528b83206001815401905586835252898120846bffffffffffffffffffffffff60a01b82541617905580a416928383036114515750505050565b6064945051926364283d7b60e01b8452600484015260248301526044820152fd5b61147b876116a5565b848352600381528b83206000198154019055611411565b919394509150806114eb575b156114ae578592918791386113e5565b878688156000146114cf576024915190637e27328960e01b82526004820152fd5b604491519063177e802f60e01b82523360048301526024820152fd5b503387148015611517575b8015611502575b61149e565b508582526004815233858984205416146114fd565b5086825260058152878220338352815260ff88832054166114f6565b6024604051633250574960e11b815260006004820152fd5b6115568383836113af565b813b611563575b50505050565b60018060a096939495961b038093169360405193630a85bd0160e11b92838652336004870152166024850152604484015260806064840152826115ac60209660848301906111ae565b039285816000958187895af18091859261165e575b5015600014611629575050503d600014611621573d6115df81611318565b906115ed60405192836112e0565b81528091843d92013e5b805192831560001461161b5760248360405190633250574960e11b82526004820152fd5b90915001fd5b5060606115f7565b919450915063ffffffff60e01b160361164657503880808061155d565b60249060405190633250574960e11b82526004820152fd5b9091508681813d831161169e575b61167681836112e0565b8101031261169a575163ffffffff60e01b811681036116965790386115c1565b8480fd5b8480fd5b503d61166c565b600052600460205260406000206bffffffffffffffffffffffff60a01b8154169055565b80600052600260205260018060a01b03604060002054169081156116eb575090565b60249060405190637e27328960e01b82526004820152fdfea26469706673582212202cbed164d8e02d98846cfda95879ad91f2830290aec50c09d38ebdeee606ba5264736f6c63430008140033000000000000000000000000c9a6c261766704a90fdc92fc3b530ddedfb0b7b90000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000