Overview ERC721
Total Supply:
491 COW

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

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

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No

Created At:
Thu, 15 Sep 2022 01:26:29 GMT
Cow.sol
Cow.sol
Cow.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name_",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol_",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_pass",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "multisig",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "id",
        "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": "id",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "_baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "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": "baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "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": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "ownerMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pass",
    "outputs": [
      {
        "internalType": "contract Pass",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "powerLevelOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "redeem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "royaltyAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "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": "id",
        "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": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "setRoyalties",
    "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": "id",
        "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": "id",
        "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
60806040523480156200001157600080fd5b5060405162003e3538038062003e358339818101604052810190620000379190620004ae565b848481600090816200004a9190620007de565b5080600190816200005c9190620007de565b5050506200007f62000073620000f160201b60201c565b620000f960201b60201c565b8260099081620000909190620007de565b5081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000e6816102ee620001bf60201b60201c565b505050505062000948565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61271081111562000207576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fe9062000926565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200031582620002ca565b810181811067ffffffffffffffff82111715620003375762000336620002db565b5b80604052505050565b60006200034c620002ac565b90506200035a82826200030a565b919050565b600067ffffffffffffffff8211156200037d576200037c620002db565b5b6200038882620002ca565b9050602081019050919050565b60005b83811015620003b557808201518184015260208101905062000398565b83811115620003c5576000848401525b50505050565b6000620003e2620003dc846200035f565b62000340565b905082815260208101848484011115620004015762000400620002c5565b5b6200040e84828562000395565b509392505050565b600082601f8301126200042e576200042d620002c0565b5b815162000440848260208601620003cb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004768262000449565b9050919050565b620004888162000469565b81146200049457600080fd5b50565b600081519050620004a8816200047d565b92915050565b600080600080600060a08688031215620004cd57620004cc620002b6565b5b600086015167ffffffffffffffff811115620004ee57620004ed620002bb565b5b620004fc8882890162000416565b955050602086015167ffffffffffffffff81111562000520576200051f620002bb565b5b6200052e8882890162000416565b945050604086015167ffffffffffffffff811115620005525762000551620002bb565b5b620005608882890162000416565b9350506060620005738882890162000497565b9250506080620005868882890162000497565b9150509295509295909350565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005e657607f821691505b602082108103620005fc57620005fb6200059e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000627565b62000672868362000627565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006bf620006b9620006b3846200068a565b62000694565b6200068a565b9050919050565b6000819050919050565b620006db836200069e565b620006f3620006ea82620006c6565b84845462000634565b825550505050565b600090565b6200070a620006fb565b62000717818484620006d0565b505050565b5b818110156200073f576200073360008262000700565b6001810190506200071d565b5050565b601f8211156200078e57620007588162000602565b620007638462000617565b8101602085101562000773578190505b6200078b620007828562000617565b8301826200071c565b50505b505050565b600082821c905092915050565b6000620007b36000198460080262000793565b1980831691505092915050565b6000620007ce8383620007a0565b9150826002028217905092915050565b620007e98262000593565b67ffffffffffffffff811115620008055762000804620002db565b5b620008118254620005cd565b6200081e82828562000743565b600060209050601f83116001811462000856576000841562000841578287015190505b6200084d8582620007c0565b865550620008bd565b601f198416620008668662000602565b60005b82811015620008905784890151825560018201915060208501945060208101905062000869565b86831015620008b05784890151620008ac601f891682620007a0565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b60006200090e601a83620008c5565b91506200091b82620008d6565b602082019050919050565b600060208201905081810360008301526200094181620008ff565b9050919050565b6134dd80620009586000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a7a1ed7211610097578063db006a7511610071578063db006a7514610484578063e985e9c5146104a0578063f19e75d4146104d0578063f2fde38b146104ec5761018e565b8063a7a1ed721461041a578063b88d4fde14610438578063c87b56dd146104545761018e565b8063715018a61461037e578063743976a0146103885780638c7ea24b146103a65780638da5cb5b146103c257806395d89b41146103e0578063a22cb465146103fe5761018e565b806323b872dd1161014b57806355f804b31161012557806355f804b3146102e45780636352211e146103005780636c0360eb1461033057806370a082311461034e5761018e565b806323b872dd1461027b5780632a55205a1461029757806342842e0e146102c85761018e565b806301ffc9a714610193578063064c5082146101c357806306fdde03146101f3578063081812fc14610211578063095ea7b31461024157806318160ddd1461025d575b600080fd5b6101ad60048036038101906101a89190611fe0565b610508565b6040516101ba9190612028565b60405180910390f35b6101dd60048036038101906101d89190612079565b61051a565b6040516101ea91906120b5565b60405180910390f35b6101fb610532565b6040516102089190612169565b60405180910390f35b61022b60048036038101906102269190612079565b6105c0565b60405161023891906121cc565b60405180910390f35b61025b60048036038101906102569190612213565b6105f3565b005b6102656107dc565b60405161027291906120b5565b60405180910390f35b61029560048036038101906102909190612253565b6107ed565b005b6102b160048036038101906102ac91906122a6565b610bec565b6040516102bf9291906122e6565b60405180910390f35b6102e260048036038101906102dd9190612253565b610cac565b005b6102fe60048036038101906102f99190612444565b610de4565b005b61031a60048036038101906103159190612079565b610dff565b60405161032791906121cc565b60405180910390f35b610338610eaa565b6040516103459190612169565b60405180910390f35b6103686004803603810190610363919061248d565b610f3c565b60405161037591906120b5565b60405180910390f35b610386610ff3565b005b610390611007565b60405161039d9190612169565b60405180910390f35b6103c060048036038101906103bb9190612213565b611095565b005b6103ca6110ab565b6040516103d791906121cc565b60405180910390f35b6103e86110d5565b6040516103f59190612169565b60405180910390f35b610418600480360381019061041391906124e6565b611163565b005b610422611260565b60405161042f9190612585565b60405180910390f35b610452600480360381019061044d9190612600565b611286565b005b61046e60048036038101906104699190612079565b6113c4565b60405161047b9190612169565b60405180910390f35b61049e60048036038101906104999190612079565b611448565b005b6104ba60048036038101906104b59190612688565b6115dd565b6040516104c79190612028565b60405180910390f35b6104ea60048036038101906104e59190612079565b61160c565b005b6105066004803603810190610501919061248d565b611637565b005b6000610513826116ba565b9050919050565b600b6020528060005260406000206000915090505481565b6000805461053f906126f7565b80601f016020809104026020016040519081016040528092919081815260200182805461056b906126f7565b80156105b85780601f1061058d576101008083540402835291602001916105b8565b820191906000526020600020905b81548152906001019060200180831161059b57829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106eb5750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190612774565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006107e86008611734565b905090565b6002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461088e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610885906127e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f49061284c565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109bd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610a2657506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612774565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600080600060066040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff1685610c98919061289b565b610ca29190612924565b9150509250929050565b610cb78383836107ed565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610da0575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610d3c9392919061298c565b6020604051808303816000875af1158015610d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7f91906129eb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612a64565b60405180910390fd5b505050565b610dec611742565b8060099081610dfb9190612c26565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90612d44565b60405180910390fd5b919050565b606060098054610eb9906126f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906126f7565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390612db0565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ffb611742565b61100560006117c0565b565b60098054611014906126f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611040906126f7565b801561108d5780601f106110625761010080835404028352916020019161108d565b820191906000526020600020905b81548152906001019060200180831161107057829003601f168201915b505050505081565b61109d611742565b6110a78282611886565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600180546110e2906126f7565b80601f016020809104026020016040519081016040528092919081815260200182805461110e906126f7565b801561115b5780601f106111305761010080835404028352916020019161115b565b820191906000526020600020905b81548152906001019060200180831161113e57829003601f168201915b505050505081565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112549190612028565b60405180910390a35050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112918585856107ed565b60008473ffffffffffffffffffffffffffffffffffffffff163b148061137e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b815260040161131a959493929190612dfd565b6020604051808303816000875af1158015611339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135d91906129eb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612a64565b60405180910390fd5b5050505050565b6060816113cf6107dc565b1015611410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140790612e97565b60405180910390fd5b611418610eaa565b61142183611970565b604051602001611432929190612ef3565b6040516020818303038152906040529050919050565b80600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3360036040518363ffffffff1660e01b81526004016114a6929190612f52565b602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190612f90565b1015611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90613009565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124d91e5336003846040518463ffffffff1660e01b815260040161158893929190613029565b600060405180830381600087803b1580156115a257600080fd5b505af11580156115b6573d6000803e3d6000fd5b5050505060005b818110156115d9576115ce33611ad0565b8060010190506115bd565b5050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b611614611742565b60005b818110156116335761162833611ad0565b806001019050611617565b5050565b61163f611742565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a5906130d2565b60405180910390fd5b6116b7816117c0565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061172d575061172c82611b15565b5b9050919050565b600081600001549050919050565b61174a611b7f565b73ffffffffffffffffffffffffffffffffffffffff166117686110ab565b73ffffffffffffffffffffffffffffffffffffffff16146117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b59061313e565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6127108111156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c2906131aa565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6060600082036119b7576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611acb565b600082905060005b600082146119e95780806119d2906131ca565b915050600a826119e29190612924565b91506119bf565b60008167ffffffffffffffff811115611a0557611a04612319565b5b6040519080825280601f01601f191660200182016040528015611a375781602001600182028036833780820191505090505b5090505b60008514611ac457600182611a509190613212565b9150600a85611a5f9190613246565b6030611a6b9190613277565b60f81b818381518110611a8157611a806132cd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611abd9190612924565b9450611a3b565b8093505050505b919050565b611ada6008611b87565b6000611ae66008611734565b9050611af0611b9d565b600b600083815260200190815260200160002081905550611b118282611c2b565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6001816000016000828254019250508190555050565b60008033325a42434340606443611bb49190613212565b40604051602001611bcb9796959493929190613390565b60405160208183030381529060405280519060200120604051602001611bf19190613420565b6040516020818303038152906040528051906020012060001c90506001600482611c1b9190613246565b611c259190613277565b91505090565b611c358282611d62565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480611d1f575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a02336000856040518463ffffffff1660e01b8152600401611cbb9392919061298c565b6020604051808303816000875af1158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe91906129eb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5590612a64565b60405180910390fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc89061284c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613487565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fbd81611f88565b8114611fc857600080fd5b50565b600081359050611fda81611fb4565b92915050565b600060208284031215611ff657611ff5611f7e565b5b600061200484828501611fcb565b91505092915050565b60008115159050919050565b6120228161200d565b82525050565b600060208201905061203d6000830184612019565b92915050565b6000819050919050565b61205681612043565b811461206157600080fd5b50565b6000813590506120738161204d565b92915050565b60006020828403121561208f5761208e611f7e565b5b600061209d84828501612064565b91505092915050565b6120af81612043565b82525050565b60006020820190506120ca60008301846120a6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210a5780820151818401526020810190506120ef565b83811115612119576000848401525b50505050565b6000601f19601f8301169050919050565b600061213b826120d0565b61214581856120db565b93506121558185602086016120ec565b61215e8161211f565b840191505092915050565b600060208201905081810360008301526121838184612130565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b68261218b565b9050919050565b6121c6816121ab565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6121f0816121ab565b81146121fb57600080fd5b50565b60008135905061220d816121e7565b92915050565b6000806040838503121561222a57612229611f7e565b5b6000612238858286016121fe565b925050602061224985828601612064565b9150509250929050565b60008060006060848603121561226c5761226b611f7e565b5b600061227a868287016121fe565b935050602061228b868287016121fe565b925050604061229c86828701612064565b9150509250925092565b600080604083850312156122bd576122bc611f7e565b5b60006122cb85828601612064565b92505060206122dc85828601612064565b9150509250929050565b60006040820190506122fb60008301856121bd565b61230860208301846120a6565b9392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123518261211f565b810181811067ffffffffffffffff821117156123705761236f612319565b5b80604052505050565b6000612383611f74565b905061238f8282612348565b919050565b600067ffffffffffffffff8211156123af576123ae612319565b5b6123b88261211f565b9050602081019050919050565b82818337600083830152505050565b60006123e76123e284612394565b612379565b90508281526020810184848401111561240357612402612314565b5b61240e8482856123c5565b509392505050565b600082601f83011261242b5761242a61230f565b5b813561243b8482602086016123d4565b91505092915050565b60006020828403121561245a57612459611f7e565b5b600082013567ffffffffffffffff81111561247857612477611f83565b5b61248484828501612416565b91505092915050565b6000602082840312156124a3576124a2611f7e565b5b60006124b1848285016121fe565b91505092915050565b6124c38161200d565b81146124ce57600080fd5b50565b6000813590506124e0816124ba565b92915050565b600080604083850312156124fd576124fc611f7e565b5b600061250b858286016121fe565b925050602061251c858286016124d1565b9150509250929050565b6000819050919050565b600061254b6125466125418461218b565b612526565b61218b565b9050919050565b600061255d82612530565b9050919050565b600061256f82612552565b9050919050565b61257f81612564565b82525050565b600060208201905061259a6000830184612576565b92915050565b600080fd5b600080fd5b60008083601f8401126125c0576125bf61230f565b5b8235905067ffffffffffffffff8111156125dd576125dc6125a0565b5b6020830191508360018202830111156125f9576125f86125a5565b5b9250929050565b60008060008060006080868803121561261c5761261b611f7e565b5b600061262a888289016121fe565b955050602061263b888289016121fe565b945050604061264c88828901612064565b935050606086013567ffffffffffffffff81111561266d5761266c611f83565b5b612679888289016125aa565b92509250509295509295909350565b6000806040838503121561269f5761269e611f7e565b5b60006126ad858286016121fe565b92505060206126be858286016121fe565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061270f57607f821691505b602082108103612722576127216126c8565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b600061275e600e836120db565b915061276982612728565b602082019050919050565b6000602082019050818103600083015261278d81612751565b9050919050565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b60006127ca600a836120db565b91506127d582612794565b602082019050919050565b600060208201905081810360008301526127f9816127bd565b9050919050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b60006128366011836120db565b915061284182612800565b602082019050919050565b6000602082019050818103600083015261286581612829565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128a682612043565b91506128b183612043565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128ea576128e961286c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061292f82612043565b915061293a83612043565b92508261294a576129496128f5565b5b828204905092915050565b600082825260208201905092915050565b50565b6000612976600083612955565b915061298182612966565b600082019050919050565b60006080820190506129a160008301866121bd565b6129ae60208301856121bd565b6129bb60408301846120a6565b81810360608301526129cc81612969565b9050949350505050565b6000815190506129e581611fb4565b92915050565b600060208284031215612a0157612a00611f7e565b5b6000612a0f848285016129d6565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000612a4e6010836120db565b9150612a5982612a18565b602082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612ae67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612aa9565b612af08683612aa9565b95508019841693508086168417925050509392505050565b6000612b23612b1e612b1984612043565b612526565b612043565b9050919050565b6000819050919050565b612b3d83612b08565b612b51612b4982612b2a565b848454612ab6565b825550505050565b600090565b612b66612b59565b612b71818484612b34565b505050565b5b81811015612b9557612b8a600082612b5e565b600181019050612b77565b5050565b601f821115612bda57612bab81612a84565b612bb484612a99565b81016020851015612bc3578190505b612bd7612bcf85612a99565b830182612b76565b50505b505050565b600082821c905092915050565b6000612bfd60001984600802612bdf565b1980831691505092915050565b6000612c168383612bec565b9150826002028217905092915050565b612c2f826120d0565b67ffffffffffffffff811115612c4857612c47612319565b5b612c5282546126f7565b612c5d828285612b99565b600060209050601f831160018114612c905760008415612c7e578287015190505b612c888582612c0a565b865550612cf0565b601f198416612c9e86612a84565b60005b82811015612cc657848901518255600182019150602085019450602081019050612ca1565b86831015612ce35784890151612cdf601f891682612bec565b8355505b6001600288020188555050505b505050505050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000612d2e600a836120db565b9150612d3982612cf8565b602082019050919050565b60006020820190508181036000830152612d5d81612d21565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000612d9a600c836120db565b9150612da582612d64565b602082019050919050565b60006020820190508181036000830152612dc981612d8d565b9050919050565b6000612ddc8385612955565b9350612de98385846123c5565b612df28361211f565b840190509392505050565b6000608082019050612e1260008301886121bd565b612e1f60208301876121bd565b612e2c60408301866120a6565b8181036060830152612e3f818486612dd0565b90509695505050505050565b7f5552493a206e6f6e6578697374656e7420746f6b656e00000000000000000000600082015250565b6000612e816016836120db565b9150612e8c82612e4b565b602082019050919050565b60006020820190508181036000830152612eb081612e74565b9050919050565b600081905092915050565b6000612ecd826120d0565b612ed78185612eb7565b9350612ee78185602086016120ec565b80840191505092915050565b6000612eff8285612ec2565b9150612f0b8284612ec2565b91508190509392505050565b6000819050919050565b6000612f3c612f37612f3284612f17565b612526565b612043565b9050919050565b612f4c81612f21565b82525050565b6000604082019050612f6760008301856121bd565b612f746020830184612f43565b9392505050565b600081519050612f8a8161204d565b92915050565b600060208284031215612fa657612fa5611f7e565b5b6000612fb484828501612f7b565b91505092915050565b7f52656465656d3a206e6f7420656e6f7567682070617373657300000000000000600082015250565b6000612ff36019836120db565b9150612ffe82612fbd565b602082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b600060608201905061303e60008301866121bd565b61304b6020830185612f43565b61305860408301846120a6565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130bc6026836120db565b91506130c782613060565b604082019050919050565b600060208201905081810360008301526130eb816130af565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131286020836120db565b9150613133826130f2565b602082019050919050565b600060208201905081810360008301526131578161311b565b9050919050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b6000613194601a836120db565b915061319f8261315e565b602082019050919050565b600060208201905081810360008301526131c381613187565b9050919050565b60006131d582612043565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132075761320661286c565b5b600182019050919050565b600061321d82612043565b915061322883612043565b92508282101561323b5761323a61286c565b5b828203905092915050565b600061325182612043565b915061325c83612043565b92508261326c5761326b6128f5565b5b828206905092915050565b600061328282612043565b915061328d83612043565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132c2576132c161286c565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160601b9050919050565b6000613314826132fc565b9050919050565b600061332682613309565b9050919050565b61333e613339826121ab565b61331b565b82525050565b6000819050919050565b61335f61335a82612043565b613344565b82525050565b6000819050919050565b6000819050919050565b61338a61338582613365565b61336f565b82525050565b600061339c828a61332d565b6014820191506133ac828961332d565b6014820191506133bc828861334e565b6020820191506133cc828761334e565b6020820191506133dc828661334e565b6020820191506133ec8285613379565b6020820191506133fc8284613379565b60208201915081905098975050505050505050565b61341a81613365565b82525050565b60006020820190506134356000830184613411565b92915050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000613471600e836120db565b915061347c8261343b565b602082019050919050565b600060208201905081810360008301526134a081613464565b905091905056fea2646970667358221220219a00feb1442d245b5e3810fec8c3338724d8c4067a9f00f1bd5349e3c9b3fa64736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000e56d4956baa326b9f0bcc73a0ce6d16a552775370000000000000000000000002194ab8c256fe289d090577e42fe3ab409af964b000000000000000000000000000000000000000000000000000000000000001043686565736547616d653a20436f7773000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003434f570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f636f7767656e2e6368656573652e67616d652f6d657461646174612f00000000000000000000000000000000000000000000000000000000