ERC-721
Overview
Max Total Supply
505 TB
Holders
110
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
0 TBLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TeddyBandits
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-09 */ /** *Submitted for verification at Etherscan.io on 2022-01-17 */ // SPDX-License-Identifier: MIT 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; } } } library Strings { bytes16 private constant _HEX_SYMBOLS = "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] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } 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); } } } } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function tokenByIndex(uint256 index) external view returns (uint256); } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; string public _baseURI; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory base = baseURI(); return bytes(base).length > 0 ? string(abi.encodePacked(base, tokenId.toString(), ".json")) : ""; } function baseURI() internal view virtual returns (string memory) { return _baseURI; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(uint256 => uint256) private _ownedTokensIndex; uint256[] private _allTokens; mapping(uint256 => uint256) private _allTokensIndex; function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; } delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; uint256 lastTokenId = _allTokens[lastTokenIndex]; delete _allTokensIndex[tokenId]; _allTokens.pop(); } } contract TeddyBandits is ERC721Enumerable, Ownable { using SafeMath for uint256; using Strings for uint256; uint public constant _TOTALSUPPLY = 4999; uint public reserve=50; uint256 public price = 0.075 ether; uint256 public status = 0; // 0-pause, 1- Public Mint bool public reveal = false; // uint private tokenId=1; constructor(string memory baseURI) ERC721("Teddy Bandits", "TB") { setBaseURI(baseURI); for (uint i = 0; i < reserve; i++) { _safeMint(msg.sender, totalsupply()); } } function setBaseURI(string memory baseURI) public onlyOwner { _baseURI = baseURI; } function setPrice(uint256 _newPrice) public onlyOwner() { price = _newPrice; } function setStatus(uint8 s) public onlyOwner{ status = s; } function setReveal() public onlyOwner{ reveal =! reveal; } modifier isSaleOpen{ require(totalSupply() < _TOTALSUPPLY, "Sale end"); _; } function getStatus() public view returns (uint256) { return status; } function getPrice(uint256 _quantity) public view returns (uint256) { return _quantity*price ; } function giveAwayNFT(address receiver, uint chosenAmount) public onlyOwner isSaleOpen{ require(totalSupply()+chosenAmount<=_TOTALSUPPLY,"Quantity must be lesser then MaxSupply"); require(chosenAmount > 0, "Number of tokens can not be less than or equal to 0"); for (uint i = 0; i < chosenAmount; i++) { _safeMint(receiver, totalsupply()); } } function mint(uint chosenAmount) public payable isSaleOpen { require(totalSupply()+chosenAmount<=_TOTALSUPPLY,"Quantity must be lesser then MaxSupply"); require(chosenAmount > 0, "Number of tokens can not be less than or equal to 0"); require(price.mul(chosenAmount) == msg.value, "Sent ether value is incorrect"); require(status == 1,"The sale is not open"); for (uint i = 0; i < chosenAmount; i++) { _safeMint(msg.sender, totalsupply()); } } function tokensOfOwner(address _owner) public view returns (uint256[] memory) { uint256 count = balanceOf(_owner); uint256[] memory result = new uint256[](count); for (uint256 index = 0; index < count; index++) { result[index] = tokenOfOwnerByIndex(_owner, index); } return result; } function withdraw() public onlyOwner { uint balance = address(this).balance; payable(msg.sender).transfer(balance); } function totalsupply() private view returns (uint) { return super.totalSupply()+1; } function tokenURI(uint256 tokenId) public view override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory base = baseURI(); if(bytes(base).length > 0){ return reveal ? string(abi.encodePacked(base, tokenId.toString(), ".json")) : string(abi.encodePacked("https://gateway.pinata.cloud/ipfs/QmVfdxPLU9sHpx7WBb94qaiGcG122zfd4MwpFWovckMyJZ")); } else return ""; } function contractURI() public view returns (string memory) { string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "TeddyBandits", "description": "The story revolves around a faction of teddy bears with a code. A code that must not be broken or else consequences will follow to those who violate it. Bandits will punish everyone who breaks the code; which is leaving the faction, by fining them a small fee for their punishment.", "seller_fee_basis_points": 500, "fee_recipient": "0x3bd8061C826226363088b4cc38c2Fb25b69784f8"}')))); json = string(abi.encodePacked('data:application/json;base64,', json)); return json; } } library Base64 { bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /// @notice Encodes some bytes to the base64 representation function encode(bytes memory data) internal pure returns (string memory) { uint256 len = data.length; if (len == 0) return ""; // multiply by 4/3 rounded up uint256 encodedLen = 4 * ((len + 2) / 3); // Add some extra buffer at the end bytes memory result = new bytes(encodedLen + 32); bytes memory table = TABLE; assembly { let tablePtr := add(table, 1) let resultPtr := add(result, 32) for { let i := 0 } lt(i, len) { } { i := add(i, 3) let input := and(mload(add(data, i)), 0xffffff) let out := mload(add(tablePtr, and(shr(18, input), 0x3F))) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF)) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF)) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF)) out := shl(224, out) mstore(resultPtr, out) resultPtr := add(resultPtr, 4) } switch mod(len, 3) case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) } case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) } mstore(result, encodedLen) } return string(result); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_TOTALSUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"chosenAmount","type":"uint256"}],"name":"giveAwayNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"chosenAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reveal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setReveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"s","type":"uint8"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526032600c5567010a741a46278000600d556000600e556000600f60006101000a81548160ff0219169083151502179055503480156200004257600080fd5b5060405162005f4a38038062005f4a833981810160405281019062000068919062000ddf565b6040518060400160405280600d81526020017f54656464792042616e64697473000000000000000000000000000000000000008152506040518060400160405280600281526020017f54420000000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000ec92919062000c68565b5080600190805190602001906200010592919062000c68565b50505060006200011a6200021760201b60201c565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ca816200021f60201b60201c565b60005b600c548110156200020f57620001f933620001ed620002ca60201b60201c565b620002f460201b60201c565b8080620002069062001284565b915050620001cd565b505062001515565b600033905090565b6200022f6200021760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002556200031a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a59062001032565b60405180910390fd5b8060069080519060200190620002c692919062000c68565b5050565b60006001620002e36200034460201b62000afc1760201c565b620002ef9190620010e0565b905090565b620003168282604051806020016040528060008152506200035160201b60201c565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600980549050905090565b620003638383620003bf60201b60201c565b620003786000848484620005a560201b60201c565b620003ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003b19062000faa565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004299062001010565b60405180910390fd5b62000443816200075f60201b60201c565b1562000486576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200047d9062000fcc565b60405180910390fd5b6200049a60008383620007cb60201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004ec9190620010e0565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000620005d38473ffffffffffffffffffffffffffffffffffffffff166200091260201b62001b541760201c565b1562000752578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620006056200021760201b60201c565b8786866040518563ffffffff1660e01b815260040162000629949392919062000f56565b602060405180830381600087803b1580156200064457600080fd5b505af19250505080156200067857506040513d601f19601f8201168201806040525081019062000675919062000dad565b60015b62000701573d8060008114620006ab576040519150601f19603f3d011682016040523d82523d6000602084013e620006b0565b606091505b50600081511415620006f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f09062000faa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505062000757565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b620007e38383836200092560201b62001b671760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000830576200082a816200092a60201b60201c565b62000878565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000877576200087683826200097360201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008c557620008bf8162000a8360201b60201c565b6200090d565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200090c576200090b828262000b2160201b60201c565b5b5b505050565b600080823b905060008111915050919050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016200098d8462000bad60201b62000f4b1760201c565b6200099991906200113d565b905060006008600084815260200190815260200160002054905081811462000a12576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160098054905062000a9991906200113d565b90506000600a600084815260200190815260200160002054905060006009838154811062000acc5762000acb6200135f565b5b90600052602060002001549050600a600085815260200190815260200160002060009055600980548062000b055762000b0462001330565b5b6001900381819060005260206000200160009055905550505050565b600062000b398362000bad60201b62000f4b1760201c565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c189062000fee565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b82805462000c769062001218565b90600052602060002090601f01602090048101928262000c9a576000855562000ce6565b82601f1062000cb557805160ff191683800117855562000ce6565b8280016001018555821562000ce6579182015b8281111562000ce557825182559160200191906001019062000cc8565b5b50905062000cf5919062000cf9565b5090565b5b8082111562000d1457600081600090555060010162000cfa565b5090565b600062000d2f62000d29846200107d565b62001054565b90508281526020810184848401111562000d4e5762000d4d620013c2565b5b62000d5b848285620011e2565b509392505050565b60008151905062000d7481620014fb565b92915050565b600082601f83011262000d925762000d91620013bd565b5b815162000da484826020860162000d18565b91505092915050565b60006020828403121562000dc65762000dc5620013cc565b5b600062000dd68482850162000d63565b91505092915050565b60006020828403121562000df85762000df7620013cc565b5b600082015167ffffffffffffffff81111562000e195762000e18620013c7565b5b62000e278482850162000d7a565b91505092915050565b62000e3b8162001178565b82525050565b600062000e4e82620010b3565b62000e5a8185620010be565b935062000e6c818560208601620011e2565b62000e7781620013d1565b840191505092915050565b600062000e91603283620010cf565b915062000e9e82620013e2565b604082019050919050565b600062000eb8601c83620010cf565b915062000ec58262001431565b602082019050919050565b600062000edf602a83620010cf565b915062000eec826200145a565b604082019050919050565b600062000f06602083620010cf565b915062000f1382620014a9565b602082019050919050565b600062000f2d602083620010cf565b915062000f3a82620014d2565b602082019050919050565b62000f5081620011d8565b82525050565b600060808201905062000f6d600083018762000e30565b62000f7c602083018662000e30565b62000f8b604083018562000f45565b818103606083015262000f9f818462000e41565b905095945050505050565b6000602082019050818103600083015262000fc58162000e82565b9050919050565b6000602082019050818103600083015262000fe78162000ea9565b9050919050565b60006020820190508181036000830152620010098162000ed0565b9050919050565b600060208201905081810360008301526200102b8162000ef7565b9050919050565b600060208201905081810360008301526200104d8162000f1e565b9050919050565b60006200106062001073565b90506200106e82826200124e565b919050565b6000604051905090565b600067ffffffffffffffff8211156200109b576200109a6200138e565b5b620010a682620013d1565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620010ed82620011d8565b9150620010fa83620011d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620011325762001131620012d2565b5b828201905092915050565b60006200114a82620011d8565b91506200115783620011d8565b9250828210156200116d576200116c620012d2565b5b828203905092915050565b60006200118582620011b8565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562001202578082015181840152602081019050620011e5565b8381111562001212576000848401525b50505050565b600060028204905060018216806200123157607f821691505b6020821081141562001248576200124762001301565b5b50919050565b6200125982620013d1565b810181811067ffffffffffffffff821117156200127b576200127a6200138e565b5b80604052505050565b60006200129182620011d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620012c757620012c6620012d2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b62001506816200118c565b81146200151257600080fd5b50565b614a2580620015256000396000f3fe6080604052600436106102045760003560e01c80637664531511610118578063b88d4fde116100a0578063e75722301161006f578063e75722301461075c578063e8a3d48514610799578063e95e0b87146107c4578063e985e9c5146107ed578063f2fde38b1461082a57610204565b8063b88d4fde146106a0578063c87b56dd146106c9578063cd3293de14610706578063db4568e21461073157610204565b806395d89b41116100e757806395d89b41146105da578063a035b1fe14610605578063a0712d6814610630578063a22cb4651461064c578063a475b5dd1461067557610204565b806376645315146105325780638462151c146105495780638da5cb5b1461058657806391b7f5ed146105b157610204565b80632f745c591161019b5780634f6ccce71161016a5780634f6ccce71461042757806355f804b3146104645780636352211e1461048d57806370a08231146104ca578063743976a01461050757610204565b80632f745c591461037f5780633ccfd60b146103bc57806342842e0e146103d35780634e69d560146103fc57610204565b806318160ddd116101d757806318160ddd146102d7578063200d2ed21461030257806323b872dd1461032d5780632e49d78b1461035657610204565b806301ffc9a71461020957806306fdde0314610246578063081812fc14610271578063095ea7b3146102ae575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b9190613111565b610853565b60405161023d919061381a565b60405180910390f35b34801561025257600080fd5b5061025b6108cd565b6040516102689190613835565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906131b4565b61095f565b6040516102a59190613791565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906130d1565b6109e4565b005b3480156102e357600080fd5b506102ec610afc565b6040516102f99190613b37565b60405180910390f35b34801561030e57600080fd5b50610317610b09565b6040516103249190613b37565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f9190612fbb565b610b0f565b005b34801561036257600080fd5b5061037d600480360381019061037891906131e1565b610b6f565b005b34801561038b57600080fd5b506103a660048036038101906103a191906130d1565b610bf8565b6040516103b39190613b37565b60405180910390f35b3480156103c857600080fd5b506103d1610c9d565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612fbb565b610d68565b005b34801561040857600080fd5b50610411610d88565b60405161041e9190613b37565b60405180910390f35b34801561043357600080fd5b5061044e600480360381019061044991906131b4565b610d92565b60405161045b9190613b37565b60405180910390f35b34801561047057600080fd5b5061048b6004803603810190610486919061316b565b610e03565b005b34801561049957600080fd5b506104b460048036038101906104af91906131b4565b610e99565b6040516104c19190613791565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612f4e565b610f4b565b6040516104fe9190613b37565b60405180910390f35b34801561051357600080fd5b5061051c611003565b6040516105299190613835565b60405180910390f35b34801561053e57600080fd5b50610547611091565b005b34801561055557600080fd5b50610570600480360381019061056b9190612f4e565b611139565b60405161057d91906137f8565b60405180910390f35b34801561059257600080fd5b5061059b6111e7565b6040516105a89190613791565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d391906131b4565b611211565b005b3480156105e657600080fd5b506105ef611297565b6040516105fc9190613835565b60405180910390f35b34801561061157600080fd5b5061061a611329565b6040516106279190613b37565b60405180910390f35b61064a600480360381019061064591906131b4565b61132f565b005b34801561065857600080fd5b50610673600480360381019061066e9190613091565b6114e2565b005b34801561068157600080fd5b5061068a611663565b604051610697919061381a565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c2919061300e565b611676565b005b3480156106d557600080fd5b506106f060048036038101906106eb91906131b4565b6116d8565b6040516106fd9190613835565b60405180910390f35b34801561071257600080fd5b5061071b6117bb565b6040516107289190613b37565b60405180910390f35b34801561073d57600080fd5b506107466117c1565b6040516107539190613b37565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906131b4565b6117c7565b6040516107909190613b37565b60405180910390f35b3480156107a557600080fd5b506107ae6117de565b6040516107bb9190613835565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e691906130d1565b611833565b005b3480156107f957600080fd5b50610814600480360381019061080f9190612f7b565b6119c8565b604051610821919061381a565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612f4e565b611a5c565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c657506108c582611b6c565b5b9050919050565b6060600080546108dc90613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461090890613e2d565b80156109555780601f1061092a57610100808354040283529160200191610955565b820191906000526020600020905b81548152906001019060200180831161093857829003601f168201915b5050505050905090565b600061096a82611c4e565b6109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090613a17565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109ef82610e99565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790613ab7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a7f611cba565b73ffffffffffffffffffffffffffffffffffffffff161480610aae5750610aad81610aa8611cba565b6119c8565b5b610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613957565b60405180910390fd5b610af78383611cc2565b505050565b6000600980549050905090565b600e5481565b610b20610b1a611cba565b82611d7b565b610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613ad7565b60405180910390fd5b610b6a838383611e59565b505050565b610b77611cba565b73ffffffffffffffffffffffffffffffffffffffff16610b956111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290613a37565b60405180910390fd5b8060ff16600e8190555050565b6000610c0383610f4b565b8210610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90613877565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610ca5611cba565b73ffffffffffffffffffffffffffffffffffffffff16610cc36111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090613a37565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b5050565b610d8383838360405180602001604052806000815250611676565b505050565b6000600e54905090565b6000610d9c610afc565b8210610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613af7565b60405180910390fd5b60098281548110610df157610df0613fc6565b5b90600052602060002001549050919050565b610e0b611cba565b73ffffffffffffffffffffffffffffffffffffffff16610e296111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690613a37565b60405180910390fd5b8060069080519060200190610e95929190612d4d565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990613997565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390613977565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6006805461101090613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461103c90613e2d565b80156110895780601f1061105e57610100808354040283529160200191611089565b820191906000526020600020905b81548152906001019060200180831161106c57829003601f168201915b505050505081565b611099611cba565b73ffffffffffffffffffffffffffffffffffffffff166110b76111e7565b73ffffffffffffffffffffffffffffffffffffffff161461110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490613a37565b60405180910390fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b6060600061114683610f4b565b905060008167ffffffffffffffff81111561116457611163613ff5565b5b6040519080825280602002602001820160405280156111925781602001602082028036833780820191505090505b50905060005b828110156111dc576111aa8582610bf8565b8282815181106111bd576111bc613fc6565b5b60200260200101818152505080806111d490613e90565b915050611198565b508092505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611219611cba565b73ffffffffffffffffffffffffffffffffffffffff166112376111e7565b73ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490613a37565b60405180910390fd5b80600d8190555050565b6060600180546112a690613e2d565b80601f01602080910402602001604051908101604052809291908181526020018280546112d290613e2d565b801561131f5780601f106112f45761010080835404028352916020019161131f565b820191906000526020600020905b81548152906001019060200180831161130257829003601f168201915b5050505050905090565b600d5481565b61138761133a610afc565b1061137a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611371906139f7565b60405180910390fd5b61138781611386610afc565b6113909190613c55565b11156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890613a57565b60405180910390fd5b60008111611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613857565b60405180910390fd5b3461142a82600d546120b590919063ffffffff16565b1461146a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611461906139b7565b60405180910390fd5b6001600e54146114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690613b17565b60405180910390fd5b60005b818110156114de576114cb336114c66120cb565b6120e6565b80806114d690613e90565b9150506114b2565b5050565b6114ea611cba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613917565b60405180910390fd5b8060056000611565611cba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611612611cba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611657919061381a565b60405180910390a35050565b600f60009054906101000a900460ff1681565b611687611681611cba565b83611d7b565b6116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90613ad7565b60405180910390fd5b6116d284848484612104565b50505050565b60606116e382611c4e565b611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613a97565b60405180910390fd5b600061172c612160565b90506000815111156117a257600f60009054906101000a900460ff1661176f5760405160200161175b9061377c565b60405160208183030381529060405261179a565b80611779846121f2565b60405160200161178a929190613716565b6040516020818303038152906040525b9150506117b6565b604051806020016040528060008152509150505b919050565b600c5481565b61138781565b6000600d54826117d79190613cdc565b9050919050565b606060006118086040516020016117f490613745565b604051602081830303815290604052612353565b90508060405160200161181b919061375a565b60405160208183030381529060405290508091505090565b61183b611cba565b73ffffffffffffffffffffffffffffffffffffffff166118596111e7565b73ffffffffffffffffffffffffffffffffffffffff16146118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613a37565b60405180910390fd5b6113876118ba610afc565b106118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906139f7565b60405180910390fd5b61138781611906610afc565b6119109190613c55565b1115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890613a57565b60405180910390fd5b60008111611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613857565b60405180910390fd5b60005b818110156119c3576119b0836119ab6120cb565b6120e6565b80806119bb90613e90565b915050611997565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a64611cba565b73ffffffffffffffffffffffffffffffffffffffff16611a826111e7565b73ffffffffffffffffffffffffffffffffffffffff1614611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613a37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f906138b7565b60405180910390fd5b611b51816124eb565b50565b600080823b905060008111915050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c3757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c475750611c46826125b1565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611d3583610e99565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611d8682611c4e565b611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613937565b60405180910390fd5b6000611dd083610e99565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611e3f57508373ffffffffffffffffffffffffffffffffffffffff16611e278461095f565b73ffffffffffffffffffffffffffffffffffffffff16145b80611e505750611e4f81856119c8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611e7982610e99565b73ffffffffffffffffffffffffffffffffffffffff1614611ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec690613a77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f36906138f7565b60405180910390fd5b611f4a83838361261b565b611f55600082611cc2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fa59190613d36565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ffc9190613c55565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836120c39190613cdc565b905092915050565b600060016120d7610afc565b6120e19190613c55565b905090565b61210082826040518060200160405280600081525061272f565b5050565b61210f848484611e59565b61211b8484848461278a565b61215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190613897565b60405180910390fd5b50505050565b60606006805461216f90613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461219b90613e2d565b80156121e85780601f106121bd576101008083540402835291602001916121e8565b820191906000526020600020905b8154815290600101906020018083116121cb57829003601f168201915b5050505050905090565b6060600082141561223a576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061234e565b600082905060005b6000821461226c57808061225590613e90565b915050600a826122659190613cab565b9150612242565b60008167ffffffffffffffff81111561228857612287613ff5565b5b6040519080825280601f01601f1916602001820160405280156122ba5781602001600182028036833780820191505090505b5090505b60008514612347576001826122d39190613d36565b9150600a856122e29190613ed9565b60306122ee9190613c55565b60f81b81838151811061230457612303613fc6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123409190613cab565b94506122be565b8093505050505b919050565b6060600082519050600081141561237c57604051806020016040528060008152509150506124e6565b6000600360028361238d9190613c55565b6123979190613cab565b60046123a39190613cdc565b905060006020826123b49190613c55565b67ffffffffffffffff8111156123cd576123cc613ff5565b5b6040519080825280601f01601f1916602001820160405280156123ff5781602001600182028036833780820191505090505b50905060006040518060600160405280604081526020016149b0604091399050600181016020830160005b868110156124a35760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b9050808452600484019350505061242a565b5060038606600181146124bd57600281146124cd576124d8565b613d3d60f01b60028303526124d8565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612626838383611b67565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126695761266481612921565b6126a8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146126a7576126a6838261296a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126eb576126e681612a6a565b61272a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612729576127288282612b00565b5b5b505050565b6127398383612b7f565b612746600084848461278a565b612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c90613897565b60405180910390fd5b505050565b60006127ab8473ffffffffffffffffffffffffffffffffffffffff16611b54565b15612914578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026127d4611cba565b8786866040518563ffffffff1660e01b81526004016127f694939291906137ac565b602060405180830381600087803b15801561281057600080fd5b505af192505050801561284157506040513d601f19601f8201168201806040525081019061283e919061313e565b60015b6128c4573d8060008114612871576040519150601f19603f3d011682016040523d82523d6000602084013e612876565b606091505b506000815114156128bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b390613897565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612919565b600190505b949350505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161297784610f4b565b6129819190613d36565b90506000600860008481526020019081526020016000205490508181146129f9576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612a7e9190613d36565b90506000600a6000848152602001908152602001600020549050600060098381548110612aae57612aad613fc6565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612ae457612ae3613f97565b5b6001900381819060005260206000200160009055905550505050565b6000612b0b83610f4b565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be6906139d7565b60405180910390fd5b612bf881611c4e565b15612c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2f906138d7565b60405180910390fd5b612c446000838361261b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c949190613c55565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b828054612d5990613e2d565b90600052602060002090601f016020900481019282612d7b5760008555612dc2565b82601f10612d9457805160ff1916838001178555612dc2565b82800160010185558215612dc2579182015b82811115612dc1578251825591602001919060010190612da6565b5b509050612dcf9190612dd3565b5090565b5b80821115612dec576000816000905550600101612dd4565b5090565b6000612e03612dfe84613b77565b613b52565b905082815260208101848484011115612e1f57612e1e614029565b5b612e2a848285613deb565b509392505050565b6000612e45612e4084613ba8565b613b52565b905082815260208101848484011115612e6157612e60614029565b5b612e6c848285613deb565b509392505050565b600081359050612e838161493c565b92915050565b600081359050612e9881614953565b92915050565b600081359050612ead8161496a565b92915050565b600081519050612ec28161496a565b92915050565b600082601f830112612edd57612edc614024565b5b8135612eed848260208601612df0565b91505092915050565b600082601f830112612f0b57612f0a614024565b5b8135612f1b848260208601612e32565b91505092915050565b600081359050612f3381614981565b92915050565b600081359050612f4881614998565b92915050565b600060208284031215612f6457612f63614033565b5b6000612f7284828501612e74565b91505092915050565b60008060408385031215612f9257612f91614033565b5b6000612fa085828601612e74565b9250506020612fb185828601612e74565b9150509250929050565b600080600060608486031215612fd457612fd3614033565b5b6000612fe286828701612e74565b9350506020612ff386828701612e74565b925050604061300486828701612f24565b9150509250925092565b6000806000806080858703121561302857613027614033565b5b600061303687828801612e74565b945050602061304787828801612e74565b935050604061305887828801612f24565b925050606085013567ffffffffffffffff8111156130795761307861402e565b5b61308587828801612ec8565b91505092959194509250565b600080604083850312156130a8576130a7614033565b5b60006130b685828601612e74565b92505060206130c785828601612e89565b9150509250929050565b600080604083850312156130e8576130e7614033565b5b60006130f685828601612e74565b925050602061310785828601612f24565b9150509250929050565b60006020828403121561312757613126614033565b5b600061313584828501612e9e565b91505092915050565b60006020828403121561315457613153614033565b5b600061316284828501612eb3565b91505092915050565b60006020828403121561318157613180614033565b5b600082013567ffffffffffffffff81111561319f5761319e61402e565b5b6131ab84828501612ef6565b91505092915050565b6000602082840312156131ca576131c9614033565b5b60006131d884828501612f24565b91505092915050565b6000602082840312156131f7576131f6614033565b5b600061320584828501612f39565b91505092915050565b600061321a83836136f8565b60208301905092915050565b61322f81613d6a565b82525050565b600061324082613be9565b61324a8185613c17565b935061325583613bd9565b8060005b8381101561328657815161326d888261320e565b975061327883613c0a565b925050600181019050613259565b5085935050505092915050565b61329c81613d7c565b82525050565b60006132ad82613bf4565b6132b78185613c28565b93506132c7818560208601613dfa565b6132d081614038565b840191505092915050565b60006132e682613bff565b6132f08185613c39565b9350613300818560208601613dfa565b61330981614038565b840191505092915050565b600061331f82613bff565b6133298185613c4a565b9350613339818560208601613dfa565b80840191505092915050565b60006133536101a383613c4a565b915061335e82614049565b6101a382019050919050565b6000613377603383613c39565b915061338282614266565b604082019050919050565b600061339a602b83613c39565b91506133a5826142b5565b604082019050919050565b60006133bd603283613c39565b91506133c882614304565b604082019050919050565b60006133e0602683613c39565b91506133eb82614353565b604082019050919050565b6000613403601c83613c39565b915061340e826143a2565b602082019050919050565b6000613426602483613c39565b9150613431826143cb565b604082019050919050565b6000613449601983613c39565b91506134548261441a565b602082019050919050565b600061346c602c83613c39565b915061347782614443565b604082019050919050565b600061348f603883613c39565b915061349a82614492565b604082019050919050565b60006134b2602a83613c39565b91506134bd826144e1565b604082019050919050565b60006134d5602983613c39565b91506134e082614530565b604082019050919050565b60006134f8601d83613c39565b91506135038261457f565b602082019050919050565b600061351b602083613c39565b9150613526826145a8565b602082019050919050565b600061353e600883613c39565b9150613549826145d1565b602082019050919050565b6000613561602c83613c39565b915061356c826145fa565b604082019050919050565b6000613584600583613c4a565b915061358f82614649565b600582019050919050565b60006135a7602083613c39565b91506135b282614672565b602082019050919050565b60006135ca602683613c39565b91506135d58261469b565b604082019050919050565b60006135ed602983613c39565b91506135f8826146ea565b604082019050919050565b6000613610602f83613c39565b915061361b82614739565b604082019050919050565b6000613633602183613c39565b915061363e82614788565b604082019050919050565b6000613656601d83613c4a565b9150613661826147d7565b601d82019050919050565b6000613679603183613c39565b915061368482614800565b604082019050919050565b600061369c602c83613c39565b91506136a78261484f565b604082019050919050565b60006136bf601483613c39565b91506136ca8261489e565b602082019050919050565b60006136e2605083613c4a565b91506136ed826148c7565b605082019050919050565b61370181613dd4565b82525050565b61371081613dd4565b82525050565b60006137228285613314565b915061372e8284613314565b915061373982613577565b91508190509392505050565b600061375082613345565b9150819050919050565b600061376582613649565b91506137718284613314565b915081905092915050565b6000613787826136d5565b9150819050919050565b60006020820190506137a66000830184613226565b92915050565b60006080820190506137c16000830187613226565b6137ce6020830186613226565b6137db6040830185613707565b81810360608301526137ed81846132a2565b905095945050505050565b600060208201905081810360008301526138128184613235565b905092915050565b600060208201905061382f6000830184613293565b92915050565b6000602082019050818103600083015261384f81846132db565b905092915050565b600060208201905081810360008301526138708161336a565b9050919050565b600060208201905081810360008301526138908161338d565b9050919050565b600060208201905081810360008301526138b0816133b0565b9050919050565b600060208201905081810360008301526138d0816133d3565b9050919050565b600060208201905081810360008301526138f0816133f6565b9050919050565b6000602082019050818103600083015261391081613419565b9050919050565b600060208201905081810360008301526139308161343c565b9050919050565b600060208201905081810360008301526139508161345f565b9050919050565b6000602082019050818103600083015261397081613482565b9050919050565b60006020820190508181036000830152613990816134a5565b9050919050565b600060208201905081810360008301526139b0816134c8565b9050919050565b600060208201905081810360008301526139d0816134eb565b9050919050565b600060208201905081810360008301526139f08161350e565b9050919050565b60006020820190508181036000830152613a1081613531565b9050919050565b60006020820190508181036000830152613a3081613554565b9050919050565b60006020820190508181036000830152613a508161359a565b9050919050565b60006020820190508181036000830152613a70816135bd565b9050919050565b60006020820190508181036000830152613a90816135e0565b9050919050565b60006020820190508181036000830152613ab081613603565b9050919050565b60006020820190508181036000830152613ad081613626565b9050919050565b60006020820190508181036000830152613af08161366c565b9050919050565b60006020820190508181036000830152613b108161368f565b9050919050565b60006020820190508181036000830152613b30816136b2565b9050919050565b6000602082019050613b4c6000830184613707565b92915050565b6000613b5c613b6d565b9050613b688282613e5f565b919050565b6000604051905090565b600067ffffffffffffffff821115613b9257613b91613ff5565b5b613b9b82614038565b9050602081019050919050565b600067ffffffffffffffff821115613bc357613bc2613ff5565b5b613bcc82614038565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613c6082613dd4565b9150613c6b83613dd4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ca057613c9f613f0a565b5b828201905092915050565b6000613cb682613dd4565b9150613cc183613dd4565b925082613cd157613cd0613f39565b5b828204905092915050565b6000613ce782613dd4565b9150613cf283613dd4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d2b57613d2a613f0a565b5b828202905092915050565b6000613d4182613dd4565b9150613d4c83613dd4565b925082821015613d5f57613d5e613f0a565b5b828203905092915050565b6000613d7582613db4565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613e18578082015181840152602081019050613dfd565b83811115613e27576000848401525b50505050565b60006002820490506001821680613e4557607f821691505b60208210811415613e5957613e58613f68565b5b50919050565b613e6882614038565b810181811067ffffffffffffffff82111715613e8757613e86613ff5565b5b80604052505050565b6000613e9b82613dd4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ece57613ecd613f0a565b5b600182019050919050565b6000613ee482613dd4565b9150613eef83613dd4565b925082613eff57613efe613f39565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f7b226e616d65223a2022546564647942616e64697473222c202264657363726960008201527f7074696f6e223a20225468652073746f7279207265766f6c7665732061726f7560208201527f6e6420612066616374696f6e206f66207465646479206265617273207769746860408201527f206120636f64652e204120636f64652074686174206d757374206e6f7420626560608201527f2062726f6b656e206f7220656c736520636f6e73657175656e6365732077696c60808201527f6c20666f6c6c6f7720746f2074686f73652077686f2076696f6c61746520697460a08201527f2e2042616e646974732077696c6c2070756e6973682065766572796f6e65207760c08201527f686f20627265616b732074686520636f64653b207768696368206973206c656160e08201527f76696e67207468652066616374696f6e2c2062792066696e696e67207468656d6101008201527f206120736d616c6c2066656520666f722074686569722070756e6973686d656e6101208201527f742e222c202273656c6c65725f6665655f62617369735f706f696e7473223a206101408201527f3530302c20226665655f726563697069656e74223a20223078336264383036316101608201527f43383236323236333633303838623463633338633246623235623639373834666101808201527f38227d00000000000000000000000000000000000000000000000000000000006101a082015250565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f5468652073616c65206973206e6f74206f70656e000000000000000000000000600082015250565b7f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f69706660008201527f732f516d56666478504c5539734870783757426239347161694763473132327a60208201527f6664344d777046576f76636b4d794a5a00000000000000000000000000000000604082015250565b61494581613d6a565b811461495057600080fd5b50565b61495c81613d7c565b811461496757600080fd5b50565b61497381613d88565b811461497e57600080fd5b50565b61498a81613dd4565b811461499557600080fd5b50565b6149a181613dde565b81146149ac57600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212207a5a48d7eae81f05b0860d4e51ac9b2a6a295bb24b3c3df92d407fddd91e6cc164736f6c63430008070033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000012300000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102045760003560e01c80637664531511610118578063b88d4fde116100a0578063e75722301161006f578063e75722301461075c578063e8a3d48514610799578063e95e0b87146107c4578063e985e9c5146107ed578063f2fde38b1461082a57610204565b8063b88d4fde146106a0578063c87b56dd146106c9578063cd3293de14610706578063db4568e21461073157610204565b806395d89b41116100e757806395d89b41146105da578063a035b1fe14610605578063a0712d6814610630578063a22cb4651461064c578063a475b5dd1461067557610204565b806376645315146105325780638462151c146105495780638da5cb5b1461058657806391b7f5ed146105b157610204565b80632f745c591161019b5780634f6ccce71161016a5780634f6ccce71461042757806355f804b3146104645780636352211e1461048d57806370a08231146104ca578063743976a01461050757610204565b80632f745c591461037f5780633ccfd60b146103bc57806342842e0e146103d35780634e69d560146103fc57610204565b806318160ddd116101d757806318160ddd146102d7578063200d2ed21461030257806323b872dd1461032d5780632e49d78b1461035657610204565b806301ffc9a71461020957806306fdde0314610246578063081812fc14610271578063095ea7b3146102ae575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b9190613111565b610853565b60405161023d919061381a565b60405180910390f35b34801561025257600080fd5b5061025b6108cd565b6040516102689190613835565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906131b4565b61095f565b6040516102a59190613791565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906130d1565b6109e4565b005b3480156102e357600080fd5b506102ec610afc565b6040516102f99190613b37565b60405180910390f35b34801561030e57600080fd5b50610317610b09565b6040516103249190613b37565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f9190612fbb565b610b0f565b005b34801561036257600080fd5b5061037d600480360381019061037891906131e1565b610b6f565b005b34801561038b57600080fd5b506103a660048036038101906103a191906130d1565b610bf8565b6040516103b39190613b37565b60405180910390f35b3480156103c857600080fd5b506103d1610c9d565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612fbb565b610d68565b005b34801561040857600080fd5b50610411610d88565b60405161041e9190613b37565b60405180910390f35b34801561043357600080fd5b5061044e600480360381019061044991906131b4565b610d92565b60405161045b9190613b37565b60405180910390f35b34801561047057600080fd5b5061048b6004803603810190610486919061316b565b610e03565b005b34801561049957600080fd5b506104b460048036038101906104af91906131b4565b610e99565b6040516104c19190613791565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612f4e565b610f4b565b6040516104fe9190613b37565b60405180910390f35b34801561051357600080fd5b5061051c611003565b6040516105299190613835565b60405180910390f35b34801561053e57600080fd5b50610547611091565b005b34801561055557600080fd5b50610570600480360381019061056b9190612f4e565b611139565b60405161057d91906137f8565b60405180910390f35b34801561059257600080fd5b5061059b6111e7565b6040516105a89190613791565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d391906131b4565b611211565b005b3480156105e657600080fd5b506105ef611297565b6040516105fc9190613835565b60405180910390f35b34801561061157600080fd5b5061061a611329565b6040516106279190613b37565b60405180910390f35b61064a600480360381019061064591906131b4565b61132f565b005b34801561065857600080fd5b50610673600480360381019061066e9190613091565b6114e2565b005b34801561068157600080fd5b5061068a611663565b604051610697919061381a565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c2919061300e565b611676565b005b3480156106d557600080fd5b506106f060048036038101906106eb91906131b4565b6116d8565b6040516106fd9190613835565b60405180910390f35b34801561071257600080fd5b5061071b6117bb565b6040516107289190613b37565b60405180910390f35b34801561073d57600080fd5b506107466117c1565b6040516107539190613b37565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906131b4565b6117c7565b6040516107909190613b37565b60405180910390f35b3480156107a557600080fd5b506107ae6117de565b6040516107bb9190613835565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e691906130d1565b611833565b005b3480156107f957600080fd5b50610814600480360381019061080f9190612f7b565b6119c8565b604051610821919061381a565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612f4e565b611a5c565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c657506108c582611b6c565b5b9050919050565b6060600080546108dc90613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461090890613e2d565b80156109555780601f1061092a57610100808354040283529160200191610955565b820191906000526020600020905b81548152906001019060200180831161093857829003601f168201915b5050505050905090565b600061096a82611c4e565b6109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090613a17565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109ef82610e99565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790613ab7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a7f611cba565b73ffffffffffffffffffffffffffffffffffffffff161480610aae5750610aad81610aa8611cba565b6119c8565b5b610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490613957565b60405180910390fd5b610af78383611cc2565b505050565b6000600980549050905090565b600e5481565b610b20610b1a611cba565b82611d7b565b610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613ad7565b60405180910390fd5b610b6a838383611e59565b505050565b610b77611cba565b73ffffffffffffffffffffffffffffffffffffffff16610b956111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290613a37565b60405180910390fd5b8060ff16600e8190555050565b6000610c0383610f4b565b8210610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90613877565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610ca5611cba565b73ffffffffffffffffffffffffffffffffffffffff16610cc36111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090613a37565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b5050565b610d8383838360405180602001604052806000815250611676565b505050565b6000600e54905090565b6000610d9c610afc565b8210610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613af7565b60405180910390fd5b60098281548110610df157610df0613fc6565b5b90600052602060002001549050919050565b610e0b611cba565b73ffffffffffffffffffffffffffffffffffffffff16610e296111e7565b73ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7690613a37565b60405180910390fd5b8060069080519060200190610e95929190612d4d565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990613997565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390613977565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6006805461101090613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461103c90613e2d565b80156110895780601f1061105e57610100808354040283529160200191611089565b820191906000526020600020905b81548152906001019060200180831161106c57829003601f168201915b505050505081565b611099611cba565b73ffffffffffffffffffffffffffffffffffffffff166110b76111e7565b73ffffffffffffffffffffffffffffffffffffffff161461110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490613a37565b60405180910390fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b6060600061114683610f4b565b905060008167ffffffffffffffff81111561116457611163613ff5565b5b6040519080825280602002602001820160405280156111925781602001602082028036833780820191505090505b50905060005b828110156111dc576111aa8582610bf8565b8282815181106111bd576111bc613fc6565b5b60200260200101818152505080806111d490613e90565b915050611198565b508092505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611219611cba565b73ffffffffffffffffffffffffffffffffffffffff166112376111e7565b73ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490613a37565b60405180910390fd5b80600d8190555050565b6060600180546112a690613e2d565b80601f01602080910402602001604051908101604052809291908181526020018280546112d290613e2d565b801561131f5780601f106112f45761010080835404028352916020019161131f565b820191906000526020600020905b81548152906001019060200180831161130257829003601f168201915b5050505050905090565b600d5481565b61138761133a610afc565b1061137a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611371906139f7565b60405180910390fd5b61138781611386610afc565b6113909190613c55565b11156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890613a57565b60405180910390fd5b60008111611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613857565b60405180910390fd5b3461142a82600d546120b590919063ffffffff16565b1461146a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611461906139b7565b60405180910390fd5b6001600e54146114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690613b17565b60405180910390fd5b60005b818110156114de576114cb336114c66120cb565b6120e6565b80806114d690613e90565b9150506114b2565b5050565b6114ea611cba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613917565b60405180910390fd5b8060056000611565611cba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611612611cba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611657919061381a565b60405180910390a35050565b600f60009054906101000a900460ff1681565b611687611681611cba565b83611d7b565b6116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90613ad7565b60405180910390fd5b6116d284848484612104565b50505050565b60606116e382611c4e565b611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613a97565b60405180910390fd5b600061172c612160565b90506000815111156117a257600f60009054906101000a900460ff1661176f5760405160200161175b9061377c565b60405160208183030381529060405261179a565b80611779846121f2565b60405160200161178a929190613716565b6040516020818303038152906040525b9150506117b6565b604051806020016040528060008152509150505b919050565b600c5481565b61138781565b6000600d54826117d79190613cdc565b9050919050565b606060006118086040516020016117f490613745565b604051602081830303815290604052612353565b90508060405160200161181b919061375a565b60405160208183030381529060405290508091505090565b61183b611cba565b73ffffffffffffffffffffffffffffffffffffffff166118596111e7565b73ffffffffffffffffffffffffffffffffffffffff16146118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613a37565b60405180910390fd5b6113876118ba610afc565b106118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906139f7565b60405180910390fd5b61138781611906610afc565b6119109190613c55565b1115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890613a57565b60405180910390fd5b60008111611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613857565b60405180910390fd5b60005b818110156119c3576119b0836119ab6120cb565b6120e6565b80806119bb90613e90565b915050611997565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a64611cba565b73ffffffffffffffffffffffffffffffffffffffff16611a826111e7565b73ffffffffffffffffffffffffffffffffffffffff1614611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613a37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f906138b7565b60405180910390fd5b611b51816124eb565b50565b600080823b905060008111915050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c3757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c475750611c46826125b1565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611d3583610e99565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611d8682611c4e565b611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613937565b60405180910390fd5b6000611dd083610e99565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611e3f57508373ffffffffffffffffffffffffffffffffffffffff16611e278461095f565b73ffffffffffffffffffffffffffffffffffffffff16145b80611e505750611e4f81856119c8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611e7982610e99565b73ffffffffffffffffffffffffffffffffffffffff1614611ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec690613a77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f36906138f7565b60405180910390fd5b611f4a83838361261b565b611f55600082611cc2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fa59190613d36565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ffc9190613c55565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836120c39190613cdc565b905092915050565b600060016120d7610afc565b6120e19190613c55565b905090565b61210082826040518060200160405280600081525061272f565b5050565b61210f848484611e59565b61211b8484848461278a565b61215a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215190613897565b60405180910390fd5b50505050565b60606006805461216f90613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461219b90613e2d565b80156121e85780601f106121bd576101008083540402835291602001916121e8565b820191906000526020600020905b8154815290600101906020018083116121cb57829003601f168201915b5050505050905090565b6060600082141561223a576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061234e565b600082905060005b6000821461226c57808061225590613e90565b915050600a826122659190613cab565b9150612242565b60008167ffffffffffffffff81111561228857612287613ff5565b5b6040519080825280601f01601f1916602001820160405280156122ba5781602001600182028036833780820191505090505b5090505b60008514612347576001826122d39190613d36565b9150600a856122e29190613ed9565b60306122ee9190613c55565b60f81b81838151811061230457612303613fc6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123409190613cab565b94506122be565b8093505050505b919050565b6060600082519050600081141561237c57604051806020016040528060008152509150506124e6565b6000600360028361238d9190613c55565b6123979190613cab565b60046123a39190613cdc565b905060006020826123b49190613c55565b67ffffffffffffffff8111156123cd576123cc613ff5565b5b6040519080825280601f01601f1916602001820160405280156123ff5781602001600182028036833780820191505090505b50905060006040518060600160405280604081526020016149b0604091399050600181016020830160005b868110156124a35760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b9050808452600484019350505061242a565b5060038606600181146124bd57600281146124cd576124d8565b613d3d60f01b60028303526124d8565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612626838383611b67565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126695761266481612921565b6126a8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146126a7576126a6838261296a565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126eb576126e681612a6a565b61272a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612729576127288282612b00565b5b5b505050565b6127398383612b7f565b612746600084848461278a565b612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c90613897565b60405180910390fd5b505050565b60006127ab8473ffffffffffffffffffffffffffffffffffffffff16611b54565b15612914578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026127d4611cba565b8786866040518563ffffffff1660e01b81526004016127f694939291906137ac565b602060405180830381600087803b15801561281057600080fd5b505af192505050801561284157506040513d601f19601f8201168201806040525081019061283e919061313e565b60015b6128c4573d8060008114612871576040519150601f19603f3d011682016040523d82523d6000602084013e612876565b606091505b506000815114156128bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b390613897565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612919565b600190505b949350505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161297784610f4b565b6129819190613d36565b90506000600860008481526020019081526020016000205490508181146129f9576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612a7e9190613d36565b90506000600a6000848152602001908152602001600020549050600060098381548110612aae57612aad613fc6565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612ae457612ae3613f97565b5b6001900381819060005260206000200160009055905550505050565b6000612b0b83610f4b565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be6906139d7565b60405180910390fd5b612bf881611c4e565b15612c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2f906138d7565b60405180910390fd5b612c446000838361261b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c949190613c55565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b828054612d5990613e2d565b90600052602060002090601f016020900481019282612d7b5760008555612dc2565b82601f10612d9457805160ff1916838001178555612dc2565b82800160010185558215612dc2579182015b82811115612dc1578251825591602001919060010190612da6565b5b509050612dcf9190612dd3565b5090565b5b80821115612dec576000816000905550600101612dd4565b5090565b6000612e03612dfe84613b77565b613b52565b905082815260208101848484011115612e1f57612e1e614029565b5b612e2a848285613deb565b509392505050565b6000612e45612e4084613ba8565b613b52565b905082815260208101848484011115612e6157612e60614029565b5b612e6c848285613deb565b509392505050565b600081359050612e838161493c565b92915050565b600081359050612e9881614953565b92915050565b600081359050612ead8161496a565b92915050565b600081519050612ec28161496a565b92915050565b600082601f830112612edd57612edc614024565b5b8135612eed848260208601612df0565b91505092915050565b600082601f830112612f0b57612f0a614024565b5b8135612f1b848260208601612e32565b91505092915050565b600081359050612f3381614981565b92915050565b600081359050612f4881614998565b92915050565b600060208284031215612f6457612f63614033565b5b6000612f7284828501612e74565b91505092915050565b60008060408385031215612f9257612f91614033565b5b6000612fa085828601612e74565b9250506020612fb185828601612e74565b9150509250929050565b600080600060608486031215612fd457612fd3614033565b5b6000612fe286828701612e74565b9350506020612ff386828701612e74565b925050604061300486828701612f24565b9150509250925092565b6000806000806080858703121561302857613027614033565b5b600061303687828801612e74565b945050602061304787828801612e74565b935050604061305887828801612f24565b925050606085013567ffffffffffffffff8111156130795761307861402e565b5b61308587828801612ec8565b91505092959194509250565b600080604083850312156130a8576130a7614033565b5b60006130b685828601612e74565b92505060206130c785828601612e89565b9150509250929050565b600080604083850312156130e8576130e7614033565b5b60006130f685828601612e74565b925050602061310785828601612f24565b9150509250929050565b60006020828403121561312757613126614033565b5b600061313584828501612e9e565b91505092915050565b60006020828403121561315457613153614033565b5b600061316284828501612eb3565b91505092915050565b60006020828403121561318157613180614033565b5b600082013567ffffffffffffffff81111561319f5761319e61402e565b5b6131ab84828501612ef6565b91505092915050565b6000602082840312156131ca576131c9614033565b5b60006131d884828501612f24565b91505092915050565b6000602082840312156131f7576131f6614033565b5b600061320584828501612f39565b91505092915050565b600061321a83836136f8565b60208301905092915050565b61322f81613d6a565b82525050565b600061324082613be9565b61324a8185613c17565b935061325583613bd9565b8060005b8381101561328657815161326d888261320e565b975061327883613c0a565b925050600181019050613259565b5085935050505092915050565b61329c81613d7c565b82525050565b60006132ad82613bf4565b6132b78185613c28565b93506132c7818560208601613dfa565b6132d081614038565b840191505092915050565b60006132e682613bff565b6132f08185613c39565b9350613300818560208601613dfa565b61330981614038565b840191505092915050565b600061331f82613bff565b6133298185613c4a565b9350613339818560208601613dfa565b80840191505092915050565b60006133536101a383613c4a565b915061335e82614049565b6101a382019050919050565b6000613377603383613c39565b915061338282614266565b604082019050919050565b600061339a602b83613c39565b91506133a5826142b5565b604082019050919050565b60006133bd603283613c39565b91506133c882614304565b604082019050919050565b60006133e0602683613c39565b91506133eb82614353565b604082019050919050565b6000613403601c83613c39565b915061340e826143a2565b602082019050919050565b6000613426602483613c39565b9150613431826143cb565b604082019050919050565b6000613449601983613c39565b91506134548261441a565b602082019050919050565b600061346c602c83613c39565b915061347782614443565b604082019050919050565b600061348f603883613c39565b915061349a82614492565b604082019050919050565b60006134b2602a83613c39565b91506134bd826144e1565b604082019050919050565b60006134d5602983613c39565b91506134e082614530565b604082019050919050565b60006134f8601d83613c39565b91506135038261457f565b602082019050919050565b600061351b602083613c39565b9150613526826145a8565b602082019050919050565b600061353e600883613c39565b9150613549826145d1565b602082019050919050565b6000613561602c83613c39565b915061356c826145fa565b604082019050919050565b6000613584600583613c4a565b915061358f82614649565b600582019050919050565b60006135a7602083613c39565b91506135b282614672565b602082019050919050565b60006135ca602683613c39565b91506135d58261469b565b604082019050919050565b60006135ed602983613c39565b91506135f8826146ea565b604082019050919050565b6000613610602f83613c39565b915061361b82614739565b604082019050919050565b6000613633602183613c39565b915061363e82614788565b604082019050919050565b6000613656601d83613c4a565b9150613661826147d7565b601d82019050919050565b6000613679603183613c39565b915061368482614800565b604082019050919050565b600061369c602c83613c39565b91506136a78261484f565b604082019050919050565b60006136bf601483613c39565b91506136ca8261489e565b602082019050919050565b60006136e2605083613c4a565b91506136ed826148c7565b605082019050919050565b61370181613dd4565b82525050565b61371081613dd4565b82525050565b60006137228285613314565b915061372e8284613314565b915061373982613577565b91508190509392505050565b600061375082613345565b9150819050919050565b600061376582613649565b91506137718284613314565b915081905092915050565b6000613787826136d5565b9150819050919050565b60006020820190506137a66000830184613226565b92915050565b60006080820190506137c16000830187613226565b6137ce6020830186613226565b6137db6040830185613707565b81810360608301526137ed81846132a2565b905095945050505050565b600060208201905081810360008301526138128184613235565b905092915050565b600060208201905061382f6000830184613293565b92915050565b6000602082019050818103600083015261384f81846132db565b905092915050565b600060208201905081810360008301526138708161336a565b9050919050565b600060208201905081810360008301526138908161338d565b9050919050565b600060208201905081810360008301526138b0816133b0565b9050919050565b600060208201905081810360008301526138d0816133d3565b9050919050565b600060208201905081810360008301526138f0816133f6565b9050919050565b6000602082019050818103600083015261391081613419565b9050919050565b600060208201905081810360008301526139308161343c565b9050919050565b600060208201905081810360008301526139508161345f565b9050919050565b6000602082019050818103600083015261397081613482565b9050919050565b60006020820190508181036000830152613990816134a5565b9050919050565b600060208201905081810360008301526139b0816134c8565b9050919050565b600060208201905081810360008301526139d0816134eb565b9050919050565b600060208201905081810360008301526139f08161350e565b9050919050565b60006020820190508181036000830152613a1081613531565b9050919050565b60006020820190508181036000830152613a3081613554565b9050919050565b60006020820190508181036000830152613a508161359a565b9050919050565b60006020820190508181036000830152613a70816135bd565b9050919050565b60006020820190508181036000830152613a90816135e0565b9050919050565b60006020820190508181036000830152613ab081613603565b9050919050565b60006020820190508181036000830152613ad081613626565b9050919050565b60006020820190508181036000830152613af08161366c565b9050919050565b60006020820190508181036000830152613b108161368f565b9050919050565b60006020820190508181036000830152613b30816136b2565b9050919050565b6000602082019050613b4c6000830184613707565b92915050565b6000613b5c613b6d565b9050613b688282613e5f565b919050565b6000604051905090565b600067ffffffffffffffff821115613b9257613b91613ff5565b5b613b9b82614038565b9050602081019050919050565b600067ffffffffffffffff821115613bc357613bc2613ff5565b5b613bcc82614038565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613c6082613dd4565b9150613c6b83613dd4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ca057613c9f613f0a565b5b828201905092915050565b6000613cb682613dd4565b9150613cc183613dd4565b925082613cd157613cd0613f39565b5b828204905092915050565b6000613ce782613dd4565b9150613cf283613dd4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d2b57613d2a613f0a565b5b828202905092915050565b6000613d4182613dd4565b9150613d4c83613dd4565b925082821015613d5f57613d5e613f0a565b5b828203905092915050565b6000613d7582613db4565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613e18578082015181840152602081019050613dfd565b83811115613e27576000848401525b50505050565b60006002820490506001821680613e4557607f821691505b60208210811415613e5957613e58613f68565b5b50919050565b613e6882614038565b810181811067ffffffffffffffff82111715613e8757613e86613ff5565b5b80604052505050565b6000613e9b82613dd4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ece57613ecd613f0a565b5b600182019050919050565b6000613ee482613dd4565b9150613eef83613dd4565b925082613eff57613efe613f39565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f7b226e616d65223a2022546564647942616e64697473222c202264657363726960008201527f7074696f6e223a20225468652073746f7279207265766f6c7665732061726f7560208201527f6e6420612066616374696f6e206f66207465646479206265617273207769746860408201527f206120636f64652e204120636f64652074686174206d757374206e6f7420626560608201527f2062726f6b656e206f7220656c736520636f6e73657175656e6365732077696c60808201527f6c20666f6c6c6f7720746f2074686f73652077686f2076696f6c61746520697460a08201527f2e2042616e646974732077696c6c2070756e6973682065766572796f6e65207760c08201527f686f20627265616b732074686520636f64653b207768696368206973206c656160e08201527f76696e67207468652066616374696f6e2c2062792066696e696e67207468656d6101008201527f206120736d616c6c2066656520666f722074686569722070756e6973686d656e6101208201527f742e222c202273656c6c65725f6665655f62617369735f706f696e7473223a206101408201527f3530302c20226665655f726563697069656e74223a20223078336264383036316101608201527f43383236323236333633303838623463633338633246623235623639373834666101808201527f38227d00000000000000000000000000000000000000000000000000000000006101a082015250565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f5468652073616c65206973206e6f74206f70656e000000000000000000000000600082015250565b7f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f69706660008201527f732f516d56666478504c5539734870783757426239347161694763473132327a60208201527f6664344d777046576f76636b4d794a5a00000000000000000000000000000000604082015250565b61494581613d6a565b811461495057600080fd5b50565b61495c81613d7c565b811461496757600080fd5b50565b61497381613d88565b811461497e57600080fd5b50565b61498a81613dd4565b811461499557600080fd5b50565b6149a181613dde565b81146149ac57600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212207a5a48d7eae81f05b0860d4e51ac9b2a6a295bb24b3c3df92d407fddd91e6cc164736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000012300000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : baseURI (string): #
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 2300000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
22534:4261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19781:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12901:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14030:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13591:431;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20287:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22794:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14756:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23385:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20017:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25295:146;;;;;;;;;;;;;:::i;:::-;;15066:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23693:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20412:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23168:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12646:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12424:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11940:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23489:76;;;;;;;;;;;;;:::i;:::-;;24916:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10831:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23281:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13013:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22750:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24356:547;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14267:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22855:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15271:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25567:520;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22719:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22670:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23792:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26095:679;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23935:408;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14580:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11064:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19781:228;19883:4;19924:35;19909:50;;;:11;:50;;;;:90;;;;19963:36;19987:11;19963:23;:36::i;:::-;19909:90;19902:97;;19781:228;;;:::o;12901:104::-;12955:13;12990:5;12983:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12901:104;:::o;14030:229::-;14106:7;14136:16;14144:7;14136;:16::i;:::-;14128:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14225:15;:24;14241:7;14225:24;;;;;;;;;;;;;;;;;;;;;14218:31;;14030:229;;;:::o;13591:431::-;13674:13;13690:23;13705:7;13690:14;:23::i;:::-;13674:39;;13740:5;13734:11;;:2;:11;;;;13726:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13840:5;13824:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;13849:37;13866:5;13873:12;:10;:12::i;:::-;13849:16;:37::i;:::-;13824:62;13800:174;;;;;;;;;;;;:::i;:::-;;;;;;;;;13991:21;14000:2;14004:7;13991:8;:21::i;:::-;13661:361;13591:431;;:::o;20287:117::-;20348:7;20377:10;:17;;;;20370:24;;20287:117;:::o;22794:25::-;;;;:::o;14756:302::-;14908:41;14927:12;:10;:12::i;:::-;14941:7;14908:18;:41::i;:::-;14900:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;15020:28;15030:4;15036:2;15040:7;15020:9;:28::i;:::-;14756:302;;;:::o;23385:88::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23451:1:::1;23442:10;;:6;:10;;;;23385:88:::0;:::o;20017:262::-;20114:7;20152:23;20169:5;20152:16;:23::i;:::-;20144:5;:31;20136:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20243:12;:19;20256:5;20243:19;;;;;;;;;;;;;;;:26;20263:5;20243:26;;;;;;;;;;;;20236:33;;20017:262;;;;:::o;25295:146::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25345:12:::1;25360:21;25345:36;;25402:10;25394:28;;:37;25423:7;25394:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25332:109;25295:146::o:0;15066:197::-;15214:39;15231:4;15237:2;15241:7;15214:39;;;;;;;;;;;;:16;:39::i;:::-;15066:197;;;:::o;23693:91::-;23735:7;23764:6;;23757:13;;23693:91;:::o;20412:239::-;20487:7;20525:30;:28;:30::i;:::-;20517:5;:38;20509:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20624:10;20635:5;20624:17;;;;;;;;:::i;:::-;;;;;;;;;;20617:24;;20412:239;;;:::o;23168:101::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23252:7:::1;23241:8;:18;;;;;;;;;;;;:::i;:::-;;23168:101:::0;:::o;12646:247::-;12718:7;12740:13;12756:7;:16;12764:7;12756:16;;;;;;;;;;;;;;;;;;;;;12740:32;;12810:1;12793:19;;:5;:19;;;;12785:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12878:5;12871:12;;;12646:247;;;:::o;12424:214::-;12496:7;12543:1;12526:19;;:5;:19;;;;12518:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12612:9;:16;12622:5;12612:16;;;;;;;;;;;;;;;;12605:23;;12424:214;;;:::o;11940:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23489:76::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23549:6:::1;;;;;;;;;;;23547:8;23539:6;;:16;;;;;;;;;;;;;;;;;;23489:76::o:0;24916:367::-;24976:16;25014:13;25030:17;25040:6;25030:9;:17::i;:::-;25014:33;;25060:23;25100:5;25086:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25060:46;;25124:13;25119:129;25151:5;25143;:13;25119:129;;;25200:34;25220:6;25228:5;25200:19;:34::i;:::-;25184:6;25191:5;25184:13;;;;;;;;:::i;:::-;;;;;;;:50;;;;;25158:7;;;;;:::i;:::-;;;;25119:129;;;;25267:6;25260:13;;;;24916:367;;;:::o;10831:91::-;10877:7;10906:6;;;;;;;;;;;10899:13;;10831:91;:::o;23281:96::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23358:9:::1;23350:5;:17;;;;23281:96:::0;:::o;13013:108::-;13069:13;13104:7;13097:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13013:108;:::o;22750:34::-;;;;:::o;24356:547::-;22706:4;23620:13;:11;:13::i;:::-;:28;23612:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;22706:4:::1;24450:12;24436:13;:11;:13::i;:::-;:26;;;;:::i;:::-;:40;;24428:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;24554:1;24539:12;:16;24531:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;24671:9;24644:23;24654:12;24644:5;;:9;;:23;;;;:::i;:::-;:36;24636:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;24745:1;24735:6;;:11;24727:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;24792:6;24787:107;24808:12;24804:1;:16;24787:107;;;24844:36;24854:10;24866:13;:11;:13::i;:::-;24844:9;:36::i;:::-;24822:3;;;;;:::i;:::-;;;;24787:107;;;;24356:547:::0;:::o;14267:305::-;14384:12;:10;:12::i;:::-;14372:24;;:8;:24;;;;14364:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14488:8;14443:18;:32;14462:12;:10;:12::i;:::-;14443:32;;;;;;;;;;;;;;;:42;14476:8;14443:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;14543:8;14514:48;;14529:12;:10;:12::i;:::-;14514:48;;;14553:8;14514:48;;;;;;:::i;:::-;;;;;;;;14267:305;;:::o;22855:26::-;;;;;;;;;;;;;:::o;15271:344::-;15458:41;15477:12;:10;:12::i;:::-;15491:7;15458:18;:41::i;:::-;15450:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;15566:39;15580:4;15586:2;15590:7;15599:5;15566:13;:39::i;:::-;15271:344;;;;:::o;25567:520::-;25632:13;25668:16;25676:7;25668;:16::i;:::-;25660:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;25753:18;25774:9;:7;:9::i;:::-;25753:30;;25820:1;25805:4;25799:18;:22;25796:281;;;25846:6;;;;;;;;;;;:179;;25924:100;;;;;;;:::i;:::-;;;;;;;;;;;;;25846:179;;;25879:4;25885:18;:7;:16;:18::i;:::-;25862:51;;;;;;;;;:::i;:::-;;;;;;;;;;;;;25846:179;25839:186;;;;;25796:281;26068:9;;;;;;;;;;;;;;;25567:520;;;;:::o;22719:22::-;;;;:::o;22670:40::-;22706:4;22670:40;:::o;23792:127::-;23850:7;23903:5;;23893:9;:15;;;;:::i;:::-;23886:22;;23792:127;;;:::o;26095:679::-;26139:13;26167:18;26188:469;26215:439;;;;;;;:::i;:::-;;;;;;;;;;;;;26188:13;:469::i;:::-;26167:490;;26734:4;26684:55;;;;;;;;:::i;:::-;;;;;;;;;;;;;26670:70;;26760:4;26753:11;;;26095:679;:::o;23935:408::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22706:4:::1;23620:13;:11;:13::i;:::-;:28;23612:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;22706:4:::2;24055:12;24041:13;:11;:13::i;:::-;:26;;;;:::i;:::-;:40;;24033:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;24159:1;24144:12;:16;24136:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;24234:6;24229:105;24250:12;24246:1;:16;24229:105;;;24286:34;24296:8;24306:13;:11;:13::i;:::-;24286:9;:34::i;:::-;24264:3;;;;;:::i;:::-;;;;24229:105;;;;23935:408:::0;;:::o;14580:168::-;14677:4;14703:18;:25;14722:5;14703:25;;;;;;;;;;;;;;;:35;14729:8;14703:35;;;;;;;;;;;;;;;;;;;;;;;;;14696:42;;14580:168;;;;:::o;11064:198::-;10983:12;:10;:12::i;:::-;10972:23;;:7;:5;:7::i;:::-;:23;;;10964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11175:1:::1;11155:22;;:8;:22;;;;11147:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11233:19;11243:8;11233:9;:19::i;:::-;11064:198:::0;:::o;4231:212::-;4291:4;4314:12;4385:7;4373:20;4365:28;;4432:1;4425:4;:8;4418:15;;;4231:212;;;:::o;19317:134::-;;;;:::o;12101:315::-;12203:4;12259:25;12244:40;;;:11;:40;;;;:107;;;;12318:33;12303:48;;;:11;:48;;;;12244:107;:162;;;;12370:36;12394:11;12370:23;:36::i;:::-;12244:162;12222:184;;12101:315;;;:::o;15962:131::-;16027:4;16081:1;16053:30;;:7;:16;16061:7;16053:16;;;;;;;;;;;;;;;;;;;;;:30;;;;16046:37;;15962:131;;;:::o;10260:102::-;10313:7;10342:10;10335:17;;10260:102;:::o;18276:180::-;18380:2;18353:15;:24;18369:7;18353:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18438:7;18434:2;18400:46;;18409:23;18424:7;18409:14;:23::i;:::-;18400:46;;;;;;;;;;;;18276:180;;:::o;16101:356::-;16194:4;16221:16;16229:7;16221;:16::i;:::-;16213:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16299:13;16315:23;16330:7;16315:14;:23::i;:::-;16299:39;;16370:5;16359:16;;:7;:16;;;:51;;;;16403:7;16379:31;;:20;16391:7;16379:11;:20::i;:::-;:31;;;16359:51;:87;;;;16414:32;16431:5;16438:7;16414:16;:32::i;:::-;16359:87;16351:96;;;16101:356;;;;:::o;17708:560::-;17877:4;17850:31;;:23;17865:7;17850:14;:23::i;:::-;:31;;;17842:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17962:1;17948:16;;:2;:16;;;;17940:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18022:39;18043:4;18049:2;18053:7;18022:20;:39::i;:::-;18078:29;18095:1;18099:7;18078:8;:29::i;:::-;18143:1;18124:9;:15;18134:4;18124:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;18174:1;18157:9;:13;18167:2;18157:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;18207:2;18188:7;:16;18196:7;18188:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18250:7;18246:2;18231:27;;18240:4;18231:27;;;;;;;;;;;;17708:560;;;:::o;1559:102::-;1617:7;1650:1;1646;:5;;;;:::i;:::-;1639:12;;1559:102;;;;:::o;25449:110::-;25494:4;25548:1;25528:19;:17;:19::i;:::-;:21;;;;:::i;:::-;25521:28;;25449:110;:::o;16465:114::-;16543:26;16553:2;16557:7;16543:26;;;;;;;;;;;;:9;:26::i;:::-;16465:114;;:::o;15623:331::-;15792:28;15802:4;15808:2;15812:7;15792:9;:28::i;:::-;15841:48;15864:4;15870:2;15874:7;15883:5;15841:22;:48::i;:::-;15833:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;15623:331;;;;:::o;13480:103::-;13530:13;13565:8;13558:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13480:103;:::o;2778:570::-;2834:13;2879:1;2870:5;:10;2866:57;;;2899:10;;;;;;;;;;;;;;;;;;;;;2866:57;2935:12;2950:5;2935:20;;2968:14;2995:84;3010:1;3002:4;:9;2995:84;;3030:8;;;;;:::i;:::-;;;;3063:2;3055:10;;;;;:::i;:::-;;;2995:84;;;3091:19;3123:6;3113:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3091:39;;3143:162;3159:1;3150:5;:10;3143:162;;3189:1;3179:11;;;;;:::i;:::-;;;3258:2;3250:5;:10;;;;:::i;:::-;3237:2;:24;;;;:::i;:::-;3224:39;;3207:6;3214;3207:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;3289:2;3280:11;;;;;:::i;:::-;;;3143:162;;;3331:6;3317:21;;;;;2778:570;;;;:::o;27001:1707::-;27059:13;27087:11;27101:4;:11;27087:25;;27136:1;27129:3;:8;27125:23;;;27139:9;;;;;;;;;;;;;;;;;27125:23;27206:18;27244:1;27239;27233:3;:7;;;;:::i;:::-;27232:13;;;;:::i;:::-;27227:1;:19;;;;:::i;:::-;27206:40;;27310:19;27355:2;27342:10;:15;;;;:::i;:::-;27332:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27310:48;;27375:18;27396:5;;;;;;;;;;;;;;;;;27375:26;;27471:1;27464:5;27460:13;27518:2;27510:6;27506:15;27575:1;27541:817;27600:3;27597:1;27594:10;27541:817;;;27661:1;27658;27654:9;27649:14;;27721:8;27716:1;27710:4;27706:12;27700:19;27696:34;27805:4;27797:5;27793:2;27789:14;27785:25;27775:8;27771:40;27765:47;27846:3;27843:1;27839:11;27832:18;;27939:4;27930;27922:5;27918:2;27914:14;27910:25;27900:8;27896:40;27890:47;27886:58;27881:3;27877:68;27870:75;;27979:3;27976:1;27972:11;27965:18;;28071:4;28062;28054:5;28051:1;28047:13;28043:24;28033:8;28029:39;28023:46;28019:57;28014:3;28010:67;28003:74;;28111:3;28108:1;28104:11;28097:18;;28195:4;28186;28179:5;28175:16;28165:8;28161:31;28155:38;28151:49;28146:3;28142:59;28135:66;;28237:3;28232;28228:13;28221:20;;28283:3;28272:9;28265:22;28339:1;28328:9;28324:17;28311:30;;27628:730;;27541:817;;;27545:48;28394:1;28389:3;28385:11;28417:1;28412:88;;;;28521:1;28516:86;;;;28378:224;;28412:88;28475:6;28470:3;28466:16;28462:1;28451:9;28447:17;28440:43;28412:88;;28516:86;28579:4;28574:3;28570:14;28566:1;28555:9;28551:17;28544:41;28378:224;;28637:10;28629:6;28622:26;27427:1234;;28691:6;28677:21;;;;;;27001:1707;;;;:::o;11274:181::-;11332:16;11351:6;;;;;;;;;;;11332:25;;11379:8;11370:6;;:17;;;;;;;;;;;;;;;;;;11436:8;11405:40;;11426:8;11405:40;;;;;;;;;;;;11319:136;11274:181;:::o;8288:161::-;8373:4;8414:25;8399:40;;;:11;:40;;;;8392:47;;8288:161;;;:::o;20659:623::-;20813:45;20840:4;20846:2;20850:7;20813:26;:45::i;:::-;20895:1;20879:18;;:4;:18;;;20875:195;;;20916:40;20948:7;20916:31;:40::i;:::-;20875:195;;;20988:2;20980:10;;:4;:10;;;20976:94;;21009:47;21042:4;21048:7;21009:32;:47::i;:::-;20976:94;20875:195;21100:1;21086:16;;:2;:16;;;21082:191;;;21121:45;21158:7;21121:36;:45::i;:::-;21082:191;;;21196:4;21190:10;;:2;:10;;;21186:87;;21219:40;21247:2;21251:7;21219:27;:40::i;:::-;21186:87;21082:191;20659:623;;;:::o;16587:341::-;16727:18;16733:2;16737:7;16727:5;:18::i;:::-;16782:54;16813:1;16817:2;16821:7;16830:5;16782:22;:54::i;:::-;16758:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;16587:341;;;:::o;18464:845::-;18629:4;18652:15;:2;:13;;;:15::i;:::-;18648:652;;;18706:2;18690:36;;;18727:12;:10;:12::i;:::-;18741:4;18747:7;18756:5;18690:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;18686:553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18959:1;18942:6;:13;:18;18938:284;;;18987:60;;;;;;;;;;:::i;:::-;;;;;;;;18938:284;19168:6;19162:13;19153:6;19149:2;19145:15;19138:38;18686:553;18825:45;;;18815:55;;;:6;:55;;;;18808:62;;;;;18648:652;19282:4;19275:11;;18464:845;;;;;;;:::o;21527:170::-;21633:10;:17;;;;21606:15;:24;21622:7;21606:24;;;;;;;;;;;:44;;;;21663:10;21679:7;21663:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21527:170;:::o;21705:464::-;21803:22;21853:1;21828:22;21845:4;21828:16;:22::i;:::-;:26;;;;:::i;:::-;21803:51;;21867:18;21888:17;:26;21906:7;21888:26;;;;;;;;;;;;21867:47;;21949:14;21935:10;:28;21931:125;;21982:19;22004:12;:18;22017:4;22004:18;;;;;;;;;;;;;;;:34;22023:14;22004:34;;;;;;;;;;;;21982:56;;21965:91;21931:125;22079:17;:26;22097:7;22079:26;;;;;;;;;;;22072:33;;;22125:12;:18;22138:4;22125:18;;;;;;;;;;;;;;;:34;22144:14;22125:34;;;;;;;;;;;22118:41;;;21786:383;;21705:464;;:::o;22177:348::-;22265:22;22310:1;22290:10;:17;;;;:21;;;;:::i;:::-;22265:46;;22324:18;22345:15;:24;22361:7;22345:24;;;;;;;;;;;;22324:45;;22386:19;22408:10;22419:14;22408:26;;;;;;;;:::i;:::-;;;;;;;;;;22386:48;;22462:15;:24;22478:7;22462:24;;;;;;;;;;;22455:31;;;22499:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22248:277;;;22177:348;:::o;21290:229::-;21377:14;21394:20;21411:2;21394:16;:20::i;:::-;21377:37;;21454:7;21427:12;:16;21440:2;21427:16;;;;;;;;;;;;;;;:24;21444:6;21427:24;;;;;;;;;;;:34;;;;21503:6;21474:17;:26;21492:7;21474:26;;;;;;;;;;;:35;;;;21364:155;21290:229;;:::o;16936:402::-;17032:1;17018:16;;:2;:16;;;;17010:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17093:16;17101:7;17093;:16::i;:::-;17092:17;17084:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17159:45;17188:1;17192:2;17196:7;17159:20;:45::i;:::-;17238:1;17221:9;:13;17231:2;17221:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;17271:2;17252:7;:16;17260:7;17252:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17320:7;17316:2;17295:33;;17312:1;17295:33;;;;;;;;;;;;16936:402;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;986:133::-;1029:5;1067:6;1054:20;1045:29;;1083:30;1107:5;1083:30;:::i;:::-;986:133;;;;:::o;1125:137::-;1170:5;1208:6;1195:20;1186:29;;1224:32;1250:5;1224:32;:::i;:::-;1125:137;;;;:::o;1268:141::-;1324:5;1355:6;1349:13;1340:22;;1371:32;1397:5;1371:32;:::i;:::-;1268:141;;;;:::o;1428:338::-;1483:5;1532:3;1525:4;1517:6;1513:17;1509:27;1499:122;;1540:79;;:::i;:::-;1499:122;1657:6;1644:20;1682:78;1756:3;1748:6;1741:4;1733:6;1729:17;1682:78;:::i;:::-;1673:87;;1489:277;1428:338;;;;:::o;1786:340::-;1842:5;1891:3;1884:4;1876:6;1872:17;1868:27;1858:122;;1899:79;;:::i;:::-;1858:122;2016:6;2003:20;2041:79;2116:3;2108:6;2101:4;2093:6;2089:17;2041:79;:::i;:::-;2032:88;;1848:278;1786:340;;;;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:135::-;2321:5;2359:6;2346:20;2337:29;;2375:31;2400:5;2375:31;:::i;:::-;2277:135;;;;:::o;2418:329::-;2477:6;2526:2;2514:9;2505:7;2501:23;2497:32;2494:119;;;2532:79;;:::i;:::-;2494:119;2652:1;2677:53;2722:7;2713:6;2702:9;2698:22;2677:53;:::i;:::-;2667:63;;2623:117;2418:329;;;;:::o;2753:474::-;2821:6;2829;2878:2;2866:9;2857:7;2853:23;2849:32;2846:119;;;2884:79;;:::i;:::-;2846:119;3004:1;3029:53;3074:7;3065:6;3054:9;3050:22;3029:53;:::i;:::-;3019:63;;2975:117;3131:2;3157:53;3202:7;3193:6;3182:9;3178:22;3157:53;:::i;:::-;3147:63;;3102:118;2753:474;;;;;:::o;3233:619::-;3310:6;3318;3326;3375:2;3363:9;3354:7;3350:23;3346:32;3343:119;;;3381:79;;:::i;:::-;3343:119;3501:1;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3472:117;3628:2;3654:53;3699:7;3690:6;3679:9;3675:22;3654:53;:::i;:::-;3644:63;;3599:118;3756:2;3782:53;3827:7;3818:6;3807:9;3803:22;3782:53;:::i;:::-;3772:63;;3727:118;3233:619;;;;;:::o;3858:943::-;3953:6;3961;3969;3977;4026:3;4014:9;4005:7;4001:23;3997:33;3994:120;;;4033:79;;:::i;:::-;3994:120;4153:1;4178:53;4223:7;4214:6;4203:9;4199:22;4178:53;:::i;:::-;4168:63;;4124:117;4280:2;4306:53;4351:7;4342:6;4331:9;4327:22;4306:53;:::i;:::-;4296:63;;4251:118;4408:2;4434:53;4479:7;4470:6;4459:9;4455:22;4434:53;:::i;:::-;4424:63;;4379:118;4564:2;4553:9;4549:18;4536:32;4595:18;4587:6;4584:30;4581:117;;;4617:79;;:::i;:::-;4581:117;4722:62;4776:7;4767:6;4756:9;4752:22;4722:62;:::i;:::-;4712:72;;4507:287;3858:943;;;;;;;:::o;4807:468::-;4872:6;4880;4929:2;4917:9;4908:7;4904:23;4900:32;4897:119;;;4935:79;;:::i;:::-;4897:119;5055:1;5080:53;5125:7;5116:6;5105:9;5101:22;5080:53;:::i;:::-;5070:63;;5026:117;5182:2;5208:50;5250:7;5241:6;5230:9;5226:22;5208:50;:::i;:::-;5198:60;;5153:115;4807:468;;;;;:::o;5281:474::-;5349:6;5357;5406:2;5394:9;5385:7;5381:23;5377:32;5374:119;;;5412:79;;:::i;:::-;5374:119;5532:1;5557:53;5602:7;5593:6;5582:9;5578:22;5557:53;:::i;:::-;5547:63;;5503:117;5659:2;5685:53;5730:7;5721:6;5710:9;5706:22;5685:53;:::i;:::-;5675:63;;5630:118;5281:474;;;;;:::o;5761:327::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:52;6063:7;6054:6;6043:9;6039:22;6019:52;:::i;:::-;6009:62;;5965:116;5761:327;;;;:::o;6094:349::-;6163:6;6212:2;6200:9;6191:7;6187:23;6183:32;6180:119;;;6218:79;;:::i;:::-;6180:119;6338:1;6363:63;6418:7;6409:6;6398:9;6394:22;6363:63;:::i;:::-;6353:73;;6309:127;6094:349;;;;:::o;6449:509::-;6518:6;6567:2;6555:9;6546:7;6542:23;6538:32;6535:119;;;6573:79;;:::i;:::-;6535:119;6721:1;6710:9;6706:17;6693:31;6751:18;6743:6;6740:30;6737:117;;;6773:79;;:::i;:::-;6737:117;6878:63;6933:7;6924:6;6913:9;6909:22;6878:63;:::i;:::-;6868:73;;6664:287;6449:509;;;;:::o;6964:329::-;7023:6;7072:2;7060:9;7051:7;7047:23;7043:32;7040:119;;;7078:79;;:::i;:::-;7040:119;7198:1;7223:53;7268:7;7259:6;7248:9;7244:22;7223:53;:::i;:::-;7213:63;;7169:117;6964:329;;;;:::o;7299:325::-;7356:6;7405:2;7393:9;7384:7;7380:23;7376:32;7373:119;;;7411:79;;:::i;:::-;7373:119;7531:1;7556:51;7599:7;7590:6;7579:9;7575:22;7556:51;:::i;:::-;7546:61;;7502:115;7299:325;;;;:::o;7630:179::-;7699:10;7720:46;7762:3;7754:6;7720:46;:::i;:::-;7798:4;7793:3;7789:14;7775:28;;7630:179;;;;:::o;7815:118::-;7902:24;7920:5;7902:24;:::i;:::-;7897:3;7890:37;7815:118;;:::o;7969:732::-;8088:3;8117:54;8165:5;8117:54;:::i;:::-;8187:86;8266:6;8261:3;8187:86;:::i;:::-;8180:93;;8297:56;8347:5;8297:56;:::i;:::-;8376:7;8407:1;8392:284;8417:6;8414:1;8411:13;8392:284;;;8493:6;8487:13;8520:63;8579:3;8564:13;8520:63;:::i;:::-;8513:70;;8606:60;8659:6;8606:60;:::i;:::-;8596:70;;8452:224;8439:1;8436;8432:9;8427:14;;8392:284;;;8396:14;8692:3;8685:10;;8093:608;;;7969:732;;;;:::o;8707:109::-;8788:21;8803:5;8788:21;:::i;:::-;8783:3;8776:34;8707:109;;:::o;8822:360::-;8908:3;8936:38;8968:5;8936:38;:::i;:::-;8990:70;9053:6;9048:3;8990:70;:::i;:::-;8983:77;;9069:52;9114:6;9109:3;9102:4;9095:5;9091:16;9069:52;:::i;:::-;9146:29;9168:6;9146:29;:::i;:::-;9141:3;9137:39;9130:46;;8912:270;8822:360;;;;:::o;9188:364::-;9276:3;9304:39;9337:5;9304:39;:::i;:::-;9359:71;9423:6;9418:3;9359:71;:::i;:::-;9352:78;;9439:52;9484:6;9479:3;9472:4;9465:5;9461:16;9439:52;:::i;:::-;9516:29;9538:6;9516:29;:::i;:::-;9511:3;9507:39;9500:46;;9280:272;9188:364;;;;:::o;9558:377::-;9664:3;9692:39;9725:5;9692:39;:::i;:::-;9747:89;9829:6;9824:3;9747:89;:::i;:::-;9740:96;;9845:52;9890:6;9885:3;9878:4;9871:5;9867:16;9845:52;:::i;:::-;9922:6;9917:3;9913:16;9906:23;;9668:267;9558:377;;;;:::o;9941:404::-;10101:3;10122:86;10204:3;10199;10122:86;:::i;:::-;10115:93;;10217;10306:3;10217:93;:::i;:::-;10335:3;10330;10326:13;10319:20;;9941:404;;;:::o;10351:366::-;10493:3;10514:67;10578:2;10573:3;10514:67;:::i;:::-;10507:74;;10590:93;10679:3;10590:93;:::i;:::-;10708:2;10703:3;10699:12;10692:19;;10351:366;;;:::o;10723:::-;10865:3;10886:67;10950:2;10945:3;10886:67;:::i;:::-;10879:74;;10962:93;11051:3;10962:93;:::i;:::-;11080:2;11075:3;11071:12;11064:19;;10723:366;;;:::o;11095:::-;11237:3;11258:67;11322:2;11317:3;11258:67;:::i;:::-;11251:74;;11334:93;11423:3;11334:93;:::i;:::-;11452:2;11447:3;11443:12;11436:19;;11095:366;;;:::o;11467:::-;11609:3;11630:67;11694:2;11689:3;11630:67;:::i;:::-;11623:74;;11706:93;11795:3;11706:93;:::i;:::-;11824:2;11819:3;11815:12;11808:19;;11467:366;;;:::o;11839:::-;11981:3;12002:67;12066:2;12061:3;12002:67;:::i;:::-;11995:74;;12078:93;12167:3;12078:93;:::i;:::-;12196:2;12191:3;12187:12;12180:19;;11839:366;;;:::o;12211:::-;12353:3;12374:67;12438:2;12433:3;12374:67;:::i;:::-;12367:74;;12450:93;12539:3;12450:93;:::i;:::-;12568:2;12563:3;12559:12;12552:19;;12211:366;;;:::o;12583:::-;12725:3;12746:67;12810:2;12805:3;12746:67;:::i;:::-;12739:74;;12822:93;12911:3;12822:93;:::i;:::-;12940:2;12935:3;12931:12;12924:19;;12583:366;;;:::o;12955:::-;13097:3;13118:67;13182:2;13177:3;13118:67;:::i;:::-;13111:74;;13194:93;13283:3;13194:93;:::i;:::-;13312:2;13307:3;13303:12;13296:19;;12955:366;;;:::o;13327:::-;13469:3;13490:67;13554:2;13549:3;13490:67;:::i;:::-;13483:74;;13566:93;13655:3;13566:93;:::i;:::-;13684:2;13679:3;13675:12;13668:19;;13327:366;;;:::o;13699:::-;13841:3;13862:67;13926:2;13921:3;13862:67;:::i;:::-;13855:74;;13938:93;14027:3;13938:93;:::i;:::-;14056:2;14051:3;14047:12;14040:19;;13699:366;;;:::o;14071:::-;14213:3;14234:67;14298:2;14293:3;14234:67;:::i;:::-;14227:74;;14310:93;14399:3;14310:93;:::i;:::-;14428:2;14423:3;14419:12;14412:19;;14071:366;;;:::o;14443:::-;14585:3;14606:67;14670:2;14665:3;14606:67;:::i;:::-;14599:74;;14682:93;14771:3;14682:93;:::i;:::-;14800:2;14795:3;14791:12;14784:19;;14443:366;;;:::o;14815:::-;14957:3;14978:67;15042:2;15037:3;14978:67;:::i;:::-;14971:74;;15054:93;15143:3;15054:93;:::i;:::-;15172:2;15167:3;15163:12;15156:19;;14815:366;;;:::o;15187:365::-;15329:3;15350:66;15414:1;15409:3;15350:66;:::i;:::-;15343:73;;15425:93;15514:3;15425:93;:::i;:::-;15543:2;15538:3;15534:12;15527:19;;15187:365;;;:::o;15558:366::-;15700:3;15721:67;15785:2;15780:3;15721:67;:::i;:::-;15714:74;;15797:93;15886:3;15797:93;:::i;:::-;15915:2;15910:3;15906:12;15899:19;;15558:366;;;:::o;15930:400::-;16090:3;16111:84;16193:1;16188:3;16111:84;:::i;:::-;16104:91;;16204:93;16293:3;16204:93;:::i;:::-;16322:1;16317:3;16313:11;16306:18;;15930:400;;;:::o;16336:366::-;16478:3;16499:67;16563:2;16558:3;16499:67;:::i;:::-;16492:74;;16575:93;16664:3;16575:93;:::i;:::-;16693:2;16688:3;16684:12;16677:19;;16336:366;;;:::o;16708:::-;16850:3;16871:67;16935:2;16930:3;16871:67;:::i;:::-;16864:74;;16947:93;17036:3;16947:93;:::i;:::-;17065:2;17060:3;17056:12;17049:19;;16708:366;;;:::o;17080:::-;17222:3;17243:67;17307:2;17302:3;17243:67;:::i;:::-;17236:74;;17319:93;17408:3;17319:93;:::i;:::-;17437:2;17432:3;17428:12;17421:19;;17080:366;;;:::o;17452:::-;17594:3;17615:67;17679:2;17674:3;17615:67;:::i;:::-;17608:74;;17691:93;17780:3;17691:93;:::i;:::-;17809:2;17804:3;17800:12;17793:19;;17452:366;;;:::o;17824:::-;17966:3;17987:67;18051:2;18046:3;17987:67;:::i;:::-;17980:74;;18063:93;18152:3;18063:93;:::i;:::-;18181:2;18176:3;18172:12;18165:19;;17824:366;;;:::o;18196:402::-;18356:3;18377:85;18459:2;18454:3;18377:85;:::i;:::-;18370:92;;18471:93;18560:3;18471:93;:::i;:::-;18589:2;18584:3;18580:12;18573:19;;18196:402;;;:::o;18604:366::-;18746:3;18767:67;18831:2;18826:3;18767:67;:::i;:::-;18760:74;;18843:93;18932:3;18843:93;:::i;:::-;18961:2;18956:3;18952:12;18945:19;;18604:366;;;:::o;18976:::-;19118:3;19139:67;19203:2;19198:3;19139:67;:::i;:::-;19132:74;;19215:93;19304:3;19215:93;:::i;:::-;19333:2;19328:3;19324:12;19317:19;;18976:366;;;:::o;19348:::-;19490:3;19511:67;19575:2;19570:3;19511:67;:::i;:::-;19504:74;;19587:93;19676:3;19587:93;:::i;:::-;19705:2;19700:3;19696:12;19689:19;;19348:366;;;:::o;19720:402::-;19880:3;19901:85;19983:2;19978:3;19901:85;:::i;:::-;19894:92;;19995:93;20084:3;19995:93;:::i;:::-;20113:2;20108:3;20104:12;20097:19;;19720:402;;;:::o;20128:108::-;20205:24;20223:5;20205:24;:::i;:::-;20200:3;20193:37;20128:108;;:::o;20242:118::-;20329:24;20347:5;20329:24;:::i;:::-;20324:3;20317:37;20242:118;;:::o;20366:701::-;20647:3;20669:95;20760:3;20751:6;20669:95;:::i;:::-;20662:102;;20781:95;20872:3;20863:6;20781:95;:::i;:::-;20774:102;;20893:148;21037:3;20893:148;:::i;:::-;20886:155;;21058:3;21051:10;;20366:701;;;;;:::o;21073:381::-;21258:3;21280:148;21424:3;21280:148;:::i;:::-;21273:155;;21445:3;21438:10;;21073:381;;;:::o;21460:541::-;21693:3;21715:148;21859:3;21715:148;:::i;:::-;21708:155;;21880:95;21971:3;21962:6;21880:95;:::i;:::-;21873:102;;21992:3;21985:10;;21460:541;;;;:::o;22007:381::-;22192:3;22214:148;22358:3;22214:148;:::i;:::-;22207:155;;22379:3;22372:10;;22007:381;;;:::o;22394:222::-;22487:4;22525:2;22514:9;22510:18;22502:26;;22538:71;22606:1;22595:9;22591:17;22582:6;22538:71;:::i;:::-;22394:222;;;;:::o;22622:640::-;22817:4;22855:3;22844:9;22840:19;22832:27;;22869:71;22937:1;22926:9;22922:17;22913:6;22869:71;:::i;:::-;22950:72;23018:2;23007:9;23003:18;22994:6;22950:72;:::i;:::-;23032;23100:2;23089:9;23085:18;23076:6;23032:72;:::i;:::-;23151:9;23145:4;23141:20;23136:2;23125:9;23121:18;23114:48;23179:76;23250:4;23241:6;23179:76;:::i;:::-;23171:84;;22622:640;;;;;;;:::o;23268:373::-;23411:4;23449:2;23438:9;23434:18;23426:26;;23498:9;23492:4;23488:20;23484:1;23473:9;23469:17;23462:47;23526:108;23629:4;23620:6;23526:108;:::i;:::-;23518:116;;23268:373;;;;:::o;23647:210::-;23734:4;23772:2;23761:9;23757:18;23749:26;;23785:65;23847:1;23836:9;23832:17;23823:6;23785:65;:::i;:::-;23647:210;;;;:::o;23863:313::-;23976:4;24014:2;24003:9;23999:18;23991:26;;24063:9;24057:4;24053:20;24049:1;24038:9;24034:17;24027:47;24091:78;24164:4;24155:6;24091:78;:::i;:::-;24083:86;;23863:313;;;;:::o;24182:419::-;24348:4;24386:2;24375:9;24371:18;24363:26;;24435:9;24429:4;24425:20;24421:1;24410:9;24406:17;24399:47;24463:131;24589:4;24463:131;:::i;:::-;24455:139;;24182:419;;;:::o;24607:::-;24773:4;24811:2;24800:9;24796:18;24788:26;;24860:9;24854:4;24850:20;24846:1;24835:9;24831:17;24824:47;24888:131;25014:4;24888:131;:::i;:::-;24880:139;;24607:419;;;:::o;25032:::-;25198:4;25236:2;25225:9;25221:18;25213:26;;25285:9;25279:4;25275:20;25271:1;25260:9;25256:17;25249:47;25313:131;25439:4;25313:131;:::i;:::-;25305:139;;25032:419;;;:::o;25457:::-;25623:4;25661:2;25650:9;25646:18;25638:26;;25710:9;25704:4;25700:20;25696:1;25685:9;25681:17;25674:47;25738:131;25864:4;25738:131;:::i;:::-;25730:139;;25457:419;;;:::o;25882:::-;26048:4;26086:2;26075:9;26071:18;26063:26;;26135:9;26129:4;26125:20;26121:1;26110:9;26106:17;26099:47;26163:131;26289:4;26163:131;:::i;:::-;26155:139;;25882:419;;;:::o;26307:::-;26473:4;26511:2;26500:9;26496:18;26488:26;;26560:9;26554:4;26550:20;26546:1;26535:9;26531:17;26524:47;26588:131;26714:4;26588:131;:::i;:::-;26580:139;;26307:419;;;:::o;26732:::-;26898:4;26936:2;26925:9;26921:18;26913:26;;26985:9;26979:4;26975:20;26971:1;26960:9;26956:17;26949:47;27013:131;27139:4;27013:131;:::i;:::-;27005:139;;26732:419;;;:::o;27157:::-;27323:4;27361:2;27350:9;27346:18;27338:26;;27410:9;27404:4;27400:20;27396:1;27385:9;27381:17;27374:47;27438:131;27564:4;27438:131;:::i;:::-;27430:139;;27157:419;;;:::o;27582:::-;27748:4;27786:2;27775:9;27771:18;27763:26;;27835:9;27829:4;27825:20;27821:1;27810:9;27806:17;27799:47;27863:131;27989:4;27863:131;:::i;:::-;27855:139;;27582:419;;;:::o;28007:::-;28173:4;28211:2;28200:9;28196:18;28188:26;;28260:9;28254:4;28250:20;28246:1;28235:9;28231:17;28224:47;28288:131;28414:4;28288:131;:::i;:::-;28280:139;;28007:419;;;:::o;28432:::-;28598:4;28636:2;28625:9;28621:18;28613:26;;28685:9;28679:4;28675:20;28671:1;28660:9;28656:17;28649:47;28713:131;28839:4;28713:131;:::i;:::-;28705:139;;28432:419;;;:::o;28857:::-;29023:4;29061:2;29050:9;29046:18;29038:26;;29110:9;29104:4;29100:20;29096:1;29085:9;29081:17;29074:47;29138:131;29264:4;29138:131;:::i;:::-;29130:139;;28857:419;;;:::o;29282:::-;29448:4;29486:2;29475:9;29471:18;29463:26;;29535:9;29529:4;29525:20;29521:1;29510:9;29506:17;29499:47;29563:131;29689:4;29563:131;:::i;:::-;29555:139;;29282:419;;;:::o;29707:::-;29873:4;29911:2;29900:9;29896:18;29888:26;;29960:9;29954:4;29950:20;29946:1;29935:9;29931:17;29924:47;29988:131;30114:4;29988:131;:::i;:::-;29980:139;;29707:419;;;:::o;30132:::-;30298:4;30336:2;30325:9;30321:18;30313:26;;30385:9;30379:4;30375:20;30371:1;30360:9;30356:17;30349:47;30413:131;30539:4;30413:131;:::i;:::-;30405:139;;30132:419;;;:::o;30557:::-;30723:4;30761:2;30750:9;30746:18;30738:26;;30810:9;30804:4;30800:20;30796:1;30785:9;30781:17;30774:47;30838:131;30964:4;30838:131;:::i;:::-;30830:139;;30557:419;;;:::o;30982:::-;31148:4;31186:2;31175:9;31171:18;31163:26;;31235:9;31229:4;31225:20;31221:1;31210:9;31206:17;31199:47;31263:131;31389:4;31263:131;:::i;:::-;31255:139;;30982:419;;;:::o;31407:::-;31573:4;31611:2;31600:9;31596:18;31588:26;;31660:9;31654:4;31650:20;31646:1;31635:9;31631:17;31624:47;31688:131;31814:4;31688:131;:::i;:::-;31680:139;;31407:419;;;:::o;31832:::-;31998:4;32036:2;32025:9;32021:18;32013:26;;32085:9;32079:4;32075:20;32071:1;32060:9;32056:17;32049:47;32113:131;32239:4;32113:131;:::i;:::-;32105:139;;31832:419;;;:::o;32257:::-;32423:4;32461:2;32450:9;32446:18;32438:26;;32510:9;32504:4;32500:20;32496:1;32485:9;32481:17;32474:47;32538:131;32664:4;32538:131;:::i;:::-;32530:139;;32257:419;;;:::o;32682:::-;32848:4;32886:2;32875:9;32871:18;32863:26;;32935:9;32929:4;32925:20;32921:1;32910:9;32906:17;32899:47;32963:131;33089:4;32963:131;:::i;:::-;32955:139;;32682:419;;;:::o;33107:::-;33273:4;33311:2;33300:9;33296:18;33288:26;;33360:9;33354:4;33350:20;33346:1;33335:9;33331:17;33324:47;33388:131;33514:4;33388:131;:::i;:::-;33380:139;;33107:419;;;:::o;33532:::-;33698:4;33736:2;33725:9;33721:18;33713:26;;33785:9;33779:4;33775:20;33771:1;33760:9;33756:17;33749:47;33813:131;33939:4;33813:131;:::i;:::-;33805:139;;33532:419;;;:::o;33957:222::-;34050:4;34088:2;34077:9;34073:18;34065:26;;34101:71;34169:1;34158:9;34154:17;34145:6;34101:71;:::i;:::-;33957:222;;;;:::o;34185:129::-;34219:6;34246:20;;:::i;:::-;34236:30;;34275:33;34303:4;34295:6;34275:33;:::i;:::-;34185:129;;;:::o;34320:75::-;34353:6;34386:2;34380:9;34370:19;;34320:75;:::o;34401:307::-;34462:4;34552:18;34544:6;34541:30;34538:56;;;34574:18;;:::i;:::-;34538:56;34612:29;34634:6;34612:29;:::i;:::-;34604:37;;34696:4;34690;34686:15;34678:23;;34401:307;;;:::o;34714:308::-;34776:4;34866:18;34858:6;34855:30;34852:56;;;34888:18;;:::i;:::-;34852:56;34926:29;34948:6;34926:29;:::i;:::-;34918:37;;35010:4;35004;35000:15;34992:23;;34714:308;;;:::o;35028:132::-;35095:4;35118:3;35110:11;;35148:4;35143:3;35139:14;35131:22;;35028:132;;;:::o;35166:114::-;35233:6;35267:5;35261:12;35251:22;;35166:114;;;:::o;35286:98::-;35337:6;35371:5;35365:12;35355:22;;35286:98;;;:::o;35390:99::-;35442:6;35476:5;35470:12;35460:22;;35390:99;;;:::o;35495:113::-;35565:4;35597;35592:3;35588:14;35580:22;;35495:113;;;:::o;35614:184::-;35713:11;35747:6;35742:3;35735:19;35787:4;35782:3;35778:14;35763:29;;35614:184;;;;:::o;35804:168::-;35887:11;35921:6;35916:3;35909:19;35961:4;35956:3;35952:14;35937:29;;35804:168;;;;:::o;35978:169::-;36062:11;36096:6;36091:3;36084:19;36136:4;36131:3;36127:14;36112:29;;35978:169;;;;:::o;36153:148::-;36255:11;36292:3;36277:18;;36153:148;;;;:::o;36307:305::-;36347:3;36366:20;36384:1;36366:20;:::i;:::-;36361:25;;36400:20;36418:1;36400:20;:::i;:::-;36395:25;;36554:1;36486:66;36482:74;36479:1;36476:81;36473:107;;;36560:18;;:::i;:::-;36473:107;36604:1;36601;36597:9;36590:16;;36307:305;;;;:::o;36618:185::-;36658:1;36675:20;36693:1;36675:20;:::i;:::-;36670:25;;36709:20;36727:1;36709:20;:::i;:::-;36704:25;;36748:1;36738:35;;36753:18;;:::i;:::-;36738:35;36795:1;36792;36788:9;36783:14;;36618:185;;;;:::o;36809:348::-;36849:7;36872:20;36890:1;36872:20;:::i;:::-;36867:25;;36906:20;36924:1;36906:20;:::i;:::-;36901:25;;37094:1;37026:66;37022:74;37019:1;37016:81;37011:1;37004:9;36997:17;36993:105;36990:131;;;37101:18;;:::i;:::-;36990:131;37149:1;37146;37142:9;37131:20;;36809:348;;;;:::o;37163:191::-;37203:4;37223:20;37241:1;37223:20;:::i;:::-;37218:25;;37257:20;37275:1;37257:20;:::i;:::-;37252:25;;37296:1;37293;37290:8;37287:34;;;37301:18;;:::i;:::-;37287:34;37346:1;37343;37339:9;37331:17;;37163:191;;;;:::o;37360:96::-;37397:7;37426:24;37444:5;37426:24;:::i;:::-;37415:35;;37360:96;;;:::o;37462:90::-;37496:7;37539:5;37532:13;37525:21;37514:32;;37462:90;;;:::o;37558:149::-;37594:7;37634:66;37627:5;37623:78;37612:89;;37558:149;;;:::o;37713:126::-;37750:7;37790:42;37783:5;37779:54;37768:65;;37713:126;;;:::o;37845:77::-;37882:7;37911:5;37900:16;;37845:77;;;:::o;37928:86::-;37963:7;38003:4;37996:5;37992:16;37981:27;;37928:86;;;:::o;38020:154::-;38104:6;38099:3;38094;38081:30;38166:1;38157:6;38152:3;38148:16;38141:27;38020:154;;;:::o;38180:307::-;38248:1;38258:113;38272:6;38269:1;38266:13;38258:113;;;38357:1;38352:3;38348:11;38342:18;38338:1;38333:3;38329:11;38322:39;38294:2;38291:1;38287:10;38282:15;;38258:113;;;38389:6;38386:1;38383:13;38380:101;;;38469:1;38460:6;38455:3;38451:16;38444:27;38380:101;38229:258;38180:307;;;:::o;38493:320::-;38537:6;38574:1;38568:4;38564:12;38554:22;;38621:1;38615:4;38611:12;38642:18;38632:81;;38698:4;38690:6;38686:17;38676:27;;38632:81;38760:2;38752:6;38749:14;38729:18;38726:38;38723:84;;;38779:18;;:::i;:::-;38723:84;38544:269;38493:320;;;:::o;38819:281::-;38902:27;38924:4;38902:27;:::i;:::-;38894:6;38890:40;39032:6;39020:10;39017:22;38996:18;38984:10;38981:34;38978:62;38975:88;;;39043:18;;:::i;:::-;38975:88;39083:10;39079:2;39072:22;38862:238;38819:281;;:::o;39106:233::-;39145:3;39168:24;39186:5;39168:24;:::i;:::-;39159:33;;39214:66;39207:5;39204:77;39201:103;;;39284:18;;:::i;:::-;39201:103;39331:1;39324:5;39320:13;39313:20;;39106:233;;;:::o;39345:176::-;39377:1;39394:20;39412:1;39394:20;:::i;:::-;39389:25;;39428:20;39446:1;39428:20;:::i;:::-;39423:25;;39467:1;39457:35;;39472:18;;:::i;:::-;39457:35;39513:1;39510;39506:9;39501:14;;39345:176;;;;:::o;39527:180::-;39575:77;39572:1;39565:88;39672:4;39669:1;39662:15;39696:4;39693:1;39686:15;39713:180;39761:77;39758:1;39751:88;39858:4;39855:1;39848:15;39882:4;39879:1;39872:15;39899:180;39947:77;39944:1;39937:88;40044:4;40041:1;40034:15;40068:4;40065:1;40058:15;40085:180;40133:77;40130:1;40123:88;40230:4;40227:1;40220:15;40254:4;40251:1;40244:15;40271:180;40319:77;40316:1;40309:88;40416:4;40413:1;40406:15;40440:4;40437:1;40430:15;40457:180;40505:77;40502:1;40495:88;40602:4;40599:1;40592:15;40626:4;40623:1;40616:15;40643:117;40752:1;40749;40742:12;40766:117;40875:1;40872;40865:12;40889:117;40998:1;40995;40988:12;41012:117;41121:1;41118;41111:12;41135:102;41176:6;41227:2;41223:7;41218:2;41211:5;41207:14;41203:28;41193:38;;41135:102;;;:::o;41243:1249::-;41383:66;41379:1;41371:6;41367:14;41360:90;41484:66;41479:2;41471:6;41467:15;41460:91;41585:34;41580:2;41572:6;41568:15;41561:59;41654:34;41649:2;41641:6;41637:15;41630:59;41724:34;41718:3;41710:6;41706:16;41699:60;41794:34;41788:3;41780:6;41776:16;41769:60;41864:34;41858:3;41850:6;41846:16;41839:60;41934:34;41928:3;41920:6;41916:16;41909:60;42004:34;41998:3;41990:6;41986:16;41979:60;42074:34;42068:3;42060:6;42056:16;42049:60;42144:66;42138:3;42130:6;42126:16;42119:92;42246:66;42240:3;42232:6;42228:16;42221:92;42348:34;42342:3;42334:6;42330:16;42323:60;42418:66;42412:3;42404:6;42400:16;42393:92;41243:1249;:::o;42498:238::-;42638:34;42634:1;42626:6;42622:14;42615:58;42707:21;42702:2;42694:6;42690:15;42683:46;42498:238;:::o;42742:230::-;42882:34;42878:1;42870:6;42866:14;42859:58;42951:13;42946:2;42938:6;42934:15;42927:38;42742:230;:::o;42978:237::-;43118:34;43114:1;43106:6;43102:14;43095:58;43187:20;43182:2;43174:6;43170:15;43163:45;42978:237;:::o;43221:225::-;43361:34;43357:1;43349:6;43345:14;43338:58;43430:8;43425:2;43417:6;43413:15;43406:33;43221:225;:::o;43452:178::-;43592:30;43588:1;43580:6;43576:14;43569:54;43452:178;:::o;43636:223::-;43776:34;43772:1;43764:6;43760:14;43753:58;43845:6;43840:2;43832:6;43828:15;43821:31;43636:223;:::o;43865:175::-;44005:27;44001:1;43993:6;43989:14;43982:51;43865:175;:::o;44046:231::-;44186:34;44182:1;44174:6;44170:14;44163:58;44255:14;44250:2;44242:6;44238:15;44231:39;44046:231;:::o;44283:243::-;44423:34;44419:1;44411:6;44407:14;44400:58;44492:26;44487:2;44479:6;44475:15;44468:51;44283:243;:::o;44532:229::-;44672:34;44668:1;44660:6;44656:14;44649:58;44741:12;44736:2;44728:6;44724:15;44717:37;44532:229;:::o;44767:228::-;44907:34;44903:1;44895:6;44891:14;44884:58;44976:11;44971:2;44963:6;44959:15;44952:36;44767:228;:::o;45001:179::-;45141:31;45137:1;45129:6;45125:14;45118:55;45001:179;:::o;45186:182::-;45326:34;45322:1;45314:6;45310:14;45303:58;45186:182;:::o;45374:158::-;45514:10;45510:1;45502:6;45498:14;45491:34;45374:158;:::o;45538:231::-;45678:34;45674:1;45666:6;45662:14;45655:58;45747:14;45742:2;45734:6;45730:15;45723:39;45538:231;:::o;45775:155::-;45915:7;45911:1;45903:6;45899:14;45892:31;45775:155;:::o;45936:182::-;46076:34;46072:1;46064:6;46060:14;46053:58;45936:182;:::o;46124:225::-;46264:34;46260:1;46252:6;46248:14;46241:58;46333:8;46328:2;46320:6;46316:15;46309:33;46124:225;:::o;46355:228::-;46495:34;46491:1;46483:6;46479:14;46472:58;46564:11;46559:2;46551:6;46547:15;46540:36;46355:228;:::o;46589:234::-;46729:34;46725:1;46717:6;46713:14;46706:58;46798:17;46793:2;46785:6;46781:15;46774:42;46589:234;:::o;46829:220::-;46969:34;46965:1;46957:6;46953:14;46946:58;47038:3;47033:2;47025:6;47021:15;47014:28;46829:220;:::o;47055:179::-;47195:31;47191:1;47183:6;47179:14;47172:55;47055:179;:::o;47240:236::-;47380:34;47376:1;47368:6;47364:14;47357:58;47449:19;47444:2;47436:6;47432:15;47425:44;47240:236;:::o;47482:231::-;47622:34;47618:1;47610:6;47606:14;47599:58;47691:14;47686:2;47678:6;47674:15;47667:39;47482:231;:::o;47719:170::-;47859:22;47855:1;47847:6;47843:14;47836:46;47719:170;:::o;47895:316::-;48035:34;48031:1;48023:6;48019:14;48012:58;48108:34;48103:2;48095:6;48091:15;48084:59;48181:18;48176:2;48168:6;48164:15;48157:43;47895:316;:::o;48221:130::-;48298:24;48316:5;48298:24;:::i;:::-;48291:5;48288:35;48278:63;;48337:1;48334;48327:12;48278:63;48221:130;:::o;48361:124::-;48435:21;48450:5;48435:21;:::i;:::-;48428:5;48425:32;48415:60;;48471:1;48468;48461:12;48415:60;48361:124;:::o;48495:128::-;48571:23;48588:5;48571:23;:::i;:::-;48564:5;48561:34;48551:62;;48609:1;48606;48599:12;48551:62;48495:128;:::o;48633:130::-;48710:24;48728:5;48710:24;:::i;:::-;48703:5;48700:35;48690:63;;48749:1;48746;48739:12;48690:63;48633:130;:::o;48773:126::-;48848:22;48864:5;48848:22;:::i;:::-;48841:5;48838:33;48828:61;;48885:1;48882;48875:12;48828:61;48773:126;:::o
Swarm Source
ipfs://7a5a48d7eae81f05b0860d4e51ac9b2a6a295bb24b3c3df92d407fddd91e6cc1
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.