ERC-1155
Overview
Max Total Supply
236
Holders
112
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ZedHeads
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-29 */ pragma solidity ^0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } pragma solidity ^0.8.0; abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } pragma solidity ^0.8.0; library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } pragma solidity ^0.8.0; interface IERC1155Receiver is IERC165 { function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns(bytes4); function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns(bytes4); } pragma solidity ^0.8.0; interface IERC1155 is IERC165 { event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values); event ApprovalForAll(address indexed account, address indexed operator, bool approved); event URI(string value, uint256 indexed id); function balanceOf(address account, uint256 id) external view returns (uint256); function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); function setApprovalForAll(address operator, bool approved) external; function isApprovedForAll(address account, address operator) external view returns (bool); function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external; } pragma solidity ^0.8.0; library Strings { bytes16 private constant alphabet = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = alphabet[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } pragma solidity ^0.8.0; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity ^0.8.0; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma solidity ^0.8.0; interface IERC1155MetadataURI is IERC1155 { function uri(uint256 id) external view returns (string memory); } pragma solidity ^0.8.0; contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { using Address for address; mapping (uint256 => mapping(address => uint256)) private _balances; mapping (address => mapping(address => bool)) private _operatorApprovals; string private _uri; constructor (string memory uri_) { _setURI(uri_); } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155).interfaceId || interfaceId == type(IERC1155MetadataURI).interfaceId || super.supportsInterface(interfaceId); } function uri(uint256) public view virtual override returns (string memory) { return _uri; } function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { require(account != address(0), "ERC1155: balance query for the zero address"); return _balances[id][account]; } function balanceOfBatch( address[] memory accounts, uint256[] memory ids ) public view virtual override returns (uint256[] memory) { require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); uint256[] memory batchBalances = new uint256[](accounts.length); for (uint256 i = 0; i < accounts.length; ++i) { batchBalances[i] = balanceOf(accounts[i], ids[i]); } return batchBalances; } function setApprovalForAll(address operator, bool approved) public virtual override { require(_msgSender() != operator, "ERC1155: setting approval status for self"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address account, address operator) public view virtual override returns (bool) { return _operatorApprovals[account][operator]; } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) public virtual override { require(to != address(0), "ERC1155: transfer to the zero address"); require( from == _msgSender() || isApprovedForAll(from, _msgSender()), "ERC1155: caller is not owner nor approved" ); address operator = _msgSender(); _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data); uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); _balances[id][from] = fromBalance - amount; _balances[id][to] += amount; emit TransferSingle(operator, from, to, id, amount); _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data); } function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) public virtual override { require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); require(to != address(0), "ERC1155: transfer to the zero address"); require( from == _msgSender() || isApprovedForAll(from, _msgSender()), "ERC1155: transfer caller is not owner nor approved" ); address operator = _msgSender(); _beforeTokenTransfer(operator, from, to, ids, amounts, data); for (uint256 i = 0; i < ids.length; ++i) { uint256 id = ids[i]; uint256 amount = amounts[i]; uint256 fromBalance = _balances[id][from]; require(fromBalance >= amount, "ERC1155: insufficient balance for transfer"); _balances[id][from] = fromBalance - amount; _balances[id][to] += amount; } emit TransferBatch(operator, from, to, ids, amounts); _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data); } function _setURI(string memory newuri) internal virtual { _uri = newuri; } function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual { require(account != address(0), "ERC1155: mint to the zero address"); address operator = _msgSender(); _beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data); _balances[id][account] += amount; emit TransferSingle(operator, address(0), account, id, amount); _doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data); } function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual { require(to != address(0), "ERC1155: mint to the zero address"); require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); address operator = _msgSender(); _beforeTokenTransfer(operator, address(0), to, ids, amounts, data); for (uint i = 0; i < ids.length; i++) { _balances[ids[i]][to] += amounts[i]; } emit TransferBatch(operator, address(0), to, ids, amounts); _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data); } function _burn(address account, uint256 id, uint256 amount) internal virtual { require(account != address(0), "ERC1155: burn from the zero address"); address operator = _msgSender(); _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), ""); uint256 accountBalance = _balances[id][account]; require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); _balances[id][account] = accountBalance - amount; emit TransferSingle(operator, account, address(0), id, amount); } function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual { require(account != address(0), "ERC1155: burn from the zero address"); require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); address operator = _msgSender(); _beforeTokenTransfer(operator, account, address(0), ids, amounts, ""); for (uint i = 0; i < ids.length; i++) { uint256 id = ids[i]; uint256 amount = amounts[i]; uint256 accountBalance = _balances[id][account]; require(accountBalance >= amount, "ERC1155: burn amount exceeds balance"); _balances[id][account] = accountBalance - amount; } emit TransferBatch(operator, account, address(0), ids, amounts); } function _beforeTokenTransfer( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { } function _doSafeTransferAcceptanceCheck( address operator, address from, address to, uint256 id, uint256 amount, bytes memory data ) private { if (to.isContract()) { try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { if (response != IERC1155Receiver(to).onERC1155Received.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { revert(reason); } catch { revert("ERC1155: transfer to non ERC1155Receiver implementer"); } } } function _doSafeBatchTransferAcceptanceCheck( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) private { if (to.isContract()) { try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (bytes4 response) { if (response != IERC1155Receiver(to).onERC1155BatchReceived.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { revert(reason); } catch { revert("ERC1155: transfer to non ERC1155Receiver implementer"); } } } function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) { uint256[] memory array = new uint256[](1); array[0] = element; return array; } } pragma solidity 0.8.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ZedHeads is ERC1155, Ownable { using SafeMath for uint256; using Strings for string; uint256 public zedHeadsSold; uint256 public giveAways; uint256 public totalZedHeads = 10000; mapping(uint256 => uint256) private _totalSupply; string public _baseURI = "https://mint.zedheads.club/api/zedhead/"; mapping(uint256 => string) public _tokenURIs; uint256 public itemPrice; address public companyWallet = 0x00DE4E3ed1eB1C05B7a9BcC8AD4c378639f154a6; constructor() ERC1155(_baseURI) { itemPrice = 60000000000000000; // 0.06 ETH } function setItemPrice(uint256 _price) public onlyOwner { itemPrice = _price; } function getItemPrice() public view returns (uint256) { return itemPrice; } function buyZedhead(uint256 _howMany) public payable { require(zedHeadsSold + _howMany <= 9970, "All sold out"); require(_howMany <= 10, "max 10 zedheads at once"); require(itemPrice.mul(_howMany) == msg.value, "insufficient ETH"); uint256 id = zedHeadsSold + 31; for (uint256 i = 0; i < _howMany; i++) { getZedhead(id+i); } zedHeadsSold = zedHeadsSold + _howMany; } function getZedhead(uint256 id) private { if (_totalSupply[id] == 0) { _totalSupply[id] = 1; _mint(msg.sender, id, 1, "0x0000"); return; } } function mint(address to) public onlyOwner { require(giveAways <= 30, "max 30 giveAways allowed"); for (uint256 i = 1; i <= 30; i++) { require(_totalSupply[i] == 0, "this zedhead is already owned by someone"); _totalSupply[i] = 1; _mint(to, i, 1, "0x0000"); } giveAways = 30; } function setBaseURI(string memory newuri) public onlyOwner { _baseURI = newuri; } function uri(uint256 tokenId) public view override returns (string memory) { return string(abi.encodePacked(_baseURI, uint2str(tokenId))); } function tokenURI(uint256 tokenId) public view returns (string memory) { return string(abi.encodePacked(_baseURI, uint2str(tokenId))); } function uint2str(uint256 _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint256 j = _i; uint256 len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint256 k = len; while (_i != 0) { k = k - 1; uint8 temp = (48 + uint8(_i - (_i / 10) * 10)); bytes1 b1 = bytes1(temp); bstr[k] = b1; _i /= 10; } return string(bstr); } function totalSupply(uint256 id) public view virtual returns (uint256) { return _totalSupply[id]; } function exists(uint256 id) public view virtual returns (bool) { return totalSupply(id) > 0; } function withdraw() public onlyOwner { uint256 balance = address(this).balance; payable(companyWallet).transfer(balance); } function reclaimToken(IERC20 token) public onlyOwner { require(address(token) != address(0)); uint256 balance = token.balanceOf(address(this)); token.transfer(msg.sender, balance); } function changeComapnyWallet(address target) public onlyOwner { companyWallet = target; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"_baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_tokenURIs","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_howMany","type":"uint256"}],"name":"buyZedhead","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"changeComapnyWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"companyWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getItemPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveAways","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"itemPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"stateMutability":"nonpayable","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","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":"uint256","name":"amount","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":"newuri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setItemPrice","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalZedHeads","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zedHeadsSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61271060065560e06040526027608081815290620028fc60a03980516200002f9160089160209091019062000190565b50600b80546001600160a01b03191672de4e3ed1eb1c05b7a9bcc8ad4c378639f154a61790553480156200006257600080fd5b5060088054620000729062000236565b80601f0160208091040260200160405190810160405280929190818152602001828054620000a09062000236565b8015620000f15780601f10620000c557610100808354040283529160200191620000f1565b820191906000526020600020905b815481529060010190602001808311620000d357829003601f168201915b505050505062000107816200017360201b60201c565b506000620001146200018c565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35066d529ae9e860000600a5562000273565b80516200018890600290602084019062000190565b5050565b3390565b8280546200019e9062000236565b90600052602060002090601f016020900481019282620001c257600085556200020d565b82601f10620001dd57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020d578251825591602001919060010190620001f0565b506200021b9291506200021f565b5090565b5b808211156200021b576000815560010162000220565b6002810460018216806200024b57607f821691505b602082108114156200026d57634e487b7160e01b600052602260045260246000fd5b50919050565b61267980620002836000396000f3fe6080604052600436106101c15760003560e01c80634f558e79116100f757806398ca779511610095578063dac6db1c11610064578063dac6db1c146104a2578063e985e9c5146104b7578063f242432a146104d7578063f2fde38b146104f7576101c1565b806398ca779514610442578063a22cb46514610462578063bd85b03914610482578063c87b56dd14610278576101c1565b8063715018a6116100d1578063715018a6146103ee578063743976a0146104035780638da5cb5b14610418578063915b10c51461042d576101c1565b80634f558e791461038e57806355f804b3146103ae5780636a627842146103ce576101c1565b80631ec32d15116101645780632eb2c2d61161013e5780632eb2c2d6146103175780633ccfd60b14610337578063495089d71461034c5780634e1273f414610361576101c1565b80631ec32d15146102cd5780632083ad82146102ef578063216ea50e14610304576101c1565b80630bb78ec1116101a05780630bb78ec11461024b5780630e89341c1461027857806314a369ab1461029857806317ffc320146102ad576101c1565b8062fdd58e146101c657806301ffc9a7146101fc578063095eb8c914610229575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611af1565b610517565b6040516101f391906123a9565b60405180910390f35b34801561020857600080fd5b5061021c610217366004611bf8565b61056e565b6040516101f39190611ede565b34801561023557600080fd5b5061024961024436600461195f565b6105b6565b005b34801561025757600080fd5b5061026b610266366004611c7e565b610617565b6040516101f39190611ee9565b34801561028457600080fd5b5061026b610293366004611c7e565b6106b1565b3480156102a457600080fd5b506101e66106e5565b3480156102b957600080fd5b506102496102c836600461195f565b6106eb565b3480156102d957600080fd5b506102e2610844565b6040516101f39190611dd6565b3480156102fb57600080fd5b506101e6610853565b610249610312366004611c7e565b61085a565b34801561032357600080fd5b506102496103323660046119b3565b61092e565b34801561034357600080fd5b50610249610b94565b34801561035857600080fd5b506101e6610c11565b34801561036d57600080fd5b5061038161037c366004611b1c565b610c17565b6040516101f39190611ea6565b34801561039a57600080fd5b5061021c6103a9366004611c7e565b610d37565b3480156103ba57600080fd5b506102496103c9366004611c30565b610d4a565b3480156103da57600080fd5b506102496103e936600461195f565b610d9c565b3480156103fa57600080fd5b50610249610e94565b34801561040f57600080fd5b5061026b610f1d565b34801561042457600080fd5b506102e2610f2a565b34801561043957600080fd5b506101e6610f39565b34801561044e57600080fd5b5061024961045d366004611c7e565b610f3f565b34801561046e57600080fd5b5061024961047d366004611ac4565b610f83565b34801561048e57600080fd5b506101e661049d366004611c7e565b611051565b3480156104ae57600080fd5b506101e6611063565b3480156104c357600080fd5b5061021c6104d236600461197b565b611069565b3480156104e357600080fd5b506102496104f2366004611a5d565b611097565b34801561050357600080fd5b5061024961051236600461195f565b61122d565b60006001600160a01b0383166105485760405162461bcd60e51b815260040161053f90611f98565b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061059f57506001600160e01b031982166303a24d0760e21b145b806105ae57506105ae826112ee565b90505b919050565b6105be611307565b6001600160a01b03166105cf610f2a565b6001600160a01b0316146105f55760405162461bcd60e51b815260040161053f9061218a565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60096020526000908152604090208054610630906124dd565b80601f016020809104026020016040519081016040528092919081815260200182805461065c906124dd565b80156106a95780601f1061067e576101008083540402835291602001916106a9565b820191906000526020600020905b81548152906001019060200180831161068c57829003601f168201915b505050505081565b606060086106be8361130b565b6040516020016106cf929190611d30565b6040516020818303038152906040529050919050565b60055481565b6106f3611307565b6001600160a01b0316610704610f2a565b6001600160a01b03161461072a5760405162461bcd60e51b815260040161053f9061218a565b6001600160a01b03811661073d57600080fd5b6040516370a0823160e01b81526000906001600160a01b038316906370a082319061076c903090600401611dd6565b60206040518083038186803b15801561078457600080fd5b505afa158015610798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bc9190611c96565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb906107ed9033908590600401611e8d565b602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611bdc565b505050565b600b546001600160a01b031681565b600a545b90565b6126f28160045461086b919061241a565b11156108895760405162461bcd60e51b815260040161053f906121e9565b600a8111156108aa5760405162461bcd60e51b815260040161053f90612258565b600a5434906108b99083611451565b146108d65760405162461bcd60e51b815260040161053f906121bf565b6000600454601f6108e7919061241a565b905060005b8281101561091857610906610901828461241a565b611464565b8061091081612518565b9150506108ec565b5081600454610927919061241a565b6004555050565b815183511461094f5760405162461bcd60e51b815260040161053f90612320565b6001600160a01b0384166109755760405162461bcd60e51b815260040161053f90612072565b61097d611307565b6001600160a01b0316856001600160a01b031614806109a357506109a3856104d2611307565b6109bf5760405162461bcd60e51b815260040161053f906120b7565b60006109c9611307565b90506109d9818787878787610b8c565b60005b8451811015610b26576000858281518110610a0757634e487b7160e01b600052603260045260246000fd5b602002602001015190506000858381518110610a3357634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610a835760405162461bcd60e51b815260040161053f90612109565b610a8d8282612496565b60008085815260200190815260200160002060008c6001600160a01b03166001600160a01b03168152602001908152602001600020819055508160008085815260200190815260200160002060008b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610b0b919061241a565b9250508190555050505080610b1f90612518565b90506109dc565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610b76929190611eb9565b60405180910390a4610b8c8187878787876114be565b505050505050565b610b9c611307565b6001600160a01b0316610bad610f2a565b6001600160a01b031614610bd35760405162461bcd60e51b815260040161053f9061218a565b600b5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c0d573d6000803e3d6000fd5b5050565b60065481565b60608151835114610c3a5760405162461bcd60e51b815260040161053f9061228f565b6000835167ffffffffffffffff811115610c6457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c8d578160200160208202803683370190505b50905060005b8451811015610d2f57610cf4858281518110610cbf57634e487b7160e01b600052603260045260246000fd5b6020026020010151858381518110610ce757634e487b7160e01b600052603260045260246000fd5b6020026020010151610517565b828281518110610d1457634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610d2881612518565b9050610c93565b509392505050565b600080610d4383611051565b1192915050565b610d52611307565b6001600160a01b0316610d63610f2a565b6001600160a01b031614610d895760405162461bcd60e51b815260040161053f9061218a565b8051610c0d9060089060208401906117e3565b610da4611307565b6001600160a01b0316610db5610f2a565b6001600160a01b031614610ddb5760405162461bcd60e51b815260040161053f9061218a565b601e6005541115610dfe5760405162461bcd60e51b815260040161053f90612153565b60015b601e8111610e8b5760008181526007602052604090205415610e355760405162461bcd60e51b815260040161053f906122d8565b60016007600083815260200190815260200160002081905550610e79828260016040518060400160405280600681526020016503078303030360d41b8152506115cc565b80610e8381612518565b915050610e01565b5050601e600555565b610e9c611307565b6001600160a01b0316610ead610f2a565b6001600160a01b031614610ed35760405162461bcd60e51b815260040161053f9061218a565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b60088054610630906124dd565b6003546001600160a01b031690565b60045481565b610f47611307565b6001600160a01b0316610f58610f2a565b6001600160a01b031614610f7e5760405162461bcd60e51b815260040161053f9061218a565b600a55565b816001600160a01b0316610f95611307565b6001600160a01b03161415610fbc5760405162461bcd60e51b815260040161053f9061220f565b8060016000610fc9611307565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff19169215159290921790915561100d611307565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110459190611ede565b60405180910390a35050565b60009081526007602052604090205490565b600a5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166110bd5760405162461bcd60e51b815260040161053f90612072565b6110c5611307565b6001600160a01b0316856001600160a01b031614806110eb57506110eb856104d2611307565b6111075760405162461bcd60e51b815260040161053f90612029565b6000611111611307565b9050611131818787611122886116b3565b61112b886116b3565b87610b8c565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156111725760405162461bcd60e51b815260040161053f90612109565b61117c8482612496565b6000868152602081815260408083206001600160a01b038c811685529252808320939093558816815290812080548692906111b890849061241a565b92505081905550856001600160a01b0316876001600160a01b0316836001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161120e9291906123b2565b60405180910390a461122482888888888861170c565b50505050505050565b611235611307565b6001600160a01b0316611246610f2a565b6001600160a01b03161461126c5760405162461bcd60e51b815260040161053f9061218a565b6001600160a01b0381166112925760405162461bcd60e51b815260040161053f90611fe3565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b60608161133057506040805180820190915260018152600360fc1b60208201526105b1565b8160005b811561135a578061134481612518565b91506113539050600a83612457565b9150611334565b60008167ffffffffffffffff81111561138357634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156113ad576020820181803683370190505b509050815b8515611448576113c3600182612496565b905060006113d2600a88612457565b6113dd90600a612477565b6113e79088612496565b6113f2906030612432565b905060008160f81b90508084848151811061141d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535061143f600a89612457565b975050506113b2565b50949350505050565b600061145d8284612477565b9392505050565b6000818152600760205260409020546114bb57600160076000838152602001908152602001600020819055506114bb338260016040518060400160405280600681526020016503078303030360d41b8152506115cc565b50565b6114d0846001600160a01b03166117dd565b15610b8c5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906115099089908990889088908890600401611dea565b602060405180830381600087803b15801561152357600080fd5b505af1925050508015611553575060408051601f3d908101601f1916820190925261155091810190611c14565b60015b61159c5761155f612565565b8061156a5750611584565b8060405162461bcd60e51b815260040161053f9190611ee9565b60405162461bcd60e51b815260040161053f90611efc565b6001600160e01b0319811663bc197c8160e01b146112245760405162461bcd60e51b815260040161053f90611f50565b6001600160a01b0384166115f25760405162461bcd60e51b815260040161053f90612368565b60006115fc611307565b905061160e81600087611122886116b3565b6000848152602081815260408083206001600160a01b03891684529091528120805485929061163e90849061241a565b92505081905550846001600160a01b031660006001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516116959291906123b2565b60405180910390a46116ac8160008787878761170c565b5050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106116fb57634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b61171e846001600160a01b03166117dd565b15610b8c5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906117579089908990889088908890600401611e48565b602060405180830381600087803b15801561177157600080fd5b505af19250505080156117a1575060408051601f3d908101601f1916820190925261179e91810190611c14565b60015b6117ad5761155f612565565b6001600160e01b0319811663f23a6e6160e01b146112245760405162461bcd60e51b815260040161053f90611f50565b3b151590565b8280546117ef906124dd565b90600052602060002090601f0160209004810192826118115760008555611857565b82601f1061182a57805160ff1916838001178555611857565b82800160010185558215611857579182015b8281111561185757825182559160200191906001019061183c565b50611863929150611867565b5090565b5b808211156118635760008155600101611868565b600067ffffffffffffffff83111561189657611896612549565b6118a9601f8401601f19166020016123c0565b90508281528383830111156118bd57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126118e4578081fd5b813560206118f96118f4836123ea565b6123c0565b8281528181019085830183850287018401881015611915578586fd5b855b8581101561193357813584529284019290840190600101611917565b5090979650505050505050565b600082601f830112611950578081fd5b61145d8383356020850161187c565b600060208284031215611970578081fd5b813561145d8161260a565b6000806040838503121561198d578081fd5b82356119988161260a565b915060208301356119a88161260a565b809150509250929050565b600080600080600060a086880312156119ca578081fd5b85356119d58161260a565b945060208601356119e58161260a565b9350604086013567ffffffffffffffff80821115611a01578283fd5b611a0d89838a016118d4565b94506060880135915080821115611a22578283fd5b611a2e89838a016118d4565b93506080880135915080821115611a43578283fd5b50611a5088828901611940565b9150509295509295909350565b600080600080600060a08688031215611a74578081fd5b8535611a7f8161260a565b94506020860135611a8f8161260a565b93506040860135925060608601359150608086013567ffffffffffffffff811115611ab8578182fd5b611a5088828901611940565b60008060408385031215611ad6578182fd5b8235611ae18161260a565b915060208301356119a88161261f565b60008060408385031215611b03578182fd5b8235611b0e8161260a565b946020939093013593505050565b60008060408385031215611b2e578081fd5b823567ffffffffffffffff80821115611b45578283fd5b818501915085601f830112611b58578283fd5b81356020611b686118f4836123ea565b82815281810190858301838502870184018b1015611b84578788fd5b8796505b84871015611baf578035611b9b8161260a565b835260019690960195918301918301611b88565b5096505086013592505080821115611bc5578283fd5b50611bd2858286016118d4565b9150509250929050565b600060208284031215611bed578081fd5b815161145d8161261f565b600060208284031215611c09578081fd5b813561145d8161262d565b600060208284031215611c25578081fd5b815161145d8161262d565b600060208284031215611c41578081fd5b813567ffffffffffffffff811115611c57578182fd5b8201601f81018413611c67578182fd5b611c768482356020840161187c565b949350505050565b600060208284031215611c8f578081fd5b5035919050565b600060208284031215611ca7578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611cdd57815187529582019590820190600101611cc1565b509495945050505050565b60008151808452611d008160208601602086016124ad565b601f01601f19169290920160200192915050565b60008151611d268185602086016124ad565b9290920192915050565b8254600090819060028104600180831680611d4c57607f831692505b6020808410821415611d6c57634e487b7160e01b87526022600452602487fd5b818015611d805760018114611d9157611dbd565b60ff19861689528489019650611dbd565b611d9a8b61240e565b885b86811015611db55781548b820152908501908301611d9c565b505084890196505b505050505050611dcd8185611d14565b95945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528516602082015260a060408201819052600090611e1690830186611cae565b8281036060840152611e288186611cae565b90508281036080840152611e3c8185611ce8565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611e8290830184611ce8565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60006020825261145d6020830184611cae565b600060408252611ecc6040830185611cae565b8281036020840152611dcd8185611cae565b901515815260200190565b60006020825261145d6020830184611ce8565b60208082526034908201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356040820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606082015260800190565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6020808252602b908201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526032908201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526018908201527f6d61782033302067697665417761797320616c6c6f7765640000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f0d2dce6eaccccd2c6d2cadce8408aa8960831b604082015260600190565b6020808252600c908201526b105b1b081cdbdb19081bdd5d60a21b604082015260600190565b60208082526029908201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604082015268103337b91039b2b63360b91b606082015260800190565b60208082526017908201527f6d6178203130207a65646865616473206174206f6e6365000000000000000000604082015260600190565b60208082526029908201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b60208082526028908201527f74686973207a65646865616420697320616c7265616479206f776e656420627960408201526720736f6d656f6e6560c01b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e2576123e2612549565b604052919050565b600067ffffffffffffffff82111561240457612404612549565b5060209081020190565b60009081526020902090565b6000821982111561242d5761242d612533565b500190565b600060ff821660ff84168060ff0382111561244f5761244f612533565b019392505050565b60008261247257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561249157612491612533565b500290565b6000828210156124a8576124a8612533565b500390565b60005b838110156124c85781810151838201526020016124b0565b838111156124d7576000848401525b50505050565b6002810460018216806124f157607f821691505b6020821081141561251257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561252c5761252c612533565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60e01c90565b600060443d101561257557610857565b600481823e6308c379a0612589825161255f565b1461259357610857565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156125c35750505050610857565b828401925082519150808211156125dd5750505050610857565b503d830160208284010111156125f557505050610857565b601f01601f1916810160200160405291505090565b6001600160a01b03811681146114bb57600080fd5b80151581146114bb57600080fd5b6001600160e01b0319811681146114bb57600080fdfea26469706673582212207a73ef5f02c2464302d346ed7c549022c635d461fd73d65c1c1fe629c712c0b564736f6c6343000800003368747470733a2f2f6d696e742e7a656468656164732e636c75622f6170692f7a6564686561642f
Deployed Bytecode
0x6080604052600436106101c15760003560e01c80634f558e79116100f757806398ca779511610095578063dac6db1c11610064578063dac6db1c146104a2578063e985e9c5146104b7578063f242432a146104d7578063f2fde38b146104f7576101c1565b806398ca779514610442578063a22cb46514610462578063bd85b03914610482578063c87b56dd14610278576101c1565b8063715018a6116100d1578063715018a6146103ee578063743976a0146104035780638da5cb5b14610418578063915b10c51461042d576101c1565b80634f558e791461038e57806355f804b3146103ae5780636a627842146103ce576101c1565b80631ec32d15116101645780632eb2c2d61161013e5780632eb2c2d6146103175780633ccfd60b14610337578063495089d71461034c5780634e1273f414610361576101c1565b80631ec32d15146102cd5780632083ad82146102ef578063216ea50e14610304576101c1565b80630bb78ec1116101a05780630bb78ec11461024b5780630e89341c1461027857806314a369ab1461029857806317ffc320146102ad576101c1565b8062fdd58e146101c657806301ffc9a7146101fc578063095eb8c914610229575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611af1565b610517565b6040516101f391906123a9565b60405180910390f35b34801561020857600080fd5b5061021c610217366004611bf8565b61056e565b6040516101f39190611ede565b34801561023557600080fd5b5061024961024436600461195f565b6105b6565b005b34801561025757600080fd5b5061026b610266366004611c7e565b610617565b6040516101f39190611ee9565b34801561028457600080fd5b5061026b610293366004611c7e565b6106b1565b3480156102a457600080fd5b506101e66106e5565b3480156102b957600080fd5b506102496102c836600461195f565b6106eb565b3480156102d957600080fd5b506102e2610844565b6040516101f39190611dd6565b3480156102fb57600080fd5b506101e6610853565b610249610312366004611c7e565b61085a565b34801561032357600080fd5b506102496103323660046119b3565b61092e565b34801561034357600080fd5b50610249610b94565b34801561035857600080fd5b506101e6610c11565b34801561036d57600080fd5b5061038161037c366004611b1c565b610c17565b6040516101f39190611ea6565b34801561039a57600080fd5b5061021c6103a9366004611c7e565b610d37565b3480156103ba57600080fd5b506102496103c9366004611c30565b610d4a565b3480156103da57600080fd5b506102496103e936600461195f565b610d9c565b3480156103fa57600080fd5b50610249610e94565b34801561040f57600080fd5b5061026b610f1d565b34801561042457600080fd5b506102e2610f2a565b34801561043957600080fd5b506101e6610f39565b34801561044e57600080fd5b5061024961045d366004611c7e565b610f3f565b34801561046e57600080fd5b5061024961047d366004611ac4565b610f83565b34801561048e57600080fd5b506101e661049d366004611c7e565b611051565b3480156104ae57600080fd5b506101e6611063565b3480156104c357600080fd5b5061021c6104d236600461197b565b611069565b3480156104e357600080fd5b506102496104f2366004611a5d565b611097565b34801561050357600080fd5b5061024961051236600461195f565b61122d565b60006001600160a01b0383166105485760405162461bcd60e51b815260040161053f90611f98565b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061059f57506001600160e01b031982166303a24d0760e21b145b806105ae57506105ae826112ee565b90505b919050565b6105be611307565b6001600160a01b03166105cf610f2a565b6001600160a01b0316146105f55760405162461bcd60e51b815260040161053f9061218a565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60096020526000908152604090208054610630906124dd565b80601f016020809104026020016040519081016040528092919081815260200182805461065c906124dd565b80156106a95780601f1061067e576101008083540402835291602001916106a9565b820191906000526020600020905b81548152906001019060200180831161068c57829003601f168201915b505050505081565b606060086106be8361130b565b6040516020016106cf929190611d30565b6040516020818303038152906040529050919050565b60055481565b6106f3611307565b6001600160a01b0316610704610f2a565b6001600160a01b03161461072a5760405162461bcd60e51b815260040161053f9061218a565b6001600160a01b03811661073d57600080fd5b6040516370a0823160e01b81526000906001600160a01b038316906370a082319061076c903090600401611dd6565b60206040518083038186803b15801561078457600080fd5b505afa158015610798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bc9190611c96565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb906107ed9033908590600401611e8d565b602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611bdc565b505050565b600b546001600160a01b031681565b600a545b90565b6126f28160045461086b919061241a565b11156108895760405162461bcd60e51b815260040161053f906121e9565b600a8111156108aa5760405162461bcd60e51b815260040161053f90612258565b600a5434906108b99083611451565b146108d65760405162461bcd60e51b815260040161053f906121bf565b6000600454601f6108e7919061241a565b905060005b8281101561091857610906610901828461241a565b611464565b8061091081612518565b9150506108ec565b5081600454610927919061241a565b6004555050565b815183511461094f5760405162461bcd60e51b815260040161053f90612320565b6001600160a01b0384166109755760405162461bcd60e51b815260040161053f90612072565b61097d611307565b6001600160a01b0316856001600160a01b031614806109a357506109a3856104d2611307565b6109bf5760405162461bcd60e51b815260040161053f906120b7565b60006109c9611307565b90506109d9818787878787610b8c565b60005b8451811015610b26576000858281518110610a0757634e487b7160e01b600052603260045260246000fd5b602002602001015190506000858381518110610a3357634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610a835760405162461bcd60e51b815260040161053f90612109565b610a8d8282612496565b60008085815260200190815260200160002060008c6001600160a01b03166001600160a01b03168152602001908152602001600020819055508160008085815260200190815260200160002060008b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610b0b919061241a565b9250508190555050505080610b1f90612518565b90506109dc565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610b76929190611eb9565b60405180910390a4610b8c8187878787876114be565b505050505050565b610b9c611307565b6001600160a01b0316610bad610f2a565b6001600160a01b031614610bd35760405162461bcd60e51b815260040161053f9061218a565b600b5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c0d573d6000803e3d6000fd5b5050565b60065481565b60608151835114610c3a5760405162461bcd60e51b815260040161053f9061228f565b6000835167ffffffffffffffff811115610c6457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c8d578160200160208202803683370190505b50905060005b8451811015610d2f57610cf4858281518110610cbf57634e487b7160e01b600052603260045260246000fd5b6020026020010151858381518110610ce757634e487b7160e01b600052603260045260246000fd5b6020026020010151610517565b828281518110610d1457634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610d2881612518565b9050610c93565b509392505050565b600080610d4383611051565b1192915050565b610d52611307565b6001600160a01b0316610d63610f2a565b6001600160a01b031614610d895760405162461bcd60e51b815260040161053f9061218a565b8051610c0d9060089060208401906117e3565b610da4611307565b6001600160a01b0316610db5610f2a565b6001600160a01b031614610ddb5760405162461bcd60e51b815260040161053f9061218a565b601e6005541115610dfe5760405162461bcd60e51b815260040161053f90612153565b60015b601e8111610e8b5760008181526007602052604090205415610e355760405162461bcd60e51b815260040161053f906122d8565b60016007600083815260200190815260200160002081905550610e79828260016040518060400160405280600681526020016503078303030360d41b8152506115cc565b80610e8381612518565b915050610e01565b5050601e600555565b610e9c611307565b6001600160a01b0316610ead610f2a565b6001600160a01b031614610ed35760405162461bcd60e51b815260040161053f9061218a565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b60088054610630906124dd565b6003546001600160a01b031690565b60045481565b610f47611307565b6001600160a01b0316610f58610f2a565b6001600160a01b031614610f7e5760405162461bcd60e51b815260040161053f9061218a565b600a55565b816001600160a01b0316610f95611307565b6001600160a01b03161415610fbc5760405162461bcd60e51b815260040161053f9061220f565b8060016000610fc9611307565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff19169215159290921790915561100d611307565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110459190611ede565b60405180910390a35050565b60009081526007602052604090205490565b600a5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166110bd5760405162461bcd60e51b815260040161053f90612072565b6110c5611307565b6001600160a01b0316856001600160a01b031614806110eb57506110eb856104d2611307565b6111075760405162461bcd60e51b815260040161053f90612029565b6000611111611307565b9050611131818787611122886116b3565b61112b886116b3565b87610b8c565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156111725760405162461bcd60e51b815260040161053f90612109565b61117c8482612496565b6000868152602081815260408083206001600160a01b038c811685529252808320939093558816815290812080548692906111b890849061241a565b92505081905550856001600160a01b0316876001600160a01b0316836001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161120e9291906123b2565b60405180910390a461122482888888888861170c565b50505050505050565b611235611307565b6001600160a01b0316611246610f2a565b6001600160a01b03161461126c5760405162461bcd60e51b815260040161053f9061218a565b6001600160a01b0381166112925760405162461bcd60e51b815260040161053f90611fe3565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b60608161133057506040805180820190915260018152600360fc1b60208201526105b1565b8160005b811561135a578061134481612518565b91506113539050600a83612457565b9150611334565b60008167ffffffffffffffff81111561138357634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156113ad576020820181803683370190505b509050815b8515611448576113c3600182612496565b905060006113d2600a88612457565b6113dd90600a612477565b6113e79088612496565b6113f2906030612432565b905060008160f81b90508084848151811061141d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535061143f600a89612457565b975050506113b2565b50949350505050565b600061145d8284612477565b9392505050565b6000818152600760205260409020546114bb57600160076000838152602001908152602001600020819055506114bb338260016040518060400160405280600681526020016503078303030360d41b8152506115cc565b50565b6114d0846001600160a01b03166117dd565b15610b8c5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906115099089908990889088908890600401611dea565b602060405180830381600087803b15801561152357600080fd5b505af1925050508015611553575060408051601f3d908101601f1916820190925261155091810190611c14565b60015b61159c5761155f612565565b8061156a5750611584565b8060405162461bcd60e51b815260040161053f9190611ee9565b60405162461bcd60e51b815260040161053f90611efc565b6001600160e01b0319811663bc197c8160e01b146112245760405162461bcd60e51b815260040161053f90611f50565b6001600160a01b0384166115f25760405162461bcd60e51b815260040161053f90612368565b60006115fc611307565b905061160e81600087611122886116b3565b6000848152602081815260408083206001600160a01b03891684529091528120805485929061163e90849061241a565b92505081905550846001600160a01b031660006001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516116959291906123b2565b60405180910390a46116ac8160008787878761170c565b5050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106116fb57634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b61171e846001600160a01b03166117dd565b15610b8c5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906117579089908990889088908890600401611e48565b602060405180830381600087803b15801561177157600080fd5b505af19250505080156117a1575060408051601f3d908101601f1916820190925261179e91810190611c14565b60015b6117ad5761155f612565565b6001600160e01b0319811663f23a6e6160e01b146112245760405162461bcd60e51b815260040161053f90611f50565b3b151590565b8280546117ef906124dd565b90600052602060002090601f0160209004810192826118115760008555611857565b82601f1061182a57805160ff1916838001178555611857565b82800160010185558215611857579182015b8281111561185757825182559160200191906001019061183c565b50611863929150611867565b5090565b5b808211156118635760008155600101611868565b600067ffffffffffffffff83111561189657611896612549565b6118a9601f8401601f19166020016123c0565b90508281528383830111156118bd57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126118e4578081fd5b813560206118f96118f4836123ea565b6123c0565b8281528181019085830183850287018401881015611915578586fd5b855b8581101561193357813584529284019290840190600101611917565b5090979650505050505050565b600082601f830112611950578081fd5b61145d8383356020850161187c565b600060208284031215611970578081fd5b813561145d8161260a565b6000806040838503121561198d578081fd5b82356119988161260a565b915060208301356119a88161260a565b809150509250929050565b600080600080600060a086880312156119ca578081fd5b85356119d58161260a565b945060208601356119e58161260a565b9350604086013567ffffffffffffffff80821115611a01578283fd5b611a0d89838a016118d4565b94506060880135915080821115611a22578283fd5b611a2e89838a016118d4565b93506080880135915080821115611a43578283fd5b50611a5088828901611940565b9150509295509295909350565b600080600080600060a08688031215611a74578081fd5b8535611a7f8161260a565b94506020860135611a8f8161260a565b93506040860135925060608601359150608086013567ffffffffffffffff811115611ab8578182fd5b611a5088828901611940565b60008060408385031215611ad6578182fd5b8235611ae18161260a565b915060208301356119a88161261f565b60008060408385031215611b03578182fd5b8235611b0e8161260a565b946020939093013593505050565b60008060408385031215611b2e578081fd5b823567ffffffffffffffff80821115611b45578283fd5b818501915085601f830112611b58578283fd5b81356020611b686118f4836123ea565b82815281810190858301838502870184018b1015611b84578788fd5b8796505b84871015611baf578035611b9b8161260a565b835260019690960195918301918301611b88565b5096505086013592505080821115611bc5578283fd5b50611bd2858286016118d4565b9150509250929050565b600060208284031215611bed578081fd5b815161145d8161261f565b600060208284031215611c09578081fd5b813561145d8161262d565b600060208284031215611c25578081fd5b815161145d8161262d565b600060208284031215611c41578081fd5b813567ffffffffffffffff811115611c57578182fd5b8201601f81018413611c67578182fd5b611c768482356020840161187c565b949350505050565b600060208284031215611c8f578081fd5b5035919050565b600060208284031215611ca7578081fd5b5051919050565b6000815180845260208085019450808401835b83811015611cdd57815187529582019590820190600101611cc1565b509495945050505050565b60008151808452611d008160208601602086016124ad565b601f01601f19169290920160200192915050565b60008151611d268185602086016124ad565b9290920192915050565b8254600090819060028104600180831680611d4c57607f831692505b6020808410821415611d6c57634e487b7160e01b87526022600452602487fd5b818015611d805760018114611d9157611dbd565b60ff19861689528489019650611dbd565b611d9a8b61240e565b885b86811015611db55781548b820152908501908301611d9c565b505084890196505b505050505050611dcd8185611d14565b95945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528516602082015260a060408201819052600090611e1690830186611cae565b8281036060840152611e288186611cae565b90508281036080840152611e3c8185611ce8565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611e8290830184611ce8565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60006020825261145d6020830184611cae565b600060408252611ecc6040830185611cae565b8281036020840152611dcd8185611cae565b901515815260200190565b60006020825261145d6020830184611ce8565b60208082526034908201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356040820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606082015260800190565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6020808252602b908201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526029908201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260408201526808185c1c1c9bdd995960ba1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526032908201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526018908201527f6d61782033302067697665417761797320616c6c6f7765640000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f0d2dce6eaccccd2c6d2cadce8408aa8960831b604082015260600190565b6020808252600c908201526b105b1b081cdbdb19081bdd5d60a21b604082015260600190565b60208082526029908201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604082015268103337b91039b2b63360b91b606082015260800190565b60208082526017908201527f6d6178203130207a65646865616473206174206f6e6365000000000000000000604082015260600190565b60208082526029908201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b60208082526028908201527f74686973207a65646865616420697320616c7265616479206f776e656420627960408201526720736f6d656f6e6560c01b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e2576123e2612549565b604052919050565b600067ffffffffffffffff82111561240457612404612549565b5060209081020190565b60009081526020902090565b6000821982111561242d5761242d612533565b500190565b600060ff821660ff84168060ff0382111561244f5761244f612533565b019392505050565b60008261247257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561249157612491612533565b500290565b6000828210156124a8576124a8612533565b500390565b60005b838110156124c85781810151838201526020016124b0565b838111156124d7576000848401525b50505050565b6002810460018216806124f157607f821691505b6020821081141561251257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561252c5761252c612533565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60e01c90565b600060443d101561257557610857565b600481823e6308c379a0612589825161255f565b1461259357610857565b6040513d600319016004823e80513d67ffffffffffffffff81602484011181841117156125c35750505050610857565b828401925082519150808211156125dd5750505050610857565b503d830160208284010111156125f557505050610857565b601f01601f1916810160200160405291505090565b6001600160a01b03811681146114bb57600080fd5b80151581146114bb57600080fd5b6001600160e01b0319811681146114bb57600080fdfea26469706673582212207a73ef5f02c2464302d346ed7c549022c635d461fd73d65c1c1fe629c712c0b564736f6c63430008000033
Deployed Bytecode Sourcemap
20434:3141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11382:231;;;;;;;;;;-1:-1:-1;11382:231:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10964:297;;;;;;;;;;-1:-1:-1;10964:297:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23476:94::-;;;;;;;;;;-1:-1:-1;23476:94:0;;;;;:::i;:::-;;:::i;:::-;;20757:44;;;;;;;;;;-1:-1:-1;20757:44:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22177:145::-;;;;;;;;;;-1:-1:-1;22177:145:0;;;;;:::i;:::-;;:::i;20565:24::-;;;;;;;;;;;;;:::i;23277:193::-;;;;;;;;;;-1:-1:-1;23277:193:0;;;;;:::i;:::-;;:::i;20833:73::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;21088:80::-;;;;;;;;;;;;;:::i;21173:402::-;;;;;;:::i;:::-;;:::i;13661:1233::-;;;;;;;;;;-1:-1:-1;13661:1233:0;;;;;:::i;:::-;;:::i;23141:131::-;;;;;;;;;;;;;:::i;20593:36::-;;;;;;;;;;;;;:::i;11621:543::-;;;;;;;;;;-1:-1:-1;11621:543:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23036:99::-;;;;;;;;;;-1:-1:-1;23036:99:0;;;;;:::i;:::-;;:::i;22086:86::-;;;;;;;;;;-1:-1:-1;22086:86:0;;;;;:::i;:::-;;:::i;21748:333::-;;;;;;;;;;-1:-1:-1;21748:333:0;;;;;:::i;:::-;;:::i;10019:148::-;;;;;;;;;;;;;:::i;20687:66::-;;;;;;;;;;;;;:::i;9796:87::-;;;;;;;;;;;;;:::i;20534:27::-;;;;;;;;;;;;;:::i;21000:83::-;;;;;;;;;;-1:-1:-1;21000:83:0;;;;;:::i;:::-;;:::i;12176:309::-;;;;;;;;;;-1:-1:-1;12176:309:0;;;;;:::i;:::-;;:::i;22927:104::-;;;;;;;;;;-1:-1:-1;22927:104:0;;;;;:::i;:::-;;:::i;20805:24::-;;;;;;;;;;;;;:::i;12493:168::-;;;;;;;;;;-1:-1:-1;12493:168:0;;;;;:::i;:::-;;:::i;12672:976::-;;;;;;;;;;-1:-1:-1;12672:976:0;;;;;:::i;:::-;;:::i;10175:244::-;;;;;;;;;;-1:-1:-1;10175:244:0;;;;;:::i;:::-;;:::i;11382:231::-;11468:7;-1:-1:-1;;;;;11496:21:0;;11488:77;;;;-1:-1:-1;;;11488:77:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;11583:9:0;:13;;;;;;;;;;;-1:-1:-1;;;;;11583:22:0;;;;;;;;;;;;11382:231::o;10964:297::-;11066:4;-1:-1:-1;;;;;;11090:41:0;;-1:-1:-1;;;11090:41:0;;:110;;-1:-1:-1;;;;;;;11148:52:0;;-1:-1:-1;;;11148:52:0;11090:110;:163;;;;11217:36;11241:11;11217:23;:36::i;:::-;11083:170;;10964:297;;;;:::o;23476:94::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;23543:13:::1;:22:::0;;-1:-1:-1;;;;;;23543:22:0::1;-1:-1:-1::0;;;;;23543:22:0;;;::::1;::::0;;;::::1;::::0;;23476:94::o;20757:44::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22177:145::-;22237:13;22288:8;22298:17;22307:7;22298:8;:17::i;:::-;22271:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22257:60;;22177:145;;;:::o;20565:24::-;;;;:::o;23277:193::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23343:28:0;::::1;23335:37;;;::::0;::::1;;23395:30;::::0;-1:-1:-1;;;23395:30:0;;23377:15:::1;::::0;-1:-1:-1;;;;;23395:15:0;::::1;::::0;::::1;::::0;:30:::1;::::0;23419:4:::1;::::0;23395:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23430:35;::::0;-1:-1:-1;;;23430:35:0;;23377:48;;-1:-1:-1;;;;;;23430:14:0;::::1;::::0;::::1;::::0;:35:::1;::::0;23445:10:::1;::::0;23377:48;;23430:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10002:1;23277:193:::0;:::o;20833:73::-;;;-1:-1:-1;;;;;20833:73:0;;:::o;21088:80::-;21154:9;;21088:80;;:::o;21173:402::-;21269:4;21257:8;21242:12;;:23;;;;:::i;:::-;:31;;21234:56;;;;-1:-1:-1;;;21234:56:0;;;;;;;:::i;:::-;21315:2;21303:8;:14;;21295:50;;;;-1:-1:-1;;;21295:50:0;;;;;;;:::i;:::-;21358:9;;21385;;21358:23;;21372:8;21358:13;:23::i;:::-;:36;21350:65;;;;-1:-1:-1;;;21350:65:0;;;;;;;:::i;:::-;21420:10;21433:12;;21448:2;21433:17;;;;:::i;:::-;21420:30;;21460:9;21455:67;21479:8;21475:1;:12;21455:67;;;21500:16;21511:4;21514:1;21511:2;:4;:::i;:::-;21500:10;:16::i;:::-;21489:3;;;;:::i;:::-;;;;21455:67;;;;21562:8;21547:12;;:23;;;;:::i;:::-;21532:12;:38;-1:-1:-1;;21173:402:0:o;13661:1233::-;13926:7;:14;13912:3;:10;:28;13904:81;;;;-1:-1:-1;;;13904:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14004:16:0;;13996:66;;;;-1:-1:-1;;;13996:66:0;;;;;;;:::i;:::-;14103:12;:10;:12::i;:::-;-1:-1:-1;;;;;14095:20:0;:4;-1:-1:-1;;;;;14095:20:0;;:60;;;;14119:36;14136:4;14142:12;:10;:12::i;14119:36::-;14073:160;;;;-1:-1:-1;;;14073:160:0;;;;;;;:::i;:::-;14246:16;14265:12;:10;:12::i;:::-;14246:31;;14288:60;14309:8;14319:4;14325:2;14329:3;14334:7;14343:4;14288:20;:60::i;:::-;14364:9;14359:377;14383:3;:10;14379:1;:14;14359:377;;;14415:10;14428:3;14432:1;14428:6;;;;;;-1:-1:-1;;;14428:6:0;;;;;;;;;;;;;;;14415:19;;14449:14;14466:7;14474:1;14466:10;;;;;;-1:-1:-1;;;14466:10:0;;;;;;;;;;;;;;;;;;;;14493:19;14515:13;;;;;;;;;;-1:-1:-1;;;;;14515:19:0;;;;;;;;;;;;14466:10;;-1:-1:-1;14557:21:0;;;;14549:76;;;;-1:-1:-1;;;14549:76:0;;;;;;;:::i;:::-;14662:20;14676:6;14662:11;:20;:::i;:::-;14640:9;:13;14650:2;14640:13;;;;;;;;;;;:19;14654:4;-1:-1:-1;;;;;14640:19:0;-1:-1:-1;;;;;14640:19:0;;;;;;;;;;;;:42;;;;14718:6;14697:9;:13;14707:2;14697:13;;;;;;;;;;;:17;14711:2;-1:-1:-1;;;;;14697:17:0;-1:-1:-1;;;;;14697:17:0;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;14359:377;;;14395:3;;;;:::i;:::-;;;14359:377;;;;14783:2;-1:-1:-1;;;;;14753:47:0;14777:4;-1:-1:-1;;;;;14753:47:0;14767:8;-1:-1:-1;;;;;14753:47:0;;14787:3;14792:7;14753:47;;;;;;;:::i;:::-;;;;;;;;14811:75;14847:8;14857:4;14863:2;14867:3;14872:7;14881:4;14811:35;:75::i;:::-;13661:1233;;;;;;:::o;23141:131::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;23235:13:::1;::::0;23227:40:::1;::::0;23201:21:::1;::::0;-1:-1:-1;;;;;23235:13:0::1;::::0;23227:40;::::1;;;::::0;23201:21;;23183:15:::1;23227:40:::0;23183:15;23227:40;23201:21;23235:13;23227:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10002:1;23141:131::o:0;20593:36::-;;;;:::o;11621:543::-;11802:16;11863:3;:10;11844:8;:15;:29;11836:83;;;;-1:-1:-1;;;11836:83:0;;;;;;;:::i;:::-;11930:30;11977:8;:15;11963:30;;;;;;-1:-1:-1;;;11963:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11963:30:0;;11930:63;;12009:9;12004:122;12028:8;:15;12024:1;:19;12004:122;;;12084:30;12094:8;12103:1;12094:11;;;;;;-1:-1:-1;;;12094:11:0;;;;;;;;;;;;;;;12107:3;12111:1;12107:6;;;;;;-1:-1:-1;;;12107:6:0;;;;;;;;;;;;;;;12084:9;:30::i;:::-;12065:13;12079:1;12065:16;;;;;;-1:-1:-1;;;12065:16:0;;;;;;;;;;;;;;;;;;:49;12045:3;;;:::i;:::-;;;12004:122;;;-1:-1:-1;12143:13:0;11621:543;-1:-1:-1;;;11621:543:0:o;23036:99::-;23093:4;23129:1;23111:15;23123:2;23111:11;:15::i;:::-;:19;;23036:99;-1:-1:-1;;23036:99:0:o;22086:86::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;22150:17;;::::1;::::0;:8:::1;::::0;:17:::1;::::0;::::1;::::0;::::1;:::i;21748:333::-:0;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;21820:2:::1;21807:9;;:15;;21799:52;;;;-1:-1:-1::0;;;21799:52:0::1;;;;;;;:::i;:::-;21876:1;21859:196;21884:2;21879:1;:7;21859:196;;21917:15;::::0;;;:12:::1;:15;::::0;;;;;:20;21909:73:::1;;;;-1:-1:-1::0;;;21909:73:0::1;;;;;;;:::i;:::-;22009:1;21991:12;:15;22004:1;21991:15;;;;;;;;;;;:19;;;;22019:25;22025:2;22029:1;22032;22019:25;;;;;;;;;;;;;-1:-1:-1::0;;;22019:25:0::1;;::::0;:5:::1;:25::i;:::-;21888:3:::0;::::1;::::0;::::1;:::i;:::-;;;;21859:196;;;-1:-1:-1::0;;22074:2:0::1;22062:9;:14:::0;21748:333::o;10019:148::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;10110:6:::1;::::0;10089:40:::1;::::0;10126:1:::1;::::0;-1:-1:-1;;;;;10110:6:0::1;::::0;10089:40:::1;::::0;10126:1;;10089:40:::1;10140:6;:19:::0;;-1:-1:-1;;;;;;10140:19:0::1;::::0;;10019:148::o;20687:66::-;;;;;;;:::i;9796:87::-;9869:6;;-1:-1:-1;;;;;9869:6:0;9796:87;:::o;20534:27::-;;;;:::o;21000:83::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;21060:9:::1;:18:::0;21000:83::o;12176:309::-;12295:8;-1:-1:-1;;;;;12279:24:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;12279:24:0;;;12271:78;;;;-1:-1:-1;;;12271:78:0;;;;;;;:::i;:::-;12405:8;12360:18;:32;12379:12;:10;:12::i;:::-;-1:-1:-1;;;;;12360:32:0;;;;;;;;;;;;;;;;;-1:-1:-1;12360:32:0;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;12360:53:0;;;;;;;;;;;12444:12;:10;:12::i;:::-;-1:-1:-1;;;;;12429:48:0;;12468:8;12429:48;;;;;;:::i;:::-;;;;;;;;12176:309;;:::o;22927:104::-;22989:7;23010:16;;;:12;:16;;;;;;;22927:104::o;20805:24::-;;;;:::o;12493:168::-;-1:-1:-1;;;;;12616:27:0;;;12592:4;12616:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;12493:168::o;12672:976::-;-1:-1:-1;;;;;12898:16:0;;12890:66;;;;-1:-1:-1;;;12890:66:0;;;;;;;:::i;:::-;12997:12;:10;:12::i;:::-;-1:-1:-1;;;;;12989:20:0;:4;-1:-1:-1;;;;;12989:20:0;;:60;;;;13013:36;13030:4;13036:12;:10;:12::i;13013:36::-;12967:151;;;;-1:-1:-1;;;12967:151:0;;;;;;;:::i;:::-;13131:16;13150:12;:10;:12::i;:::-;13131:31;;13173:96;13194:8;13204:4;13210:2;13214:21;13232:2;13214:17;:21::i;:::-;13237:25;13255:6;13237:17;:25::i;:::-;13264:4;13173:20;:96::i;:::-;13280:19;13302:13;;;;;;;;;;;-1:-1:-1;;;;;13302:19:0;;;;;;;;;;13340:21;;;;13332:76;;;;-1:-1:-1;;;13332:76:0;;;;;;;:::i;:::-;13441:20;13455:6;13441:11;:20;:::i;:::-;13419:9;:13;;;;;;;;;;;-1:-1:-1;;;;;13419:19:0;;;;;;;;;;:42;;;;13472:17;;;;;;;:27;;13493:6;;13419:9;13472:27;;13493:6;;13472:27;:::i;:::-;;;;;;;;13546:2;-1:-1:-1;;;;;13515:46:0;13540:4;-1:-1:-1;;;;;13515:46:0;13530:8;-1:-1:-1;;;;;13515:46:0;;13550:2;13554:6;13515:46;;;;;;;:::i;:::-;;;;;;;;13572:68;13603:8;13613:4;13619:2;13623;13627:6;13635:4;13572:30;:68::i;:::-;12672:976;;;;;;;:::o;10175:244::-;9942:12;:10;:12::i;:::-;-1:-1:-1;;;;;9931:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;9931:23:0;;9923:68;;;;-1:-1:-1;;;9923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10264:22:0;::::1;10256:73;;;;-1:-1:-1::0;;;10256:73:0::1;;;;;;;:::i;:::-;10366:6;::::0;10345:38:::1;::::0;-1:-1:-1;;;;;10345:38:0;;::::1;::::0;10366:6:::1;::::0;10345:38:::1;::::0;10366:6:::1;::::0;10345:38:::1;10394:6;:17:::0;;-1:-1:-1;;;;;;10394:17:0::1;-1:-1:-1::0;;;;;10394:17:0;;;::::1;::::0;;;::::1;::::0;;10175:244::o;207:157::-;-1:-1:-1;;;;;;316:40:0;;-1:-1:-1;;;316:40:0;207:157;;;:::o;433:98::-;513:10;433:98;:::o;22474:448::-;22527:27;22565:7;22561:35;;-1:-1:-1;22580:10:0;;;;;;;;;;;;-1:-1:-1;;;22580:10:0;;;;;;22561:35;22612:2;22600:9;22635:45;22642:6;;22635:45;;22656:5;;;;:::i;:::-;;-1:-1:-1;22667:7:0;;-1:-1:-1;22672:2:0;22667:7;;:::i;:::-;;;22635:45;;;22684:17;22714:3;22704:14;;;;;;-1:-1:-1;;;22704:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22704:14:0;-1:-1:-1;22684:34:0;-1:-1:-1;22735:3:0;22743:151;22750:7;;22743:151;;22769:5;22773:1;22769;:5;:::i;:::-;22765:9;-1:-1:-1;22780:10:0;22811:7;22816:2;22811;:7;:::i;:::-;22810:14;;22822:2;22810:14;:::i;:::-;22805:19;;:2;:19;:::i;:::-;22794:31;;:2;:31;:::i;:::-;22780:46;;22832:9;22851:4;22844:12;;22832:24;;22872:2;22862:4;22867:1;22862:7;;;;;;-1:-1:-1;;;22862:7:0;;;;;;;;;;;;:12;-1:-1:-1;;;;;22862:12:0;;;;;;;;-1:-1:-1;22880:8:0;22886:2;22880:8;;:::i;:::-;;;22743:151;;;;;-1:-1:-1;22912:4:0;22474:448;-1:-1:-1;;;;22474:448:0:o;8479:98::-;8537:7;8564:5;8568:1;8564;:5;:::i;:::-;8557:12;8479:98;-1:-1:-1;;;8479:98:0:o;21580:163::-;21632:16;;;;:12;:16;;;;;;21628:111;;21680:1;21661:12;:16;21674:2;21661:16;;;;;;;;;;;:20;;;;21687:34;21693:10;21705:2;21709:1;21687:34;;;;;;;;;;;;;-1:-1:-1;;;21687:34:0;;;:5;:34::i;:::-;21580:163;:::o;18726:799::-;18980:15;:2;-1:-1:-1;;;;;18980:13:0;;:15::i;:::-;18976:542;;;19016:79;;-1:-1:-1;;;19016:79:0;;-1:-1:-1;;;;;19016:43:0;;;;;:79;;19060:8;;19070:4;;19076:3;;19081:7;;19090:4;;19016:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19016:79:0;;;;;;;;-1:-1:-1;;19016:79:0;;;;;;;;;;;;:::i;:::-;;;19012:495;;;;:::i;:::-;;;;;;;;19380:6;19373:14;;-1:-1:-1;;;19373:14:0;;;;;;;;:::i;19012:495::-;19429:62;;-1:-1:-1;;;19429:62:0;;;;;;;:::i;19012:495::-;-1:-1:-1;;;;;;19145:64:0;;-1:-1:-1;;;19145:64:0;19141:163;;19234:50;;-1:-1:-1;;;19234:50:0;;;;;;;:::i;15003:548::-;-1:-1:-1;;;;;15118:21:0;;15110:67;;;;-1:-1:-1;;;15110:67:0;;;;;;;:::i;:::-;15188:16;15207:12;:10;:12::i;:::-;15188:31;;15230:107;15251:8;15269:1;15273:7;15282:21;15300:2;15282:17;:21::i;15230:107::-;15348:9;:13;;;;;;;;;;;-1:-1:-1;;;;;15348:22:0;;;;;;;;;:32;;15374:6;;15348:9;:32;;15374:6;;15348:32;:::i;:::-;;;;;;;;15433:7;-1:-1:-1;;;;;15396:57:0;15429:1;-1:-1:-1;;;;;15396:57:0;15411:8;-1:-1:-1;;;;;15396:57:0;;15442:2;15446:6;15396:57;;;;;;;:::i;:::-;;;;;;;;15464:79;15495:8;15513:1;15517:7;15526:2;15530:6;15538:4;15464:30;:79::i;:::-;15003:548;;;;;:::o;19533:198::-;19653:16;;;19667:1;19653:16;;;;;;;;;19599;;19628:22;;19653:16;;;;;;;;;;;;-1:-1:-1;19653:16:0;19628:41;;19691:7;19680:5;19686:1;19680:8;;;;;;-1:-1:-1;;;19680:8:0;;;;;;;;;;;;;;;;;;:18;19718:5;19533:198;-1:-1:-1;;19533:198:0:o;17956:762::-;18185:15;:2;-1:-1:-1;;;;;18185:13:0;;:15::i;:::-;18181:530;;;18221:72;;-1:-1:-1;;;18221:72:0;;-1:-1:-1;;;;;18221:38:0;;;;;:72;;18260:8;;18270:4;;18276:2;;18280:6;;18288:4;;18221:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18221:72:0;;;;;;;;-1:-1:-1;;18221:72:0;;;;;;;;;;;;:::i;:::-;;;18217:483;;;;:::i;:::-;-1:-1:-1;;;;;;18343:59:0;;-1:-1:-1;;;18343:59:0;18339:158;;18427:50;;-1:-1:-1;;;18427:50:0;;;;;;;:::i;717:174::-;836:20;875:8;;;717:174::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:409:1;;114:18;106:6;103:30;100:2;;;136:18;;:::i;:::-;174:58;220:2;197:17;;-1:-1:-1;;193:31:1;226:4;189:42;174:58;:::i;:::-;165:67;;255:6;248:5;241:21;295:3;286:6;281:3;277:16;274:25;271:2;;;312:1;309;302:12;271:2;361:6;356:3;349:4;342:5;338:16;325:43;415:1;408:4;399:6;392:5;388:18;384:29;377:40;90:333;;;;;:::o;428:705::-;;541:3;534:4;526:6;522:17;518:27;508:2;;563:5;556;549:20;508:2;603:6;590:20;629:4;653:65;668:49;714:2;668:49;:::i;:::-;653:65;:::i;:::-;752:15;;;783:12;;;;815:15;;;861:11;;;849:24;;845:33;;842:42;-1:-1:-1;839:2:1;;;901:5;894;887:20;839:2;927:5;941:163;955:2;952:1;949:9;941:163;;;1012:17;;1000:30;;1050:12;;;;1082;;;;973:1;966:9;941:163;;;-1:-1:-1;1122:5:1;;498:635;-1:-1:-1;;;;;;;498:635:1:o;1138:232::-;;1235:3;1228:4;1220:6;1216:17;1212:27;1202:2;;1257:5;1250;1243:20;1202:2;1283:81;1360:3;1351:6;1338:20;1331:4;1323:6;1319:17;1283:81;:::i;1375:259::-;;1487:2;1475:9;1466:7;1462:23;1458:32;1455:2;;;1508:6;1500;1493:22;1455:2;1552:9;1539:23;1571:33;1598:5;1571:33;:::i;1639:402::-;;;1768:2;1756:9;1747:7;1743:23;1739:32;1736:2;;;1789:6;1781;1774:22;1736:2;1833:9;1820:23;1852:33;1879:5;1852:33;:::i;:::-;1904:5;-1:-1:-1;1961:2:1;1946:18;;1933:32;1974:35;1933:32;1974:35;:::i;:::-;2028:7;2018:17;;;1726:315;;;;;:::o;2046:1129::-;;;;;;2285:3;2273:9;2264:7;2260:23;2256:33;2253:2;;;2307:6;2299;2292:22;2253:2;2351:9;2338:23;2370:33;2397:5;2370:33;:::i;:::-;2422:5;-1:-1:-1;2479:2:1;2464:18;;2451:32;2492:35;2451:32;2492:35;:::i;:::-;2546:7;-1:-1:-1;2604:2:1;2589:18;;2576:32;2627:18;2657:14;;;2654:2;;;2689:6;2681;2674:22;2654:2;2717:67;2776:7;2767:6;2756:9;2752:22;2717:67;:::i;:::-;2707:77;;2837:2;2826:9;2822:18;2809:32;2793:48;;2866:2;2856:8;2853:16;2850:2;;;2887:6;2879;2872:22;2850:2;2915:69;2976:7;2965:8;2954:9;2950:24;2915:69;:::i;:::-;2905:79;;3037:3;3026:9;3022:19;3009:33;2993:49;;3067:2;3057:8;3054:16;3051:2;;;3088:6;3080;3073:22;3051:2;;3116:53;3161:7;3150:8;3139:9;3135:24;3116:53;:::i;:::-;3106:63;;;2243:932;;;;;;;;:::o;3180:760::-;;;;;;3369:3;3357:9;3348:7;3344:23;3340:33;3337:2;;;3391:6;3383;3376:22;3337:2;3435:9;3422:23;3454:33;3481:5;3454:33;:::i;:::-;3506:5;-1:-1:-1;3563:2:1;3548:18;;3535:32;3576:35;3535:32;3576:35;:::i;:::-;3630:7;-1:-1:-1;3684:2:1;3669:18;;3656:32;;-1:-1:-1;3735:2:1;3720:18;;3707:32;;-1:-1:-1;3790:3:1;3775:19;;3762:33;3818:18;3807:30;;3804:2;;;3855:6;3847;3840:22;3804:2;3883:51;3926:7;3917:6;3906:9;3902:22;3883:51;:::i;3945:396::-;;;4071:2;4059:9;4050:7;4046:23;4042:32;4039:2;;;4092:6;4084;4077:22;4039:2;4136:9;4123:23;4155:33;4182:5;4155:33;:::i;:::-;4207:5;-1:-1:-1;4264:2:1;4249:18;;4236:32;4277;4236;4277;:::i;4346:327::-;;;4475:2;4463:9;4454:7;4450:23;4446:32;4443:2;;;4496:6;4488;4481:22;4443:2;4540:9;4527:23;4559:33;4586:5;4559:33;:::i;:::-;4611:5;4663:2;4648:18;;;;4635:32;;-1:-1:-1;;;4433:240:1:o;4678:1295::-;;;4857:2;4845:9;4836:7;4832:23;4828:32;4825:2;;;4878:6;4870;4863:22;4825:2;4923:9;4910:23;4952:18;4993:2;4985:6;4982:14;4979:2;;;5014:6;5006;4999:22;4979:2;5057:6;5046:9;5042:22;5032:32;;5102:7;5095:4;5091:2;5087:13;5083:27;5073:2;;5129:6;5121;5114:22;5073:2;5170;5157:16;5192:4;5216:65;5231:49;5277:2;5231:49;:::i;5216:65::-;5315:15;;;5346:12;;;;5378:11;;;5416;;;5408:20;;5404:29;;5401:42;-1:-1:-1;5398:2:1;;;5461:6;5453;5446:22;5398:2;5488:6;5479:15;;5503:240;5517:2;5514:1;5511:9;5503:240;;;5588:3;5575:17;5605:33;5632:5;5605:33;:::i;:::-;5651:18;;5535:1;5528:9;;;;;5689:12;;;;5721;;5503:240;;;-1:-1:-1;5762:5:1;-1:-1:-1;;5805:18:1;;5792:32;;-1:-1:-1;;5836:16:1;;;5833:2;;;5870:6;5862;5855:22;5833:2;;5898:69;5959:7;5948:8;5937:9;5933:24;5898:69;:::i;:::-;5888:79;;;4815:1158;;;;;:::o;5978:257::-;;6098:2;6086:9;6077:7;6073:23;6069:32;6066:2;;;6119:6;6111;6104:22;6066:2;6156:9;6150:16;6175:30;6199:5;6175:30;:::i;6240:257::-;;6351:2;6339:9;6330:7;6326:23;6322:32;6319:2;;;6372:6;6364;6357:22;6319:2;6416:9;6403:23;6435:32;6461:5;6435:32;:::i;6502:261::-;;6624:2;6612:9;6603:7;6599:23;6595:32;6592:2;;;6645:6;6637;6630:22;6592:2;6682:9;6676:16;6701:32;6727:5;6701:32;:::i;7047:482::-;;7169:2;7157:9;7148:7;7144:23;7140:32;7137:2;;;7190:6;7182;7175:22;7137:2;7235:9;7222:23;7268:18;7260:6;7257:30;7254:2;;;7305:6;7297;7290:22;7254:2;7333:22;;7386:4;7378:13;;7374:27;-1:-1:-1;7364:2:1;;7420:6;7412;7405:22;7364:2;7448:75;7515:7;7510:2;7497:16;7492:2;7488;7484:11;7448:75;:::i;:::-;7438:85;7127:402;-1:-1:-1;;;;7127:402:1:o;7534:190::-;;7646:2;7634:9;7625:7;7621:23;7617:32;7614:2;;;7667:6;7659;7652:22;7614:2;-1:-1:-1;7695:23:1;;7604:120;-1:-1:-1;7604:120:1:o;7729:194::-;;7852:2;7840:9;7831:7;7827:23;7823:32;7820:2;;;7873:6;7865;7858:22;7820:2;-1:-1:-1;7901:16:1;;7810:113;-1:-1:-1;7810:113:1:o;7928:443::-;;8025:5;8019:12;8052:6;8047:3;8040:19;8078:4;8107:2;8102:3;8098:12;8091:19;;8144:2;8137:5;8133:14;8165:3;8177:169;8191:6;8188:1;8185:13;8177:169;;;8252:13;;8240:26;;8286:12;;;;8321:15;;;;8213:1;8206:9;8177:169;;;-1:-1:-1;8362:3:1;;7995:376;-1:-1:-1;;;;;7995:376:1:o;8376:259::-;;8457:5;8451:12;8484:6;8479:3;8472:19;8500:63;8556:6;8549:4;8544:3;8540:14;8533:4;8526:5;8522:16;8500:63;:::i;:::-;8617:2;8596:15;-1:-1:-1;;8592:29:1;8583:39;;;;8624:4;8579:50;;8427:208;-1:-1:-1;;8427:208:1:o;8640:187::-;;8722:5;8716:12;8737:52;8782:6;8777:3;8770:4;8763:5;8759:16;8737:52;:::i;:::-;8805:16;;;;;8692:135;-1:-1:-1;;8692:135:1:o;8832:1181::-;9066:13;;8832:1181;;;;9139:1;9124:17;;9160:1;9196:18;;;;9223:2;;9277:4;9269:6;9265:17;9255:27;;9223:2;9303;9351;9343:6;9340:14;9320:18;9317:38;9314:2;;;-1:-1:-1;;;9378:33:1;;9434:4;9431:1;9424:15;9464:4;9385:3;9452:17;9314:2;9495:18;9522:104;;;;9640:1;9635:324;;;;9488:471;;9522:104;-1:-1:-1;;9555:24:1;;9543:37;;9600:16;;;;-1:-1:-1;9522:104:1;;9635:324;9671:39;9703:6;9671:39;:::i;:::-;9732:3;9748:165;9762:6;9759:1;9756:13;9748:165;;;9840:14;;9827:11;;;9820:35;9883:16;;;;9777:10;;9748:165;;;9752:3;;9942:6;9937:3;9933:16;9926:23;;9488:471;;;;;;;9975:32;10003:3;9995:6;9975:32;:::i;:::-;9968:39;9016:997;-1:-1:-1;;;;;9016:997:1:o;10018:203::-;-1:-1:-1;;;;;10182:32:1;;;;10164:51;;10152:2;10137:18;;10119:102::o;10226:840::-;-1:-1:-1;;;;;10623:15:1;;;10605:34;;10675:15;;10670:2;10655:18;;10648:43;10585:3;10722:2;10707:18;;10700:31;;;10226:840;;10754:63;;10797:19;;10789:6;10754:63;:::i;:::-;10865:9;10857:6;10853:22;10848:2;10837:9;10833:18;10826:50;10899;10942:6;10934;10899:50;:::i;:::-;10885:64;;10998:9;10990:6;10986:22;10980:3;10969:9;10965:19;10958:51;11026:34;11053:6;11045;11026:34;:::i;:::-;11018:42;10557:509;-1:-1:-1;;;;;;;;10557:509:1:o;11071:562::-;-1:-1:-1;;;;;11368:15:1;;;11350:34;;11420:15;;11415:2;11400:18;;11393:43;11467:2;11452:18;;11445:34;;;11510:2;11495:18;;11488:34;;;11330:3;11553;11538:19;;11531:32;;;11071:562;;11580:47;;11607:19;;11599:6;11580:47;:::i;:::-;11572:55;11302:331;-1:-1:-1;;;;;;;11302:331:1:o;11638:274::-;-1:-1:-1;;;;;11830:32:1;;;;11812:51;;11894:2;11879:18;;11872:34;11800:2;11785:18;;11767:145::o;11917:267::-;;12096:2;12085:9;12078:21;12116:62;12174:2;12163:9;12159:18;12151:6;12116:62;:::i;12189:477::-;;12446:2;12435:9;12428:21;12472:62;12530:2;12519:9;12515:18;12507:6;12472:62;:::i;:::-;12582:9;12574:6;12570:22;12565:2;12554:9;12550:18;12543:50;12610;12653:6;12645;12610:50;:::i;12671:187::-;12836:14;;12829:22;12811:41;;12799:2;12784:18;;12766:92::o;12863:221::-;;13012:2;13001:9;12994:21;13032:46;13074:2;13063:9;13059:18;13051:6;13032:46;:::i;13089:416::-;13291:2;13273:21;;;13330:2;13310:18;;;13303:30;13369:34;13364:2;13349:18;;13342:62;-1:-1:-1;;;13435:2:1;13420:18;;13413:50;13495:3;13480:19;;13263:242::o;13510:404::-;13712:2;13694:21;;;13751:2;13731:18;;;13724:30;13790:34;13785:2;13770:18;;13763:62;-1:-1:-1;;;13856:2:1;13841:18;;13834:38;13904:3;13889:19;;13684:230::o;13919:407::-;14121:2;14103:21;;;14160:2;14140:18;;;14133:30;14199:34;14194:2;14179:18;;14172:62;-1:-1:-1;;;14265:2:1;14250:18;;14243:41;14316:3;14301:19;;14093:233::o;14331:402::-;14533:2;14515:21;;;14572:2;14552:18;;;14545:30;14611:34;14606:2;14591:18;;14584:62;-1:-1:-1;;;14677:2:1;14662:18;;14655:36;14723:3;14708:19;;14505:228::o;14738:405::-;14940:2;14922:21;;;14979:2;14959:18;;;14952:30;15018:34;15013:2;14998:18;;14991:62;-1:-1:-1;;;15084:2:1;15069:18;;15062:39;15133:3;15118:19;;14912:231::o;15148:401::-;15350:2;15332:21;;;15389:2;15369:18;;;15362:30;15428:34;15423:2;15408:18;;15401:62;-1:-1:-1;;;15494:2:1;15479:18;;15472:35;15539:3;15524:19;;15322:227::o;15554:414::-;15756:2;15738:21;;;15795:2;15775:18;;;15768:30;15834:34;15829:2;15814:18;;15807:62;-1:-1:-1;;;15900:2:1;15885:18;;15878:48;15958:3;15943:19;;15728:240::o;15973:406::-;16175:2;16157:21;;;16214:2;16194:18;;;16187:30;16253:34;16248:2;16233:18;;16226:62;-1:-1:-1;;;16319:2:1;16304:18;;16297:40;16369:3;16354:19;;16147:232::o;16384:348::-;16586:2;16568:21;;;16625:2;16605:18;;;16598:30;16664:26;16659:2;16644:18;;16637:54;16723:2;16708:18;;16558:174::o;16737:356::-;16939:2;16921:21;;;16958:18;;;16951:30;17017:34;17012:2;16997:18;;16990:62;17084:2;17069:18;;16911:182::o;17098:340::-;17300:2;17282:21;;;17339:2;17319:18;;;17312:30;-1:-1:-1;;;17373:2:1;17358:18;;17351:46;17429:2;17414:18;;17272:166::o;17443:336::-;17645:2;17627:21;;;17684:2;17664:18;;;17657:30;-1:-1:-1;;;17718:2:1;17703:18;;17696:42;17770:2;17755:18;;17617:162::o;17784:405::-;17986:2;17968:21;;;18025:2;18005:18;;;17998:30;18064:34;18059:2;18044:18;;18037:62;-1:-1:-1;;;18130:2:1;18115:18;;18108:39;18179:3;18164:19;;17958:231::o;18194:347::-;18396:2;18378:21;;;18435:2;18415:18;;;18408:30;18474:25;18469:2;18454:18;;18447:53;18532:2;18517:18;;18368:173::o;18546:405::-;18748:2;18730:21;;;18787:2;18767:18;;;18760:30;18826:34;18821:2;18806:18;;18799:62;-1:-1:-1;;;18892:2:1;18877:18;;18870:39;18941:3;18926:19;;18720:231::o;18956:404::-;19158:2;19140:21;;;19197:2;19177:18;;;19170:30;19236:34;19231:2;19216:18;;19209:62;-1:-1:-1;;;19302:2:1;19287:18;;19280:38;19350:3;19335:19;;19130:230::o;19365:404::-;19567:2;19549:21;;;19606:2;19586:18;;;19579:30;19645:34;19640:2;19625:18;;19618:62;-1:-1:-1;;;19711:2:1;19696:18;;19689:38;19759:3;19744:19;;19539:230::o;19774:397::-;19976:2;19958:21;;;20015:2;19995:18;;;19988:30;20054:34;20049:2;20034:18;;20027:62;-1:-1:-1;;;20120:2:1;20105:18;;20098:31;20161:3;20146:19;;19948:223::o;20176:177::-;20322:25;;;20310:2;20295:18;;20277:76::o;20358:248::-;20532:25;;;20588:2;20573:18;;20566:34;20520:2;20505:18;;20487:119::o;20611:251::-;20681:2;20675:9;20711:17;;;20758:18;20743:34;;20779:22;;;20740:62;20737:2;;;20805:18;;:::i;:::-;20841:2;20834:22;20655:207;;-1:-1:-1;20655:207:1:o;20867:192::-;;20966:18;20958:6;20955:30;20952:2;;;20988:18;;:::i;:::-;-1:-1:-1;21048:4:1;21029:17;;;21025:28;;20942:117::o;21064:129::-;;21132:17;;;21182:4;21166:21;;;21122:71::o;21198:128::-;;21269:1;21265:6;21262:1;21259:13;21256:2;;;21275:18;;:::i;:::-;-1:-1:-1;21311:9:1;;21246:80::o;21331:204::-;;21405:4;21402:1;21398:12;21437:4;21434:1;21430:12;21472:3;21466:4;21462:14;21457:3;21454:23;21451:2;;;21480:18;;:::i;:::-;21516:13;;21377:158;-1:-1:-1;;;21377:158:1:o;21540:217::-;;21606:1;21596:2;;-1:-1:-1;;;21631:31:1;;21685:4;21682:1;21675:15;21713:4;21638:1;21703:15;21596:2;-1:-1:-1;21742:9:1;;21586:171::o;21762:168::-;;21868:1;21864;21860:6;21856:14;21853:1;21850:21;21845:1;21838:9;21831:17;21827:45;21824:2;;;21875:18;;:::i;:::-;-1:-1:-1;21915:9:1;;21814:116::o;21935:125::-;;22003:1;22000;21997:8;21994:2;;;22008:18;;:::i;:::-;-1:-1:-1;22045:9:1;;21984:76::o;22065:258::-;22137:1;22147:113;22161:6;22158:1;22155:13;22147:113;;;22237:11;;;22231:18;22218:11;;;22211:39;22183:2;22176:10;22147:113;;;22278:6;22275:1;22272:13;22269:2;;;22313:1;22304:6;22299:3;22295:16;22288:27;22269:2;;22118:205;;;:::o;22328:380::-;22413:1;22403:12;;22460:1;22450:12;;;22471:2;;22525:4;22517:6;22513:17;22503:27;;22471:2;22578;22570:6;22567:14;22547:18;22544:38;22541:2;;;22624:10;22619:3;22615:20;22612:1;22605:31;22659:4;22656:1;22649:15;22687:4;22684:1;22677:15;22541:2;;22383:325;;;:::o;22713:135::-;;-1:-1:-1;;22773:17:1;;22770:2;;;22793:18;;:::i;:::-;-1:-1:-1;22840:1:1;22829:13;;22760:88::o;22853:127::-;22914:10;22909:3;22905:20;22902:1;22895:31;22945:4;22942:1;22935:15;22969:4;22966:1;22959:15;22985:127;23046:10;23041:3;23037:20;23034:1;23027:31;23077:4;23074:1;23067:15;23101:4;23098:1;23091:15;23117:88;23192:3;23188:15;;23174:31::o;23210:764::-;;23291:4;23273:16;23270:26;23267:2;;;23299:5;;23267:2;23340:1;23335:3;23330;23315:27;23402:10;23364:36;23395:3;23389:10;23364:36;:::i;:::-;23361:52;23351:2;;23417:5;;23351:2;23451;23445:9;23491:16;-1:-1:-1;;23487:29:1;23484:1;23445:9;23463:54;23546:4;23540:11;23570:16;23605:18;23676:2;23669:4;23661:6;23657:17;23654:25;23649:2;23641:6;23638:14;23635:45;23632:2;;;23683:5;;;;;;23632:2;23720:6;23714:4;23710:17;23699:28;;23756:3;23750:10;23736:24;;23783:2;23775:6;23772:14;23769:2;;;23789:5;;;;;;23769:2;;23850:16;23844:4;23840:27;23833:4;23824:6;23819:3;23815:16;23811:27;23808:60;23805:2;;;23871:5;;;;;23805:2;23936;23915:15;-1:-1:-1;;23911:29:1;23902:39;;23943:4;23898:50;23894:2;23887:62;23906:3;-1:-1:-1;;23257:717:1;:::o;23979:133::-;-1:-1:-1;;;;;24056:31:1;;24046:42;;24036:2;;24102:1;24099;24092:12;24117:120;24205:5;24198:13;24191:21;24184:5;24181:32;24171:2;;24227:1;24224;24217:12;24242:133;-1:-1:-1;;;;;;24318:32:1;;24308:43;;24298:2;;24365:1;24362;24355:12
Swarm Source
ipfs://7a73ef5f02c2464302d346ed7c549022c635d461fd73d65c1c1fe629c712c0b5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.