Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 27 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 20861152 | 49 days ago | IN | 0 ETH | 0.00024321 | ||||
Mint | 15147371 | 857 days ago | IN | 0 ETH | 0.00271225 | ||||
Mint | 15147369 | 857 days ago | IN | 0 ETH | 0.00276621 | ||||
Mint | 15147369 | 857 days ago | IN | 0 ETH | 0.00276621 | ||||
Mint | 15143674 | 858 days ago | IN | 0 ETH | 0.01158851 | ||||
Mint | 15143656 | 858 days ago | IN | 0 ETH | 0.00351579 | ||||
Set Price | 15143651 | 858 days ago | IN | 0 ETH | 0.00053094 | ||||
Set Base URI | 15143631 | 858 days ago | IN | 0 ETH | 0.00094329 | ||||
Withdraw | 14244809 | 1002 days ago | IN | 0 ETH | 0.00174764 | ||||
Mint | 14207007 | 1008 days ago | IN | 0.06 ETH | 0.02173234 | ||||
Mint | 14165865 | 1014 days ago | IN | 0.09 ETH | 0.01888574 | ||||
Mint | 14151005 | 1016 days ago | IN | 0.03 ETH | 0.0076785 | ||||
Mint | 14148808 | 1017 days ago | IN | 0.03 ETH | 0.012878 | ||||
Mint | 14148770 | 1017 days ago | IN | 0.06 ETH | 0.01953448 | ||||
Transfer From | 14148765 | 1017 days ago | IN | 0 ETH | 0.00568014 | ||||
Mint | 14148757 | 1017 days ago | IN | 0.03 ETH | 0.00970196 | ||||
Mint | 14148752 | 1017 days ago | IN | 0.09 ETH | 0.02531123 | ||||
Mint | 14148747 | 1017 days ago | IN | 0.03 ETH | 0.01006626 | ||||
Set Status | 14148740 | 1017 days ago | IN | 0 ETH | 0.00389542 | ||||
Set Base URI | 14141366 | 1018 days ago | IN | 0 ETH | 0.0044967 | ||||
Set Reveal | 14141361 | 1018 days ago | IN | 0 ETH | 0.00410155 | ||||
Set Reveal | 14139371 | 1018 days ago | IN | 0 ETH | 0.00129401 | ||||
Set Reveal | 14139363 | 1018 days ago | IN | 0 ETH | 0.00238682 | ||||
Set Status | 14139339 | 1018 days ago | IN | 0 ETH | 0.00149134 | ||||
Mint | 14139328 | 1018 days ago | IN | 0.03 ETH | 0.00922768 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14244809 | 1002 days ago | 0.45 ETH |
Loading...
Loading
Contract Name:
BrewBuddies
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-04 */ /** *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 BrewBuddies is ERC721Enumerable, Ownable { using SafeMath for uint256; using Strings for uint256; uint public constant _TOTALSUPPLY = 2000; uint public maxQuantity =10; uint public maxPerUser=10; uint256 public price = 0.03 ether; uint256 public status = 0; // 0-pause, 1- Resume bool public reveal = false; constructor(string memory baseURI) ERC721("Brew Buddies", "BB") { setBaseURI(baseURI); } 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 setMaxxQtPerTx(uint256 _quantity) public onlyOwner { maxQuantity=_quantity; } function setReveal() public onlyOwner{ reveal =! reveal; } function setMaxPerUser(uint256 _maxPerUser) public onlyOwner() { maxPerUser = _maxPerUser; } 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 getMaxPerUser() public view returns (uint256) { return maxPerUser ; } 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(chosenAmount <= maxQuantity,"Chosen Amount exceeds MaxQuantity"); require(price.mul(chosenAmount) == msg.value, "Sent ether value is incorrect"); require(status == 1, "Sorry the Sale is not open"); require(chosenAmount + balanceOf(msg.sender) <= maxPerUser , "You can not mint more than the maximum allowed per user."); 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(); // return bytes(base).length > 0 ? string(abi.encodePacked(base, tokenId.toString(), ".json")) : ""; if(bytes(base).length > 0){ return reveal ? string(abi.encodePacked(base, tokenId.toString(), ".json")) : string(abi.encodePacked("https://gateway.pinata.cloud/ipfs/QmbrpFvhaTpQC5TBJuAwFLy8ypHchwQrEozyPXNgMq1Z1x")); } else return ""; } function contractURI() public view returns (string memory) { string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "Brew Buddies", "description": "Brew Buddies are a collection of 2,000 freshly brewed tasty cups of coffee that live on the Ethereum blockchain", "seller_fee_basis_points": 200, "fee_recipient": "0xe119FDcF665365371d3C227A0d86A47C471059E6"}')))); 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":[],"name":"getMaxPerUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":"_maxPerUser","type":"uint256"}],"name":"setMaxPerUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"setMaxxQtPerTx","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
6080604052600a600c55600a600d55666a94d74f430000600e556000600f556000601060006101000a81548160ff0219169083151502179055503480156200004657600080fd5b50604051620051693803806200516983398181016040528101906200006c9190620003e0565b6040518060400160405280600c81526020017f42726577204275646469657300000000000000000000000000000000000000008152506040518060400160405280600281526020017f42420000000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000f0929190620002b2565b50806001908051906020019062000109929190620002b2565b50505060006200011e620001d560201b60201c565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ce81620001dd60201b60201c565b5062000638565b600033905090565b620001ed620001d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002136200028860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200026c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002639062000458565b60405180910390fd5b806006908051906020019062000284929190620002b2565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620002c09062000520565b90600052602060002090601f016020900481019282620002e4576000855562000330565b82601f10620002ff57805160ff191683800117855562000330565b8280016001018555821562000330579182015b828111156200032f57825182559160200191906001019062000312565b5b5090506200033f919062000343565b5090565b5b808211156200035e57600081600090555060010162000344565b5090565b6000620003796200037384620004a3565b6200047a565b905082815260208101848484011115620003985762000397620005ef565b5b620003a5848285620004ea565b509392505050565b600082601f830112620003c557620003c4620005ea565b5b8151620003d784826020860162000362565b91505092915050565b600060208284031215620003f957620003f8620005f9565b5b600082015167ffffffffffffffff8111156200041a5762000419620005f4565b5b6200042884828501620003ad565b91505092915050565b600062000440602083620004d9565b91506200044d826200060f565b602082019050919050565b60006020820190508181036000830152620004738162000431565b9050919050565b60006200048662000499565b905062000494828262000556565b919050565b6000604051905090565b600067ffffffffffffffff821115620004c157620004c0620005bb565b5b620004cc82620005fe565b9050602081019050919050565b600082825260208201905092915050565b60005b838110156200050a578082015181840152602081019050620004ed565b838111156200051a576000848401525b50505050565b600060028204905060018216806200053957607f821691505b6020821081141562000550576200054f6200058c565b5b50919050565b6200056182620005fe565b810181811067ffffffffffffffff82111715620005835762000582620005bb565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b614b2180620006486000396000f3fe6080604052600436106102255760003560e01c80637664531511610123578063a22cb465116100ab578063e640cf7d1161006f578063e640cf7d146107fa578063e757223014610825578063e8a3d48514610862578063e985e9c51461088d578063f2fde38b146108ca57610225565b8063a22cb46514610715578063a475b5dd1461073e578063b88d4fde14610769578063c87b56dd14610792578063db4568e2146107cf57610225565b806391b7f5ed116100f257806391b7f5ed1461065157806395d89b411461067a5780639d38fd21146106a5578063a035b1fe146106ce578063a0712d68146106f957610225565b806376645315146105a9578063813dcee7146105c05780638462151c146105e95780638da5cb5b1461062657610225565b80632f745c59116101b15780634f6ccce7116101755780634f6ccce71461049e57806355f804b3146104db5780636352211e1461050457806370a0823114610541578063743976a01461057e57610225565b80632f745c59146103cb5780633ccfd60b146104085780633f8052ca1461041f57806342842e0e1461044a5780634e69d5601461047357610225565b8063095ea7b3116101f8578063095ea7b3146102fa57806318160ddd14610323578063200d2ed21461034e57806323b872dd146103795780632e49d78b146103a257610225565b806301ffc9a71461022a57806306d586bb1461026757806306fdde0314610292578063081812fc146102bd575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c91906131d5565b6108f3565b60405161025e9190613922565b60405180910390f35b34801561027357600080fd5b5061027c61096d565b6040516102899190613c7f565b60405180910390f35b34801561029e57600080fd5b506102a7610973565b6040516102b4919061393d565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190613278565b610a05565b6040516102f19190613899565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190613195565b610a8a565b005b34801561032f57600080fd5b50610338610ba2565b6040516103459190613c7f565b60405180910390f35b34801561035a57600080fd5b50610363610baf565b6040516103709190613c7f565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b919061307f565b610bb5565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906132a5565b610c15565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190613195565b610c9e565b6040516103ff9190613c7f565b60405180910390f35b34801561041457600080fd5b5061041d610d43565b005b34801561042b57600080fd5b50610434610e0e565b6040516104419190613c7f565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c919061307f565b610e18565b005b34801561047f57600080fd5b50610488610e38565b6040516104959190613c7f565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613278565b610e42565b6040516104d29190613c7f565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd919061322f565b610eb3565b005b34801561051057600080fd5b5061052b60048036038101906105269190613278565b610f49565b6040516105389190613899565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613012565b610ffb565b6040516105759190613c7f565b60405180910390f35b34801561058a57600080fd5b506105936110b3565b6040516105a0919061393d565b60405180910390f35b3480156105b557600080fd5b506105be611141565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613278565b6111e9565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613012565b61126f565b60405161061d9190613900565b60405180910390f35b34801561063257600080fd5b5061063b61131d565b6040516106489190613899565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190613278565b611347565b005b34801561068657600080fd5b5061068f6113cd565b60405161069c919061393d565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613278565b61145f565b005b3480156106da57600080fd5b506106e36114e5565b6040516106f09190613c7f565b60405180910390f35b610713600480360381019061070e9190613278565b6114eb565b005b34801561072157600080fd5b5061073c60048036038101906107379190613155565b61173b565b005b34801561074a57600080fd5b506107536118bc565b6040516107609190613922565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b91906130d2565b6118cf565b005b34801561079e57600080fd5b506107b960048036038101906107b49190613278565b611931565b6040516107c6919061393d565b60405180910390f35b3480156107db57600080fd5b506107e4611a14565b6040516107f19190613c7f565b60405180910390f35b34801561080657600080fd5b5061080f611a1a565b60405161081c9190613c7f565b60405180910390f35b34801561083157600080fd5b5061084c60048036038101906108479190613278565b611a20565b6040516108599190613c7f565b60405180910390f35b34801561086e57600080fd5b50610877611a37565b604051610884919061393d565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af919061303f565b611a8c565b6040516108c19190613922565b60405180910390f35b3480156108d657600080fd5b506108f160048036038101906108ec9190613012565b611b20565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610966575061096582611c18565b5b9050919050565b600d5481565b60606000805461098290613f75565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613f75565b80156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b5050505050905090565b6000610a1082611cfa565b610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613b7f565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a9582610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90613c1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b25611d66565b73ffffffffffffffffffffffffffffffffffffffff161480610b545750610b5381610b4e611d66565b611a8c565b5b610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613a9f565b60405180910390fd5b610b9d8383611d6e565b505050565b6000600980549050905090565b600f5481565b610bc6610bc0611d66565b82611e27565b610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90613c3f565b60405180910390fd5b610c10838383611f05565b505050565b610c1d611d66565b73ffffffffffffffffffffffffffffffffffffffff16610c3b61131d565b73ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890613b9f565b60405180910390fd5b8060ff16600f8190555050565b6000610ca983610ffb565b8210610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce19061397f565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d4b611d66565b73ffffffffffffffffffffffffffffffffffffffff16610d6961131d565b73ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690613b9f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0a573d6000803e3d6000fd5b5050565b6000600d54905090565b610e33838383604051806020016040528060008152506118cf565b505050565b6000600f54905090565b6000610e4c610ba2565b8210610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490613c5f565b60405180910390fd5b60098281548110610ea157610ea061410e565b5b90600052602060002001549050919050565b610ebb611d66565b73ffffffffffffffffffffffffffffffffffffffff16610ed961131d565b73ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613b9f565b60405180910390fd5b8060069080519060200190610f45929190612e11565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990613adf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390613abf565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600680546110c090613f75565b80601f01602080910402602001604051908101604052809291908181526020018280546110ec90613f75565b80156111395780601f1061110e57610100808354040283529160200191611139565b820191906000526020600020905b81548152906001019060200180831161111c57829003601f168201915b505050505081565b611149611d66565b73ffffffffffffffffffffffffffffffffffffffff1661116761131d565b73ffffffffffffffffffffffffffffffffffffffff16146111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490613b9f565b60405180910390fd5b601060009054906101000a900460ff1615601060006101000a81548160ff021916908315150217905550565b6111f1611d66565b73ffffffffffffffffffffffffffffffffffffffff1661120f61131d565b73ffffffffffffffffffffffffffffffffffffffff1614611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90613b9f565b60405180910390fd5b80600d8190555050565b6060600061127c83610ffb565b905060008167ffffffffffffffff81111561129a5761129961413d565b5b6040519080825280602002602001820160405280156112c85781602001602082028036833780820191505090505b50905060005b82811015611312576112e08582610c9e565b8282815181106112f3576112f261410e565b5b602002602001018181525050808061130a90613fd8565b9150506112ce565b508092505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61134f611d66565b73ffffffffffffffffffffffffffffffffffffffff1661136d61131d565b73ffffffffffffffffffffffffffffffffffffffff16146113c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ba90613b9f565b60405180910390fd5b80600e8190555050565b6060600180546113dc90613f75565b80601f016020809104026020016040519081016040528092919081815260200182805461140890613f75565b80156114555780601f1061142a57610100808354040283529160200191611455565b820191906000526020600020905b81548152906001019060200180831161143857829003601f168201915b5050505050905090565b611467611d66565b73ffffffffffffffffffffffffffffffffffffffff1661148561131d565b73ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613b9f565b60405180910390fd5b80600c8190555050565b600e5481565b6107d06114f6610ba2565b10611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613b3f565b60405180910390fd5b6107d081611542610ba2565b61154c9190613d9d565b111561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613bbf565b60405180910390fd5b600081116115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c79061395f565b60405180910390fd5b600c54811115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613b5f565b60405180910390fd5b3461162b82600e5461216190919063ffffffff16565b1461166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613aff565b60405180910390fd5b6001600f54146116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906139df565b60405180910390fd5b600d546116bc33610ffb565b826116c79190613d9d565b1115611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613a5f565b60405180910390fd5b60005b81811015611737576117243361171f612177565b612192565b808061172f90613fd8565b91505061170b565b5050565b611743611d66565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613a3f565b60405180910390fd5b80600560006117be611d66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661186b611d66565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118b09190613922565b60405180910390a35050565b601060009054906101000a900460ff1681565b6118e06118da611d66565b83611e27565b61191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690613c3f565b60405180910390fd5b61192b848484846121b0565b50505050565b606061193c82611cfa565b61197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613bff565b60405180910390fd5b600061198561220c565b90506000815111156119fb57601060009054906101000a900460ff166119c8576040516020016119b490613884565b6040516020818303038152906040526119f3565b806119d28461229e565b6040516020016119e392919061381e565b6040516020818303038152906040525b915050611a0f565b604051806020016040528060008152509150505b919050565b6107d081565b600c5481565b6000600e5482611a309190613e24565b9050919050565b60606000611a61604051602001611a4d9061384d565b6040516020818303038152906040526123ff565b905080604051602001611a749190613862565b60405160208183030381529060405290508091505090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b28611d66565b73ffffffffffffffffffffffffffffffffffffffff16611b4661131d565b73ffffffffffffffffffffffffffffffffffffffff1614611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c03906139bf565b60405180910390fd5b611c1581612597565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ce357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611cf35750611cf28261265d565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611de183610f49565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e3282611cfa565b611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6890613a7f565b60405180910390fd5b6000611e7c83610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611eeb57508373ffffffffffffffffffffffffffffffffffffffff16611ed384610a05565b73ffffffffffffffffffffffffffffffffffffffff16145b80611efc5750611efb8185611a8c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f2582610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613bdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613a1f565b60405180910390fd5b611ff68383836126c7565b612001600082611d6e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120519190613e7e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120a89190613d9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000818361216f9190613e24565b905092915050565b60006001612183610ba2565b61218d9190613d9d565b905090565b6121ac8282604051806020016040528060008152506127db565b5050565b6121bb848484611f05565b6121c784848484612836565b612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd9061399f565b60405180910390fd5b50505050565b60606006805461221b90613f75565b80601f016020809104026020016040519081016040528092919081815260200182805461224790613f75565b80156122945780601f1061226957610100808354040283529160200191612294565b820191906000526020600020905b81548152906001019060200180831161227757829003601f168201915b5050505050905090565b606060008214156122e6576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506123fa565b600082905060005b6000821461231857808061230190613fd8565b915050600a826123119190613df3565b91506122ee565b60008167ffffffffffffffff8111156123345761233361413d565b5b6040519080825280601f01601f1916602001820160405280156123665781602001600182028036833780820191505090505b5090505b600085146123f35760018261237f9190613e7e565b9150600a8561238e9190614021565b603061239a9190613d9d565b60f81b8183815181106123b0576123af61410e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123ec9190613df3565b945061236a565b8093505050505b919050565b606060008251905060008114156124285760405180602001604052806000815250915050612592565b600060036002836124399190613d9d565b6124439190613df3565b600461244f9190613e24565b905060006020826124609190613d9d565b67ffffffffffffffff8111156124795761247861413d565b5b6040519080825280601f01601f1916602001820160405280156124ab5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001614aac604091399050600181016020830160005b8681101561254f5760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b905080845260048401935050506124d6565b506003860660018114612569576002811461257957612584565b613d3d60f01b6002830352612584565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6126d28383836129cd565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561271557612710816129d2565b612754565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612753576127528382612a1b565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127975761279281612b1b565b6127d6565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146127d5576127d48282612bb1565b5b5b505050565b6127e58383612c30565b6127f26000848484612836565b612831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128289061399f565b60405180910390fd5b505050565b60006128578473ffffffffffffffffffffffffffffffffffffffff16612dfe565b156129c0578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612880611d66565b8786866040518563ffffffff1660e01b81526004016128a294939291906138b4565b602060405180830381600087803b1580156128bc57600080fd5b505af19250505080156128ed57506040513d601f19601f820116820180604052508101906128ea9190613202565b60015b612970573d806000811461291d576040519150601f19603f3d011682016040523d82523d6000602084013e612922565b606091505b50600081511415612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f9061399f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506129c5565b600190505b949350505050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612a2884610ffb565b612a329190613e7e565b9050600060086000848152602001908152602001600020549050818114612aaa576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612b2f9190613e7e565b90506000600a6000848152602001908152602001600020549050600060098381548110612b5f57612b5e61410e565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612b9557612b946140df565b5b6001900381819060005260206000200160009055905550505050565b6000612bbc83610ffb565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9790613b1f565b60405180910390fd5b612ca981611cfa565b15612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce0906139ff565b60405180910390fd5b612cf5600083836126c7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d459190613d9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612e1d90613f75565b90600052602060002090601f016020900481019282612e3f5760008555612e86565b82601f10612e5857805160ff1916838001178555612e86565b82800160010185558215612e86579182015b82811115612e85578251825591602001919060010190612e6a565b5b509050612e939190612e97565b5090565b5b80821115612eb0576000816000905550600101612e98565b5090565b6000612ec7612ec284613cbf565b613c9a565b905082815260208101848484011115612ee357612ee2614171565b5b612eee848285613f33565b509392505050565b6000612f09612f0484613cf0565b613c9a565b905082815260208101848484011115612f2557612f24614171565b5b612f30848285613f33565b509392505050565b600081359050612f4781614a38565b92915050565b600081359050612f5c81614a4f565b92915050565b600081359050612f7181614a66565b92915050565b600081519050612f8681614a66565b92915050565b600082601f830112612fa157612fa061416c565b5b8135612fb1848260208601612eb4565b91505092915050565b600082601f830112612fcf57612fce61416c565b5b8135612fdf848260208601612ef6565b91505092915050565b600081359050612ff781614a7d565b92915050565b60008135905061300c81614a94565b92915050565b6000602082840312156130285761302761417b565b5b600061303684828501612f38565b91505092915050565b600080604083850312156130565761305561417b565b5b600061306485828601612f38565b925050602061307585828601612f38565b9150509250929050565b6000806000606084860312156130985761309761417b565b5b60006130a686828701612f38565b93505060206130b786828701612f38565b92505060406130c886828701612fe8565b9150509250925092565b600080600080608085870312156130ec576130eb61417b565b5b60006130fa87828801612f38565b945050602061310b87828801612f38565b935050604061311c87828801612fe8565b925050606085013567ffffffffffffffff81111561313d5761313c614176565b5b61314987828801612f8c565b91505092959194509250565b6000806040838503121561316c5761316b61417b565b5b600061317a85828601612f38565b925050602061318b85828601612f4d565b9150509250929050565b600080604083850312156131ac576131ab61417b565b5b60006131ba85828601612f38565b92505060206131cb85828601612fe8565b9150509250929050565b6000602082840312156131eb576131ea61417b565b5b60006131f984828501612f62565b91505092915050565b6000602082840312156132185761321761417b565b5b600061322684828501612f77565b91505092915050565b6000602082840312156132455761324461417b565b5b600082013567ffffffffffffffff81111561326357613262614176565b5b61326f84828501612fba565b91505092915050565b60006020828403121561328e5761328d61417b565b5b600061329c84828501612fe8565b91505092915050565b6000602082840312156132bb576132ba61417b565b5b60006132c984828501612ffd565b91505092915050565b60006132de8383613800565b60208301905092915050565b6132f381613eb2565b82525050565b600061330482613d31565b61330e8185613d5f565b935061331983613d21565b8060005b8381101561334a57815161333188826132d2565b975061333c83613d52565b92505060018101905061331d565b5085935050505092915050565b61336081613ec4565b82525050565b600061337182613d3c565b61337b8185613d70565b935061338b818560208601613f42565b61339481614180565b840191505092915050565b60006133aa82613d47565b6133b48185613d81565b93506133c4818560208601613f42565b6133cd81614180565b840191505092915050565b60006133e382613d47565b6133ed8185613d92565b93506133fd818560208601613f42565b80840191505092915050565b6000613416603383613d81565b915061342182614191565b604082019050919050565b6000613439602b83613d81565b9150613444826141e0565b604082019050919050565b600061345c603283613d81565b91506134678261422f565b604082019050919050565b600061347f602683613d81565b915061348a8261427e565b604082019050919050565b60006134a2601a83613d81565b91506134ad826142cd565b602082019050919050565b60006134c5601c83613d81565b91506134d0826142f6565b602082019050919050565b60006134e860f983613d92565b91506134f38261431f565b60f982019050919050565b600061350b602483613d81565b915061351682614452565b604082019050919050565b600061352e601983613d81565b9150613539826144a1565b602082019050919050565b6000613551603883613d81565b915061355c826144ca565b604082019050919050565b6000613574602c83613d81565b915061357f82614519565b604082019050919050565b6000613597603883613d81565b91506135a282614568565b604082019050919050565b60006135ba602a83613d81565b91506135c5826145b7565b604082019050919050565b60006135dd602983613d81565b91506135e882614606565b604082019050919050565b6000613600601d83613d81565b915061360b82614655565b602082019050919050565b6000613623602083613d81565b915061362e8261467e565b602082019050919050565b6000613646600883613d81565b9150613651826146a7565b602082019050919050565b6000613669602183613d81565b9150613674826146d0565b604082019050919050565b600061368c602c83613d81565b91506136978261471f565b604082019050919050565b60006136af600583613d92565b91506136ba8261476e565b600582019050919050565b60006136d2602083613d81565b91506136dd82614797565b602082019050919050565b60006136f5602683613d81565b9150613700826147c0565b604082019050919050565b6000613718602983613d81565b91506137238261480f565b604082019050919050565b600061373b602f83613d81565b91506137468261485e565b604082019050919050565b600061375e602183613d81565b9150613769826148ad565b604082019050919050565b6000613781601d83613d92565b915061378c826148fc565b601d82019050919050565b60006137a4603183613d81565b91506137af82614925565b604082019050919050565b60006137c7602c83613d81565b91506137d282614974565b604082019050919050565b60006137ea605083613d92565b91506137f5826149c3565b605082019050919050565b61380981613f1c565b82525050565b61381881613f1c565b82525050565b600061382a82856133d8565b915061383682846133d8565b9150613841826136a2565b91508190509392505050565b6000613858826134db565b9150819050919050565b600061386d82613774565b915061387982846133d8565b915081905092915050565b600061388f826137dd565b9150819050919050565b60006020820190506138ae60008301846132ea565b92915050565b60006080820190506138c960008301876132ea565b6138d660208301866132ea565b6138e3604083018561380f565b81810360608301526138f58184613366565b905095945050505050565b6000602082019050818103600083015261391a81846132f9565b905092915050565b60006020820190506139376000830184613357565b92915050565b60006020820190508181036000830152613957818461339f565b905092915050565b6000602082019050818103600083015261397881613409565b9050919050565b600060208201905081810360008301526139988161342c565b9050919050565b600060208201905081810360008301526139b88161344f565b9050919050565b600060208201905081810360008301526139d881613472565b9050919050565b600060208201905081810360008301526139f881613495565b9050919050565b60006020820190508181036000830152613a18816134b8565b9050919050565b60006020820190508181036000830152613a38816134fe565b9050919050565b60006020820190508181036000830152613a5881613521565b9050919050565b60006020820190508181036000830152613a7881613544565b9050919050565b60006020820190508181036000830152613a9881613567565b9050919050565b60006020820190508181036000830152613ab88161358a565b9050919050565b60006020820190508181036000830152613ad8816135ad565b9050919050565b60006020820190508181036000830152613af8816135d0565b9050919050565b60006020820190508181036000830152613b18816135f3565b9050919050565b60006020820190508181036000830152613b3881613616565b9050919050565b60006020820190508181036000830152613b5881613639565b9050919050565b60006020820190508181036000830152613b788161365c565b9050919050565b60006020820190508181036000830152613b988161367f565b9050919050565b60006020820190508181036000830152613bb8816136c5565b9050919050565b60006020820190508181036000830152613bd8816136e8565b9050919050565b60006020820190508181036000830152613bf88161370b565b9050919050565b60006020820190508181036000830152613c188161372e565b9050919050565b60006020820190508181036000830152613c3881613751565b9050919050565b60006020820190508181036000830152613c5881613797565b9050919050565b60006020820190508181036000830152613c78816137ba565b9050919050565b6000602082019050613c94600083018461380f565b92915050565b6000613ca4613cb5565b9050613cb08282613fa7565b919050565b6000604051905090565b600067ffffffffffffffff821115613cda57613cd961413d565b5b613ce382614180565b9050602081019050919050565b600067ffffffffffffffff821115613d0b57613d0a61413d565b5b613d1482614180565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613da882613f1c565b9150613db383613f1c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613de857613de7614052565b5b828201905092915050565b6000613dfe82613f1c565b9150613e0983613f1c565b925082613e1957613e18614081565b5b828204905092915050565b6000613e2f82613f1c565b9150613e3a83613f1c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e7357613e72614052565b5b828202905092915050565b6000613e8982613f1c565b9150613e9483613f1c565b925082821015613ea757613ea6614052565b5b828203905092915050565b6000613ebd82613efc565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613f60578082015181840152602081019050613f45565b83811115613f6f576000848401525b50505050565b60006002820490506001821680613f8d57607f821691505b60208210811415613fa157613fa06140b0565b5b50919050565b613fb082614180565b810181811067ffffffffffffffff82111715613fcf57613fce61413d565b5b80604052505050565b6000613fe382613f1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561401657614015614052565b5b600182019050919050565b600061402c82613f1c565b915061403783613f1c565b92508261404757614046614081565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536f727279207468652053616c65206973206e6f74206f70656e000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f7b226e616d65223a2022427265772042756464696573222c202264657363726960008201527f7074696f6e223a202242726577204275646469657320617265206120636f6c6c60208201527f656374696f6e206f6620322c3030302066726573686c7920627265776564207460408201527f617374792063757073206f6620636f666665652074686174206c697665206f6e60608201527f2074686520457468657265756d20626c6f636b636861696e222c202273656c6c60808201527f65725f6665655f62617369735f706f696e7473223a203230302c20226665655f60a08201527f726563697069656e74223a20223078653131394644634636363533363533373160c08201527f6433433232374130643836413437433437313035394536227d0000000000000060e082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f596f752063616e206e6f74206d696e74206d6f7265207468616e20746865206d60008201527f6178696d756d20616c6c6f7765642070657220757365722e0000000000000000602082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f43686f73656e20416d6f756e742065786365656473204d61785175616e74697460008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f69706660008201527f732f516d62727046766861547051433554424a754177464c793879704863687760208201527f5172456f7a7950584e674d71315a317800000000000000000000000000000000604082015250565b614a4181613eb2565b8114614a4c57600080fd5b50565b614a5881613ec4565b8114614a6357600080fd5b50565b614a6f81613ed0565b8114614a7a57600080fd5b50565b614a8681613f1c565b8114614a9157600080fd5b50565b614a9d81613f26565b8114614aa857600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220022dc5bba23462b76353d0debe4b479212ec0ccc693aab824ca1d7651fea0d3364736f6c634300080700330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d574e6f4a4c77343542776344744853335465774742697564754d546f4c31637962694a4c31424479526a39592f000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102255760003560e01c80637664531511610123578063a22cb465116100ab578063e640cf7d1161006f578063e640cf7d146107fa578063e757223014610825578063e8a3d48514610862578063e985e9c51461088d578063f2fde38b146108ca57610225565b8063a22cb46514610715578063a475b5dd1461073e578063b88d4fde14610769578063c87b56dd14610792578063db4568e2146107cf57610225565b806391b7f5ed116100f257806391b7f5ed1461065157806395d89b411461067a5780639d38fd21146106a5578063a035b1fe146106ce578063a0712d68146106f957610225565b806376645315146105a9578063813dcee7146105c05780638462151c146105e95780638da5cb5b1461062657610225565b80632f745c59116101b15780634f6ccce7116101755780634f6ccce71461049e57806355f804b3146104db5780636352211e1461050457806370a0823114610541578063743976a01461057e57610225565b80632f745c59146103cb5780633ccfd60b146104085780633f8052ca1461041f57806342842e0e1461044a5780634e69d5601461047357610225565b8063095ea7b3116101f8578063095ea7b3146102fa57806318160ddd14610323578063200d2ed21461034e57806323b872dd146103795780632e49d78b146103a257610225565b806301ffc9a71461022a57806306d586bb1461026757806306fdde0314610292578063081812fc146102bd575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c91906131d5565b6108f3565b60405161025e9190613922565b60405180910390f35b34801561027357600080fd5b5061027c61096d565b6040516102899190613c7f565b60405180910390f35b34801561029e57600080fd5b506102a7610973565b6040516102b4919061393d565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190613278565b610a05565b6040516102f19190613899565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190613195565b610a8a565b005b34801561032f57600080fd5b50610338610ba2565b6040516103459190613c7f565b60405180910390f35b34801561035a57600080fd5b50610363610baf565b6040516103709190613c7f565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b919061307f565b610bb5565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906132a5565b610c15565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190613195565b610c9e565b6040516103ff9190613c7f565b60405180910390f35b34801561041457600080fd5b5061041d610d43565b005b34801561042b57600080fd5b50610434610e0e565b6040516104419190613c7f565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c919061307f565b610e18565b005b34801561047f57600080fd5b50610488610e38565b6040516104959190613c7f565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613278565b610e42565b6040516104d29190613c7f565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd919061322f565b610eb3565b005b34801561051057600080fd5b5061052b60048036038101906105269190613278565b610f49565b6040516105389190613899565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613012565b610ffb565b6040516105759190613c7f565b60405180910390f35b34801561058a57600080fd5b506105936110b3565b6040516105a0919061393d565b60405180910390f35b3480156105b557600080fd5b506105be611141565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613278565b6111e9565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613012565b61126f565b60405161061d9190613900565b60405180910390f35b34801561063257600080fd5b5061063b61131d565b6040516106489190613899565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190613278565b611347565b005b34801561068657600080fd5b5061068f6113cd565b60405161069c919061393d565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613278565b61145f565b005b3480156106da57600080fd5b506106e36114e5565b6040516106f09190613c7f565b60405180910390f35b610713600480360381019061070e9190613278565b6114eb565b005b34801561072157600080fd5b5061073c60048036038101906107379190613155565b61173b565b005b34801561074a57600080fd5b506107536118bc565b6040516107609190613922565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b91906130d2565b6118cf565b005b34801561079e57600080fd5b506107b960048036038101906107b49190613278565b611931565b6040516107c6919061393d565b60405180910390f35b3480156107db57600080fd5b506107e4611a14565b6040516107f19190613c7f565b60405180910390f35b34801561080657600080fd5b5061080f611a1a565b60405161081c9190613c7f565b60405180910390f35b34801561083157600080fd5b5061084c60048036038101906108479190613278565b611a20565b6040516108599190613c7f565b60405180910390f35b34801561086e57600080fd5b50610877611a37565b604051610884919061393d565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af919061303f565b611a8c565b6040516108c19190613922565b60405180910390f35b3480156108d657600080fd5b506108f160048036038101906108ec9190613012565b611b20565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610966575061096582611c18565b5b9050919050565b600d5481565b60606000805461098290613f75565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613f75565b80156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b5050505050905090565b6000610a1082611cfa565b610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613b7f565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a9582610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90613c1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b25611d66565b73ffffffffffffffffffffffffffffffffffffffff161480610b545750610b5381610b4e611d66565b611a8c565b5b610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613a9f565b60405180910390fd5b610b9d8383611d6e565b505050565b6000600980549050905090565b600f5481565b610bc6610bc0611d66565b82611e27565b610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90613c3f565b60405180910390fd5b610c10838383611f05565b505050565b610c1d611d66565b73ffffffffffffffffffffffffffffffffffffffff16610c3b61131d565b73ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890613b9f565b60405180910390fd5b8060ff16600f8190555050565b6000610ca983610ffb565b8210610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce19061397f565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d4b611d66565b73ffffffffffffffffffffffffffffffffffffffff16610d6961131d565b73ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690613b9f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0a573d6000803e3d6000fd5b5050565b6000600d54905090565b610e33838383604051806020016040528060008152506118cf565b505050565b6000600f54905090565b6000610e4c610ba2565b8210610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490613c5f565b60405180910390fd5b60098281548110610ea157610ea061410e565b5b90600052602060002001549050919050565b610ebb611d66565b73ffffffffffffffffffffffffffffffffffffffff16610ed961131d565b73ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613b9f565b60405180910390fd5b8060069080519060200190610f45929190612e11565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990613adf565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390613abf565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600680546110c090613f75565b80601f01602080910402602001604051908101604052809291908181526020018280546110ec90613f75565b80156111395780601f1061110e57610100808354040283529160200191611139565b820191906000526020600020905b81548152906001019060200180831161111c57829003601f168201915b505050505081565b611149611d66565b73ffffffffffffffffffffffffffffffffffffffff1661116761131d565b73ffffffffffffffffffffffffffffffffffffffff16146111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490613b9f565b60405180910390fd5b601060009054906101000a900460ff1615601060006101000a81548160ff021916908315150217905550565b6111f1611d66565b73ffffffffffffffffffffffffffffffffffffffff1661120f61131d565b73ffffffffffffffffffffffffffffffffffffffff1614611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90613b9f565b60405180910390fd5b80600d8190555050565b6060600061127c83610ffb565b905060008167ffffffffffffffff81111561129a5761129961413d565b5b6040519080825280602002602001820160405280156112c85781602001602082028036833780820191505090505b50905060005b82811015611312576112e08582610c9e565b8282815181106112f3576112f261410e565b5b602002602001018181525050808061130a90613fd8565b9150506112ce565b508092505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61134f611d66565b73ffffffffffffffffffffffffffffffffffffffff1661136d61131d565b73ffffffffffffffffffffffffffffffffffffffff16146113c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ba90613b9f565b60405180910390fd5b80600e8190555050565b6060600180546113dc90613f75565b80601f016020809104026020016040519081016040528092919081815260200182805461140890613f75565b80156114555780601f1061142a57610100808354040283529160200191611455565b820191906000526020600020905b81548152906001019060200180831161143857829003601f168201915b5050505050905090565b611467611d66565b73ffffffffffffffffffffffffffffffffffffffff1661148561131d565b73ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613b9f565b60405180910390fd5b80600c8190555050565b600e5481565b6107d06114f6610ba2565b10611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613b3f565b60405180910390fd5b6107d081611542610ba2565b61154c9190613d9d565b111561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613bbf565b60405180910390fd5b600081116115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c79061395f565b60405180910390fd5b600c54811115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613b5f565b60405180910390fd5b3461162b82600e5461216190919063ffffffff16565b1461166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613aff565b60405180910390fd5b6001600f54146116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906139df565b60405180910390fd5b600d546116bc33610ffb565b826116c79190613d9d565b1115611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613a5f565b60405180910390fd5b60005b81811015611737576117243361171f612177565b612192565b808061172f90613fd8565b91505061170b565b5050565b611743611d66565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613a3f565b60405180910390fd5b80600560006117be611d66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661186b611d66565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118b09190613922565b60405180910390a35050565b601060009054906101000a900460ff1681565b6118e06118da611d66565b83611e27565b61191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690613c3f565b60405180910390fd5b61192b848484846121b0565b50505050565b606061193c82611cfa565b61197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613bff565b60405180910390fd5b600061198561220c565b90506000815111156119fb57601060009054906101000a900460ff166119c8576040516020016119b490613884565b6040516020818303038152906040526119f3565b806119d28461229e565b6040516020016119e392919061381e565b6040516020818303038152906040525b915050611a0f565b604051806020016040528060008152509150505b919050565b6107d081565b600c5481565b6000600e5482611a309190613e24565b9050919050565b60606000611a61604051602001611a4d9061384d565b6040516020818303038152906040526123ff565b905080604051602001611a749190613862565b60405160208183030381529060405290508091505090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b28611d66565b73ffffffffffffffffffffffffffffffffffffffff16611b4661131d565b73ffffffffffffffffffffffffffffffffffffffff1614611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c03906139bf565b60405180910390fd5b611c1581612597565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ce357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611cf35750611cf28261265d565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611de183610f49565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e3282611cfa565b611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6890613a7f565b60405180910390fd5b6000611e7c83610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611eeb57508373ffffffffffffffffffffffffffffffffffffffff16611ed384610a05565b73ffffffffffffffffffffffffffffffffffffffff16145b80611efc5750611efb8185611a8c565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f2582610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613bdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613a1f565b60405180910390fd5b611ff68383836126c7565b612001600082611d6e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120519190613e7e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120a89190613d9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000818361216f9190613e24565b905092915050565b60006001612183610ba2565b61218d9190613d9d565b905090565b6121ac8282604051806020016040528060008152506127db565b5050565b6121bb848484611f05565b6121c784848484612836565b612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd9061399f565b60405180910390fd5b50505050565b60606006805461221b90613f75565b80601f016020809104026020016040519081016040528092919081815260200182805461224790613f75565b80156122945780601f1061226957610100808354040283529160200191612294565b820191906000526020600020905b81548152906001019060200180831161227757829003601f168201915b5050505050905090565b606060008214156122e6576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506123fa565b600082905060005b6000821461231857808061230190613fd8565b915050600a826123119190613df3565b91506122ee565b60008167ffffffffffffffff8111156123345761233361413d565b5b6040519080825280601f01601f1916602001820160405280156123665781602001600182028036833780820191505090505b5090505b600085146123f35760018261237f9190613e7e565b9150600a8561238e9190614021565b603061239a9190613d9d565b60f81b8183815181106123b0576123af61410e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123ec9190613df3565b945061236a565b8093505050505b919050565b606060008251905060008114156124285760405180602001604052806000815250915050612592565b600060036002836124399190613d9d565b6124439190613df3565b600461244f9190613e24565b905060006020826124609190613d9d565b67ffffffffffffffff8111156124795761247861413d565b5b6040519080825280601f01601f1916602001820160405280156124ab5781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001614aac604091399050600181016020830160005b8681101561254f5760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b905080845260048401935050506124d6565b506003860660018114612569576002811461257957612584565b613d3d60f01b6002830352612584565b603d60f81b60018303525b508484525050819450505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6126d28383836129cd565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561271557612710816129d2565b612754565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612753576127528382612a1b565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127975761279281612b1b565b6127d6565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146127d5576127d48282612bb1565b5b5b505050565b6127e58383612c30565b6127f26000848484612836565b612831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128289061399f565b60405180910390fd5b505050565b60006128578473ffffffffffffffffffffffffffffffffffffffff16612dfe565b156129c0578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612880611d66565b8786866040518563ffffffff1660e01b81526004016128a294939291906138b4565b602060405180830381600087803b1580156128bc57600080fd5b505af19250505080156128ed57506040513d601f19601f820116820180604052508101906128ea9190613202565b60015b612970573d806000811461291d576040519150601f19603f3d011682016040523d82523d6000602084013e612922565b606091505b50600081511415612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f9061399f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506129c5565b600190505b949350505050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612a2884610ffb565b612a329190613e7e565b9050600060086000848152602001908152602001600020549050818114612aaa576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612b2f9190613e7e565b90506000600a6000848152602001908152602001600020549050600060098381548110612b5f57612b5e61410e565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612b9557612b946140df565b5b6001900381819060005260206000200160009055905550505050565b6000612bbc83610ffb565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9790613b1f565b60405180910390fd5b612ca981611cfa565b15612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce0906139ff565b60405180910390fd5b612cf5600083836126c7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d459190613d9d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612e1d90613f75565b90600052602060002090601f016020900481019282612e3f5760008555612e86565b82601f10612e5857805160ff1916838001178555612e86565b82800160010185558215612e86579182015b82811115612e85578251825591602001919060010190612e6a565b5b509050612e939190612e97565b5090565b5b80821115612eb0576000816000905550600101612e98565b5090565b6000612ec7612ec284613cbf565b613c9a565b905082815260208101848484011115612ee357612ee2614171565b5b612eee848285613f33565b509392505050565b6000612f09612f0484613cf0565b613c9a565b905082815260208101848484011115612f2557612f24614171565b5b612f30848285613f33565b509392505050565b600081359050612f4781614a38565b92915050565b600081359050612f5c81614a4f565b92915050565b600081359050612f7181614a66565b92915050565b600081519050612f8681614a66565b92915050565b600082601f830112612fa157612fa061416c565b5b8135612fb1848260208601612eb4565b91505092915050565b600082601f830112612fcf57612fce61416c565b5b8135612fdf848260208601612ef6565b91505092915050565b600081359050612ff781614a7d565b92915050565b60008135905061300c81614a94565b92915050565b6000602082840312156130285761302761417b565b5b600061303684828501612f38565b91505092915050565b600080604083850312156130565761305561417b565b5b600061306485828601612f38565b925050602061307585828601612f38565b9150509250929050565b6000806000606084860312156130985761309761417b565b5b60006130a686828701612f38565b93505060206130b786828701612f38565b92505060406130c886828701612fe8565b9150509250925092565b600080600080608085870312156130ec576130eb61417b565b5b60006130fa87828801612f38565b945050602061310b87828801612f38565b935050604061311c87828801612fe8565b925050606085013567ffffffffffffffff81111561313d5761313c614176565b5b61314987828801612f8c565b91505092959194509250565b6000806040838503121561316c5761316b61417b565b5b600061317a85828601612f38565b925050602061318b85828601612f4d565b9150509250929050565b600080604083850312156131ac576131ab61417b565b5b60006131ba85828601612f38565b92505060206131cb85828601612fe8565b9150509250929050565b6000602082840312156131eb576131ea61417b565b5b60006131f984828501612f62565b91505092915050565b6000602082840312156132185761321761417b565b5b600061322684828501612f77565b91505092915050565b6000602082840312156132455761324461417b565b5b600082013567ffffffffffffffff81111561326357613262614176565b5b61326f84828501612fba565b91505092915050565b60006020828403121561328e5761328d61417b565b5b600061329c84828501612fe8565b91505092915050565b6000602082840312156132bb576132ba61417b565b5b60006132c984828501612ffd565b91505092915050565b60006132de8383613800565b60208301905092915050565b6132f381613eb2565b82525050565b600061330482613d31565b61330e8185613d5f565b935061331983613d21565b8060005b8381101561334a57815161333188826132d2565b975061333c83613d52565b92505060018101905061331d565b5085935050505092915050565b61336081613ec4565b82525050565b600061337182613d3c565b61337b8185613d70565b935061338b818560208601613f42565b61339481614180565b840191505092915050565b60006133aa82613d47565b6133b48185613d81565b93506133c4818560208601613f42565b6133cd81614180565b840191505092915050565b60006133e382613d47565b6133ed8185613d92565b93506133fd818560208601613f42565b80840191505092915050565b6000613416603383613d81565b915061342182614191565b604082019050919050565b6000613439602b83613d81565b9150613444826141e0565b604082019050919050565b600061345c603283613d81565b91506134678261422f565b604082019050919050565b600061347f602683613d81565b915061348a8261427e565b604082019050919050565b60006134a2601a83613d81565b91506134ad826142cd565b602082019050919050565b60006134c5601c83613d81565b91506134d0826142f6565b602082019050919050565b60006134e860f983613d92565b91506134f38261431f565b60f982019050919050565b600061350b602483613d81565b915061351682614452565b604082019050919050565b600061352e601983613d81565b9150613539826144a1565b602082019050919050565b6000613551603883613d81565b915061355c826144ca565b604082019050919050565b6000613574602c83613d81565b915061357f82614519565b604082019050919050565b6000613597603883613d81565b91506135a282614568565b604082019050919050565b60006135ba602a83613d81565b91506135c5826145b7565b604082019050919050565b60006135dd602983613d81565b91506135e882614606565b604082019050919050565b6000613600601d83613d81565b915061360b82614655565b602082019050919050565b6000613623602083613d81565b915061362e8261467e565b602082019050919050565b6000613646600883613d81565b9150613651826146a7565b602082019050919050565b6000613669602183613d81565b9150613674826146d0565b604082019050919050565b600061368c602c83613d81565b91506136978261471f565b604082019050919050565b60006136af600583613d92565b91506136ba8261476e565b600582019050919050565b60006136d2602083613d81565b91506136dd82614797565b602082019050919050565b60006136f5602683613d81565b9150613700826147c0565b604082019050919050565b6000613718602983613d81565b91506137238261480f565b604082019050919050565b600061373b602f83613d81565b91506137468261485e565b604082019050919050565b600061375e602183613d81565b9150613769826148ad565b604082019050919050565b6000613781601d83613d92565b915061378c826148fc565b601d82019050919050565b60006137a4603183613d81565b91506137af82614925565b604082019050919050565b60006137c7602c83613d81565b91506137d282614974565b604082019050919050565b60006137ea605083613d92565b91506137f5826149c3565b605082019050919050565b61380981613f1c565b82525050565b61381881613f1c565b82525050565b600061382a82856133d8565b915061383682846133d8565b9150613841826136a2565b91508190509392505050565b6000613858826134db565b9150819050919050565b600061386d82613774565b915061387982846133d8565b915081905092915050565b600061388f826137dd565b9150819050919050565b60006020820190506138ae60008301846132ea565b92915050565b60006080820190506138c960008301876132ea565b6138d660208301866132ea565b6138e3604083018561380f565b81810360608301526138f58184613366565b905095945050505050565b6000602082019050818103600083015261391a81846132f9565b905092915050565b60006020820190506139376000830184613357565b92915050565b60006020820190508181036000830152613957818461339f565b905092915050565b6000602082019050818103600083015261397881613409565b9050919050565b600060208201905081810360008301526139988161342c565b9050919050565b600060208201905081810360008301526139b88161344f565b9050919050565b600060208201905081810360008301526139d881613472565b9050919050565b600060208201905081810360008301526139f881613495565b9050919050565b60006020820190508181036000830152613a18816134b8565b9050919050565b60006020820190508181036000830152613a38816134fe565b9050919050565b60006020820190508181036000830152613a5881613521565b9050919050565b60006020820190508181036000830152613a7881613544565b9050919050565b60006020820190508181036000830152613a9881613567565b9050919050565b60006020820190508181036000830152613ab88161358a565b9050919050565b60006020820190508181036000830152613ad8816135ad565b9050919050565b60006020820190508181036000830152613af8816135d0565b9050919050565b60006020820190508181036000830152613b18816135f3565b9050919050565b60006020820190508181036000830152613b3881613616565b9050919050565b60006020820190508181036000830152613b5881613639565b9050919050565b60006020820190508181036000830152613b788161365c565b9050919050565b60006020820190508181036000830152613b988161367f565b9050919050565b60006020820190508181036000830152613bb8816136c5565b9050919050565b60006020820190508181036000830152613bd8816136e8565b9050919050565b60006020820190508181036000830152613bf88161370b565b9050919050565b60006020820190508181036000830152613c188161372e565b9050919050565b60006020820190508181036000830152613c3881613751565b9050919050565b60006020820190508181036000830152613c5881613797565b9050919050565b60006020820190508181036000830152613c78816137ba565b9050919050565b6000602082019050613c94600083018461380f565b92915050565b6000613ca4613cb5565b9050613cb08282613fa7565b919050565b6000604051905090565b600067ffffffffffffffff821115613cda57613cd961413d565b5b613ce382614180565b9050602081019050919050565b600067ffffffffffffffff821115613d0b57613d0a61413d565b5b613d1482614180565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613da882613f1c565b9150613db383613f1c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613de857613de7614052565b5b828201905092915050565b6000613dfe82613f1c565b9150613e0983613f1c565b925082613e1957613e18614081565b5b828204905092915050565b6000613e2f82613f1c565b9150613e3a83613f1c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e7357613e72614052565b5b828202905092915050565b6000613e8982613f1c565b9150613e9483613f1c565b925082821015613ea757613ea6614052565b5b828203905092915050565b6000613ebd82613efc565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613f60578082015181840152602081019050613f45565b83811115613f6f576000848401525b50505050565b60006002820490506001821680613f8d57607f821691505b60208210811415613fa157613fa06140b0565b5b50919050565b613fb082614180565b810181811067ffffffffffffffff82111715613fcf57613fce61413d565b5b80604052505050565b6000613fe382613f1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561401657614015614052565b5b600182019050919050565b600061402c82613f1c565b915061403783613f1c565b92508261404757614046614081565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536f727279207468652053616c65206973206e6f74206f70656e000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f7b226e616d65223a2022427265772042756464696573222c202264657363726960008201527f7074696f6e223a202242726577204275646469657320617265206120636f6c6c60208201527f656374696f6e206f6620322c3030302066726573686c7920627265776564207460408201527f617374792063757073206f6620636f666665652074686174206c697665206f6e60608201527f2074686520457468657265756d20626c6f636b636861696e222c202273656c6c60808201527f65725f6665655f62617369735f706f696e7473223a203230302c20226665655f60a08201527f726563697069656e74223a20223078653131394644634636363533363533373160c08201527f6433433232374130643836413437433437313035394536227d0000000000000060e082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f596f752063616e206e6f74206d696e74206d6f7265207468616e20746865206d60008201527f6178696d756d20616c6c6f7765642070657220757365722e0000000000000000602082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f43686f73656e20416d6f756e742065786365656473204d61785175616e74697460008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f69706660008201527f732f516d62727046766861547051433554424a754177464c793879704863687760208201527f5172456f7a7950584e674d71315a317800000000000000000000000000000000604082015250565b614a4181613eb2565b8114614a4c57600080fd5b50565b614a5881613ec4565b8114614a6357600080fd5b50565b614a6f81613ed0565b8114614a7a57600080fd5b50565b614a8681613f1c565b8114614a9157600080fd5b50565b614a9d81613f26565b8114614aa857600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220022dc5bba23462b76353d0debe4b479212ec0ccc693aab824ca1d7651fea0d3364736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d574e6f4a4c77343542776344744853335465774742697564754d546f4c31637962694a4c31424479526a39592f000000000000000000000000000000
-----Decoded View---------------
Arg [0] : baseURI (string): https://gateway.pinata.cloud/ipfs/QmWNoJLw45BwcDtHS3TewGBiuduMToL1cybiJL1BDyRj9Y/
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000051
Arg [2] : 68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066
Arg [3] : 732f516d574e6f4a4c77343542776344744853335465774742697564754d546f
Arg [4] : 4c31637962694a4c31424479526a39592f000000000000000000000000000000
Deployed Bytecode Sourcemap
21352:4000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18731:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21558:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12205:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13282:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12865:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19223:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21634:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13980:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22054:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18961:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23970:140;;;;;;;;;;;;;:::i;:::-;;22752:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14272:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22534:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19342:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21851:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11960:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11746:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11284:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22239:72;;;;;;;;;;;;;:::i;:::-;;22317:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23611:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10245:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21956:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12311:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22133:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21593:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22864:738;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13509:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21688:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14463:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24225:612;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21477:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21524:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22625:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24848:501;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13810:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10464:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18731:224;18833:4;18872:35;18857:50;;;:11;:50;;;;:90;;;;18911:36;18935:11;18911:23;:36::i;:::-;18857:90;18850:97;;18731:224;;;:::o;21558:25::-;;;;:::o;12205:100::-;12259:13;12292:5;12285:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12205:100;:::o;13282:221::-;13358:7;13386:16;13394:7;13386;:16::i;:::-;13378:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13471:15;:24;13487:7;13471:24;;;;;;;;;;;;;;;;;;;;;13464:31;;13282:221;;;:::o;12865:411::-;12946:13;12962:23;12977:7;12962:14;:23::i;:::-;12946:39;;13010:5;13004:11;;:2;:11;;;;12996:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13104:5;13088:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;13113:37;13130:5;13137:12;:10;:12::i;:::-;13113:16;:37::i;:::-;13088:62;13066:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;13247:21;13256:2;13260:7;13247:8;:21::i;:::-;12935:341;12865:411;;:::o;19223:113::-;19284:7;19311:10;:17;;;;19304:24;;19223:113;:::o;21634:25::-;;;;:::o;13980:286::-;14122:41;14141:12;:10;:12::i;:::-;14155:7;14122:18;:41::i;:::-;14114:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14230:28;14240:4;14246:2;14250:7;14230:9;:28::i;:::-;13980:286;;;:::o;22054:73::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22118:1:::1;22109:10;;:6;:10;;;;22054:73:::0;:::o;18961:256::-;19058:7;19094:23;19111:5;19094:16;:23::i;:::-;19086:5;:31;19078:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19183:12;:19;19196:5;19183:19;;;;;;;;;;;;;;;:26;19203:5;19183:26;;;;;;;;;;;;19176:33;;18961:256;;;;:::o;23970:140::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24018:12:::1;24033:21;24018:36;;24073:10;24065:28;;:37;24094:7;24065:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24007:103;23970:140::o:0;22752:104::-;22798:7;22837:10;;22830:17;;22752:104;:::o;14272:185::-;14410:39;14427:4;14433:2;14437:7;14410:39;;;;;;;;;;;;:16;:39::i;:::-;14272:185;;;:::o;22534:85::-;22576:7;22603:6;;22596:13;;22534:85;:::o;19342:233::-;19417:7;19453:30;:28;:30::i;:::-;19445:5;:38;19437:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;19550:10;19561:5;19550:17;;;;;;;;:::i;:::-;;;;;;;;;;19543:24;;19342:233;;;:::o;21851:97::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21933:7:::1;21922:8;:18;;;;;;;;;;;;:::i;:::-;;21851:97:::0;:::o;11960:239::-;12032:7;12052:13;12068:7;:16;12076:7;12068:16;;;;;;;;;;;;;;;;;;;;;12052:32;;12120:1;12103:19;;:5;:19;;;;12095:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12186:5;12179:12;;;11960:239;;;:::o;11746:208::-;11818:7;11863:1;11846:19;;:5;:19;;;;11838:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11930:9;:16;11940:5;11930:16;;;;;;;;;;;;;;;;11923:23;;11746:208;;;:::o;11284:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22239:72::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22297:6:::1;;;;;;;;;;;22295:8;22287:6;;:16;;;;;;;;;;;;;;;;;;22239:72::o:0;22317:106::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22404:11:::1;22391:10;:24;;;;22317:106:::0;:::o;23611:351::-;23671:16;23705:13;23721:17;23731:6;23721:9;:17::i;:::-;23705:33;;23749:23;23789:5;23775:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23749:46;;23811:13;23806:125;23838:5;23830;:13;23806:125;;;23885:34;23905:6;23913:5;23885:19;:34::i;:::-;23869:6;23876:5;23869:13;;;;;;;;:::i;:::-;;;;;;;:50;;;;;23845:7;;;;;:::i;:::-;;;;23806:125;;;;23948:6;23941:13;;;;23611:351;;;:::o;10245:87::-;10291:7;10318:6;;;;;;;;;;;10311:13;;10245:87;:::o;21956:92::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22031:9:::1;22023:5;:17;;;;21956:92:::0;:::o;12311:104::-;12367:13;12400:7;12393:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12311:104;:::o;22133:100::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22216:9:::1;22204:11;:21;;;;22133:100:::0;:::o;21593:33::-;;;;:::o;22864:738::-;21513:4;22467:13;:11;:13::i;:::-;:28;22459:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;21513:4:::1;22956:12;22942:13;:11;:13::i;:::-;:26;;;;:::i;:::-;:40;;22934:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;23058:1;23043:12;:16;23035:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;23150:11;;23134:12;:27;;23126:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23244:9;23217:23;23227:12;23217:5;;:9;;:23;;;;:::i;:::-;:36;23209:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23316:1;23306:6;;:11;23298:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;23407:10;;23382:21;23392:10;23382:9;:21::i;:::-;23367:12;:36;;;;:::i;:::-;:50;;23359:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;23497:6;23492:103;23513:12;23509:1;:16;23492:103;;;23547:36;23557:10;23569:13;:11;:13::i;:::-;23547:9;:36::i;:::-;23527:3;;;;;:::i;:::-;;;;23492:103;;;;22864:738:::0;:::o;13509:295::-;13624:12;:10;:12::i;:::-;13612:24;;:8;:24;;;;13604:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13724:8;13679:18;:32;13698:12;:10;:12::i;:::-;13679:32;;;;;;;;;;;;;;;:42;13712:8;13679:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;13777:8;13748:48;;13763:12;:10;:12::i;:::-;13748:48;;;13787:8;13748:48;;;;;;:::i;:::-;;;;;;;;13509:295;;:::o;21688:26::-;;;;;;;;;;;;;:::o;14463:328::-;14638:41;14657:12;:10;:12::i;:::-;14671:7;14638:18;:41::i;:::-;14630:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14744:39;14758:4;14764:2;14768:7;14777:5;14744:13;:39::i;:::-;14463:328;;;;:::o;24225:612::-;24290:13;24324:16;24332:7;24324;:16::i;:::-;24316:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;24405:18;24426:9;:7;:9::i;:::-;24405:30;;24580:1;24565:4;24559:18;:22;24556:273;;;24604:6;;;;;;;;;;;:179;;24682:100;;;;;;;:::i;:::-;;;;;;;;;;;;;24604:179;;;24637:4;24643:18;:7;:16;:18::i;:::-;24620:51;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24604:179;24597:186;;;;;24556:273;24820:9;;;;;;;;;;;;;;;24225:612;;;;:::o;21477:40::-;21513:4;21477:40;:::o;21524:27::-;;;;:::o;22625:121::-;22683:7;22732:5;;22722:9;:15;;;;:::i;:::-;22715:22;;22625:121;;;:::o;24848:501::-;24892:13;24918:18;24939:299;24966:269;;;;;;;:::i;:::-;;;;;;;;;;;;;24939:13;:299::i;:::-;24918:320;;25313:4;25263:55;;;;;;;;:::i;:::-;;;;;;;;;;;;;25249:70;;25337:4;25330:11;;;24848:501;:::o;13810:164::-;13907:4;13931:18;:25;13950:5;13931:25;;;;;;;;;;;;;;;:35;13957:8;13931:35;;;;;;;;;;;;;;;;;;;;;;;;;13924:42;;13810:164;;;;:::o;10464:192::-;10389:12;:10;:12::i;:::-;10378:23;;:7;:5;:7::i;:::-;:23;;;10370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10573:1:::1;10553:22;;:8;:22;;;;10545:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10629:19;10639:8;10629:9;:19::i;:::-;10464:192:::0;:::o;11435:305::-;11537:4;11589:25;11574:40;;;:11;:40;;;;:105;;;;11646:33;11631:48;;;:11;:48;;;;11574:105;:158;;;;11696:36;11720:11;11696:23;:36::i;:::-;11574:158;11554:178;;11435:305;;;:::o;15118:127::-;15183:4;15235:1;15207:30;;:7;:16;15215:7;15207:16;;;;;;;;;;;;;;;;;;;;;:30;;;;15200:37;;15118:127;;;:::o;9708:98::-;9761:7;9788:10;9781:17;;9708:98;:::o;17306:174::-;17408:2;17381:15;:24;17397:7;17381:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;17464:7;17460:2;17426:46;;17435:23;17450:7;17435:14;:23::i;:::-;17426:46;;;;;;;;;;;;17306:174;;:::o;15251:348::-;15344:4;15369:16;15377:7;15369;:16::i;:::-;15361:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15445:13;15461:23;15476:7;15461:14;:23::i;:::-;15445:39;;15514:5;15503:16;;:7;:16;;;:51;;;;15547:7;15523:31;;:20;15535:7;15523:11;:20::i;:::-;:31;;;15503:51;:87;;;;15558:32;15575:5;15582:7;15558:16;:32::i;:::-;15503:87;15495:96;;;15251:348;;;;:::o;16774:526::-;16933:4;16906:31;;:23;16921:7;16906:14;:23::i;:::-;:31;;;16898:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17016:1;17002:16;;:2;:16;;;;16994:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17072:39;17093:4;17099:2;17103:7;17072:20;:39::i;:::-;17124:29;17141:1;17145:7;17124:8;:29::i;:::-;17185:1;17166:9;:15;17176:4;17166:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;17214:1;17197:9;:13;17207:2;17197:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;17245:2;17226:7;:16;17234:7;17226:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17284:7;17280:2;17265:27;;17274:4;17265:27;;;;;;;;;;;;16774:526;;;:::o;1467:98::-;1525:7;1556:1;1552;:5;;;;:::i;:::-;1545:12;;1467:98;;;;:::o;24116:103::-;24161:4;24210:1;24190:19;:17;:19::i;:::-;:21;;;;:::i;:::-;24183:28;;24116:103;:::o;15605:110::-;15681:26;15691:2;15695:7;15681:26;;;;;;;;;;;;:9;:26::i;:::-;15605:110;;:::o;14797:315::-;14954:28;14964:4;14970:2;14974:7;14954:9;:28::i;:::-;15001:48;15024:4;15030:2;15034:7;15043:5;15001:22;:48::i;:::-;14993:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;14797:315;;;;:::o;12760:99::-;12810:13;12843:8;12836:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12760:99;:::o;2602:534::-;2658:13;2699:1;2690:5;:10;2686:53;;;2717:10;;;;;;;;;;;;;;;;;;;;;2686:53;2749:12;2764:5;2749:20;;2780:14;2805:78;2820:1;2812:4;:9;2805:78;;2838:8;;;;;:::i;:::-;;;;2869:2;2861:10;;;;;:::i;:::-;;;2805:78;;;2893:19;2925:6;2915:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2893:39;;2943:154;2959:1;2950:5;:10;2943:154;;2987:1;2977:11;;;;;:::i;:::-;;;3054:2;3046:5;:10;;;;:::i;:::-;3033:2;:24;;;;:::i;:::-;3020:39;;3003:6;3010;3003:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;3083:2;3074:11;;;;;:::i;:::-;;;2943:154;;;3121:6;3107:21;;;;;2602:534;;;;:::o;25548:1607::-;25606:13;25632:11;25646:4;:11;25632:25;;25679:1;25672:3;:8;25668:23;;;25682:9;;;;;;;;;;;;;;;;;25668:23;25743:18;25781:1;25776;25770:3;:7;;;;:::i;:::-;25769:13;;;;:::i;:::-;25764:1;:19;;;;:::i;:::-;25743:40;;25841:19;25886:2;25873:10;:15;;;;:::i;:::-;25863:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25841:48;;25902:18;25923:5;;;;;;;;;;;;;;;;;25902:26;;25992:1;25985:5;25981:13;26037:2;26029:6;26025:15;26088:1;26056:777;26111:3;26108:1;26105:10;26056:777;;;26166:1;26163;26159:9;26154:14;;26224:8;26219:1;26213:4;26209:12;26203:19;26199:34;26304:4;26296:5;26292:2;26288:14;26284:25;26274:8;26270:40;26264:47;26343:3;26340:1;26336:11;26329:18;;26434:4;26425;26417:5;26413:2;26409:14;26405:25;26395:8;26391:40;26385:47;26381:58;26376:3;26372:68;26365:75;;26472:3;26469:1;26465:11;26458:18;;26562:4;26553;26545:5;26542:1;26538:13;26534:24;26524:8;26520:39;26514:46;26510:57;26505:3;26501:67;26494:74;;26600:3;26597:1;26593:11;26586:18;;26682:4;26673;26666:5;26662:16;26652:8;26648:31;26642:38;26638:49;26633:3;26629:59;26622:66;;26722:3;26717;26713:13;26706:20;;26764:3;26753:9;26746:22;26816:1;26805:9;26801:17;26788:30;;26135:698;;26056:777;;;26060:44;26865:1;26860:3;26856:11;26886:1;26881:84;;;;26984:1;26979:82;;;;26849:212;;26881:84;26942:6;26937:3;26933:16;26929:1;26918:9;26914:17;26907:43;26881:84;;26979:82;27040:4;27035:3;27031:14;27027:1;27016:9;27012:17;27005:41;26849:212;;27092:10;27084:6;27077:26;25950:1164;;27140:6;27126:21;;;;;;25548:1607;;;;:::o;10664:173::-;10720:16;10739:6;;;;;;;;;;;10720:25;;10765:8;10756:6;;:17;;;;;;;;;;;;;;;;;;10820:8;10789:40;;10810:8;10789:40;;;;;;;;;;;;10709:128;10664:173;:::o;7820:157::-;7905:4;7944:25;7929:40;;;:11;:40;;;;7922:47;;7820:157;;;:::o;19581:589::-;19725:45;19752:4;19758:2;19762:7;19725:26;:45::i;:::-;19803:1;19787:18;;:4;:18;;;19783:187;;;19822:40;19854:7;19822:31;:40::i;:::-;19783:187;;;19892:2;19884:10;;:4;:10;;;19880:90;;19911:47;19944:4;19950:7;19911:32;:47::i;:::-;19880:90;19783:187;19998:1;19984:16;;:2;:16;;;19980:183;;;20017:45;20054:7;20017:36;:45::i;:::-;19980:183;;;20090:4;20084:10;;:2;:10;;;20080:83;;20111:40;20139:2;20143:7;20111:27;:40::i;:::-;20080:83;19980:183;19581:589;;;:::o;15721:321::-;15851:18;15857:2;15861:7;15851:5;:18::i;:::-;15902:54;15933:1;15937:2;15941:7;15950:5;15902:22;:54::i;:::-;15880:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;15721:321;;;:::o;17486:803::-;17641:4;17662:15;:2;:13;;;:15::i;:::-;17658:624;;;17714:2;17698:36;;;17735:12;:10;:12::i;:::-;17749:4;17755:7;17764:5;17698:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17694:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17961:1;17944:6;:13;:18;17940:272;;;17987:60;;;;;;;;;;:::i;:::-;;;;;;;;17940:272;18162:6;18156:13;18147:6;18143:2;18139:15;18132:38;17694:533;17831:45;;;17821:55;;;:6;:55;;;;17814:62;;;;;17658:624;18266:4;18259:11;;17486:803;;;;;;;:::o;18295:126::-;;;;:::o;20403:164::-;20507:10;:17;;;;20480:15;:24;20496:7;20480:24;;;;;;;;;;;:44;;;;20535:10;20551:7;20535:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20403:164;:::o;20573:440::-;20667:22;20717:1;20692:22;20709:4;20692:16;:22::i;:::-;:26;;;;:::i;:::-;20667:51;;20729:18;20750:17;:26;20768:7;20750:26;;;;;;;;;;;;20729:47;;20807:14;20793:10;:28;20789:119;;20838:19;20860:12;:18;20873:4;20860:18;;;;;;;;;;;;;;;:34;20879:14;20860:34;;;;;;;;;;;;20838:56;;20823:85;20789:119;20927:17;:26;20945:7;20927:26;;;;;;;;;;;20920:33;;;20971:12;:18;20984:4;20971:18;;;;;;;;;;;;;;;:34;20990:14;20971:34;;;;;;;;;;;20964:41;;;20654:359;;20573:440;;:::o;21019:328::-;21103:22;21148:1;21128:10;:17;;;;:21;;;;:::i;:::-;21103:46;;21160:18;21181:15;:24;21197:7;21181:24;;;;;;;;;;;;21160:45;;21218:19;21240:10;21251:14;21240:26;;;;;;;;:::i;:::-;;;;;;;;;;21218:48;;21288:15;:24;21304:7;21288:24;;;;;;;;;;;21281:31;;;21323:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21090:257;;;21019:328;:::o;20176:221::-;20261:14;20278:20;20295:2;20278:16;:20::i;:::-;20261:37;;20336:7;20309:12;:16;20322:2;20309:16;;;;;;;;;;;;;;;:24;20326:6;20309:24;;;;;;;;;;;:34;;;;20383:6;20354:17;:26;20372:7;20354:26;;;;;;;;;;;:35;;;;20250:147;20176:221;;:::o;16048:382::-;16142:1;16128:16;;:2;:16;;;;16120:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:16;16209:7;16201;:16::i;:::-;16200:17;16192:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16263:45;16292:1;16296:2;16300:7;16263:20;:45::i;:::-;16338:1;16321:9;:13;16331:2;16321:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;16369:2;16350:7;:16;16358:7;16350:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16414:7;16410:2;16389:33;;16406:1;16389:33;;;;;;;;;;;;16048:382;;:::o;3967:198::-;4027:4;4046:12;4113:7;4101:20;4093:28;;4156:1;4149:4;:8;4142:15;;;3967:198;;;:::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:366::-;10083:3;10104:67;10168:2;10163:3;10104:67;:::i;:::-;10097:74;;10180:93;10269:3;10180:93;:::i;:::-;10298:2;10293:3;10289:12;10282:19;;9941:366;;;:::o;10313:::-;10455:3;10476:67;10540:2;10535:3;10476:67;:::i;:::-;10469:74;;10552:93;10641:3;10552:93;:::i;:::-;10670:2;10665:3;10661:12;10654:19;;10313:366;;;:::o;10685:::-;10827:3;10848:67;10912:2;10907:3;10848:67;:::i;:::-;10841:74;;10924:93;11013:3;10924:93;:::i;:::-;11042:2;11037:3;11033:12;11026:19;;10685:366;;;:::o;11057:::-;11199:3;11220:67;11284:2;11279:3;11220:67;:::i;:::-;11213:74;;11296:93;11385:3;11296:93;:::i;:::-;11414:2;11409:3;11405:12;11398:19;;11057:366;;;:::o;11429:::-;11571:3;11592:67;11656:2;11651:3;11592:67;:::i;:::-;11585:74;;11668:93;11757:3;11668:93;:::i;:::-;11786:2;11781:3;11777:12;11770:19;;11429:366;;;:::o;11801:::-;11943:3;11964:67;12028:2;12023:3;11964:67;:::i;:::-;11957:74;;12040:93;12129:3;12040:93;:::i;:::-;12158:2;12153:3;12149:12;12142:19;;11801:366;;;:::o;12173:404::-;12333:3;12354:86;12436:3;12431;12354:86;:::i;:::-;12347:93;;12449;12538:3;12449:93;:::i;:::-;12567:3;12562;12558:13;12551:20;;12173:404;;;:::o;12583:366::-;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:::-;15329:3;15350:67;15414:2;15409:3;15350:67;:::i;:::-;15343:74;;15426:93;15515:3;15426:93;:::i;:::-;15544:2;15539:3;15535:12;15528:19;;15187:366;;;:::o;15559:::-;15701:3;15722:67;15786:2;15781:3;15722:67;:::i;:::-;15715:74;;15798:93;15887:3;15798:93;:::i;:::-;15916:2;15911:3;15907:12;15900:19;;15559:366;;;:::o;15931:365::-;16073:3;16094:66;16158:1;16153:3;16094:66;:::i;:::-;16087:73;;16169:93;16258:3;16169:93;:::i;:::-;16287:2;16282:3;16278:12;16271:19;;15931:365;;;:::o;16302:366::-;16444:3;16465:67;16529:2;16524:3;16465:67;:::i;:::-;16458:74;;16541:93;16630:3;16541:93;:::i;:::-;16659:2;16654:3;16650:12;16643:19;;16302:366;;;:::o;16674:::-;16816:3;16837:67;16901:2;16896:3;16837:67;:::i;:::-;16830:74;;16913:93;17002:3;16913:93;:::i;:::-;17031:2;17026:3;17022:12;17015:19;;16674:366;;;:::o;17046:400::-;17206:3;17227:84;17309:1;17304:3;17227:84;:::i;:::-;17220:91;;17320:93;17409:3;17320:93;:::i;:::-;17438:1;17433:3;17429:11;17422:18;;17046:400;;;:::o;17452:366::-;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:::-;18338:3;18359:67;18423:2;18418:3;18359:67;:::i;:::-;18352:74;;18435:93;18524:3;18435:93;:::i;:::-;18553:2;18548:3;18544:12;18537:19;;18196:366;;;:::o;18568:::-;18710:3;18731:67;18795:2;18790:3;18731:67;:::i;:::-;18724:74;;18807:93;18896:3;18807:93;:::i;:::-;18925:2;18920:3;18916:12;18909:19;;18568:366;;;:::o;18940:::-;19082:3;19103:67;19167:2;19162:3;19103:67;:::i;:::-;19096:74;;19179:93;19268:3;19179:93;:::i;:::-;19297:2;19292:3;19288:12;19281:19;;18940:366;;;:::o;19312:402::-;19472:3;19493:85;19575:2;19570:3;19493:85;:::i;:::-;19486:92;;19587:93;19676:3;19587:93;:::i;:::-;19705:2;19700:3;19696:12;19689:19;;19312:402;;;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:::-;20234:3;20255:67;20319:2;20314:3;20255:67;:::i;:::-;20248:74;;20331:93;20420:3;20331:93;:::i;:::-;20449:2;20444:3;20440:12;20433:19;;20092:366;;;:::o;20464:402::-;20624:3;20645:85;20727:2;20722:3;20645:85;:::i;:::-;20638:92;;20739:93;20828:3;20739:93;:::i;:::-;20857:2;20852:3;20848:12;20841:19;;20464:402;;;:::o;20872:108::-;20949:24;20967:5;20949:24;:::i;:::-;20944:3;20937:37;20872:108;;:::o;20986:118::-;21073:24;21091:5;21073:24;:::i;:::-;21068:3;21061:37;20986:118;;:::o;21110:701::-;21391:3;21413:95;21504:3;21495:6;21413:95;:::i;:::-;21406:102;;21525:95;21616:3;21607:6;21525:95;:::i;:::-;21518:102;;21637:148;21781:3;21637:148;:::i;:::-;21630:155;;21802:3;21795:10;;21110:701;;;;;:::o;21817:381::-;22002:3;22024:148;22168:3;22024:148;:::i;:::-;22017:155;;22189:3;22182:10;;21817:381;;;:::o;22204:541::-;22437:3;22459:148;22603:3;22459:148;:::i;:::-;22452:155;;22624:95;22715:3;22706:6;22624:95;:::i;:::-;22617:102;;22736:3;22729:10;;22204:541;;;;:::o;22751:381::-;22936:3;22958:148;23102:3;22958:148;:::i;:::-;22951:155;;23123:3;23116:10;;22751:381;;;:::o;23138:222::-;23231:4;23269:2;23258:9;23254:18;23246:26;;23282:71;23350:1;23339:9;23335:17;23326:6;23282:71;:::i;:::-;23138:222;;;;:::o;23366:640::-;23561:4;23599:3;23588:9;23584:19;23576:27;;23613:71;23681:1;23670:9;23666:17;23657:6;23613:71;:::i;:::-;23694:72;23762:2;23751:9;23747:18;23738:6;23694:72;:::i;:::-;23776;23844:2;23833:9;23829:18;23820:6;23776:72;:::i;:::-;23895:9;23889:4;23885:20;23880:2;23869:9;23865:18;23858:48;23923:76;23994:4;23985:6;23923:76;:::i;:::-;23915:84;;23366:640;;;;;;;:::o;24012:373::-;24155:4;24193:2;24182:9;24178:18;24170:26;;24242:9;24236:4;24232:20;24228:1;24217:9;24213:17;24206:47;24270:108;24373:4;24364:6;24270:108;:::i;:::-;24262:116;;24012:373;;;;:::o;24391:210::-;24478:4;24516:2;24505:9;24501:18;24493:26;;24529:65;24591:1;24580:9;24576:17;24567:6;24529:65;:::i;:::-;24391:210;;;;:::o;24607:313::-;24720:4;24758:2;24747:9;24743:18;24735:26;;24807:9;24801:4;24797:20;24793:1;24782:9;24778:17;24771:47;24835:78;24908:4;24899:6;24835:78;:::i;:::-;24827:86;;24607:313;;;;:::o;24926:419::-;25092:4;25130:2;25119:9;25115:18;25107:26;;25179:9;25173:4;25169:20;25165:1;25154:9;25150:17;25143:47;25207:131;25333:4;25207:131;:::i;:::-;25199:139;;24926:419;;;:::o;25351:::-;25517:4;25555:2;25544:9;25540:18;25532:26;;25604:9;25598:4;25594:20;25590:1;25579:9;25575:17;25568:47;25632:131;25758:4;25632:131;:::i;:::-;25624:139;;25351:419;;;:::o;25776:::-;25942:4;25980:2;25969:9;25965:18;25957:26;;26029:9;26023:4;26019:20;26015:1;26004:9;26000:17;25993:47;26057:131;26183:4;26057:131;:::i;:::-;26049:139;;25776:419;;;:::o;26201:::-;26367:4;26405:2;26394:9;26390:18;26382:26;;26454:9;26448:4;26444:20;26440:1;26429:9;26425:17;26418:47;26482:131;26608:4;26482:131;:::i;:::-;26474:139;;26201:419;;;:::o;26626:::-;26792:4;26830:2;26819:9;26815:18;26807:26;;26879:9;26873:4;26869:20;26865:1;26854:9;26850:17;26843:47;26907:131;27033:4;26907:131;:::i;:::-;26899:139;;26626:419;;;:::o;27051:::-;27217:4;27255:2;27244:9;27240:18;27232:26;;27304:9;27298:4;27294:20;27290:1;27279:9;27275:17;27268:47;27332:131;27458:4;27332:131;:::i;:::-;27324:139;;27051:419;;;:::o;27476:::-;27642:4;27680:2;27669:9;27665:18;27657:26;;27729:9;27723:4;27719:20;27715:1;27704:9;27700:17;27693:47;27757:131;27883:4;27757:131;:::i;:::-;27749:139;;27476:419;;;:::o;27901:::-;28067:4;28105:2;28094:9;28090:18;28082:26;;28154:9;28148:4;28144:20;28140:1;28129:9;28125:17;28118:47;28182:131;28308:4;28182:131;:::i;:::-;28174:139;;27901:419;;;:::o;28326:::-;28492:4;28530:2;28519:9;28515:18;28507:26;;28579:9;28573:4;28569:20;28565:1;28554:9;28550:17;28543:47;28607:131;28733:4;28607:131;:::i;:::-;28599:139;;28326:419;;;:::o;28751:::-;28917:4;28955:2;28944:9;28940:18;28932:26;;29004:9;28998:4;28994:20;28990:1;28979:9;28975:17;28968:47;29032:131;29158:4;29032:131;:::i;:::-;29024:139;;28751:419;;;:::o;29176:::-;29342:4;29380:2;29369:9;29365:18;29357:26;;29429:9;29423:4;29419:20;29415:1;29404:9;29400:17;29393:47;29457:131;29583:4;29457:131;:::i;:::-;29449:139;;29176:419;;;:::o;29601:::-;29767:4;29805:2;29794:9;29790:18;29782:26;;29854:9;29848:4;29844:20;29840:1;29829:9;29825:17;29818:47;29882:131;30008:4;29882:131;:::i;:::-;29874:139;;29601:419;;;:::o;30026:::-;30192:4;30230:2;30219:9;30215:18;30207:26;;30279:9;30273:4;30269:20;30265:1;30254:9;30250:17;30243:47;30307:131;30433:4;30307:131;:::i;:::-;30299:139;;30026:419;;;:::o;30451:::-;30617:4;30655:2;30644:9;30640:18;30632:26;;30704:9;30698:4;30694:20;30690:1;30679:9;30675:17;30668:47;30732:131;30858:4;30732:131;:::i;:::-;30724:139;;30451:419;;;:::o;30876:::-;31042:4;31080:2;31069:9;31065:18;31057:26;;31129:9;31123:4;31119:20;31115:1;31104:9;31100:17;31093:47;31157:131;31283:4;31157:131;:::i;:::-;31149:139;;30876:419;;;:::o;31301:::-;31467:4;31505:2;31494:9;31490:18;31482:26;;31554:9;31548:4;31544:20;31540:1;31529:9;31525:17;31518:47;31582:131;31708:4;31582:131;:::i;:::-;31574:139;;31301:419;;;:::o;31726:::-;31892:4;31930:2;31919:9;31915:18;31907:26;;31979:9;31973:4;31969:20;31965:1;31954:9;31950:17;31943:47;32007:131;32133:4;32007:131;:::i;:::-;31999:139;;31726:419;;;:::o;32151:::-;32317:4;32355:2;32344:9;32340:18;32332:26;;32404:9;32398:4;32394:20;32390:1;32379:9;32375:17;32368:47;32432:131;32558:4;32432:131;:::i;:::-;32424:139;;32151:419;;;:::o;32576:::-;32742:4;32780:2;32769:9;32765:18;32757:26;;32829:9;32823:4;32819:20;32815:1;32804:9;32800:17;32793:47;32857:131;32983:4;32857:131;:::i;:::-;32849:139;;32576:419;;;:::o;33001:::-;33167:4;33205:2;33194:9;33190:18;33182:26;;33254:9;33248:4;33244:20;33240:1;33229:9;33225:17;33218:47;33282:131;33408:4;33282:131;:::i;:::-;33274:139;;33001:419;;;:::o;33426:::-;33592:4;33630:2;33619:9;33615:18;33607:26;;33679:9;33673:4;33669:20;33665:1;33654:9;33650:17;33643:47;33707:131;33833:4;33707:131;:::i;:::-;33699:139;;33426:419;;;:::o;33851:::-;34017:4;34055:2;34044:9;34040:18;34032:26;;34104:9;34098:4;34094:20;34090:1;34079:9;34075:17;34068:47;34132:131;34258:4;34132:131;:::i;:::-;34124:139;;33851:419;;;:::o;34276:::-;34442:4;34480:2;34469:9;34465:18;34457:26;;34529:9;34523:4;34519:20;34515:1;34504:9;34500:17;34493:47;34557:131;34683:4;34557:131;:::i;:::-;34549:139;;34276:419;;;:::o;34701:::-;34867:4;34905:2;34894:9;34890:18;34882:26;;34954:9;34948:4;34944:20;34940:1;34929:9;34925:17;34918:47;34982:131;35108:4;34982:131;:::i;:::-;34974:139;;34701:419;;;:::o;35126:::-;35292:4;35330:2;35319:9;35315:18;35307:26;;35379:9;35373:4;35369:20;35365:1;35354:9;35350:17;35343:47;35407:131;35533:4;35407:131;:::i;:::-;35399:139;;35126:419;;;:::o;35551:222::-;35644:4;35682:2;35671:9;35667:18;35659:26;;35695:71;35763:1;35752:9;35748:17;35739:6;35695:71;:::i;:::-;35551:222;;;;:::o;35779:129::-;35813:6;35840:20;;:::i;:::-;35830:30;;35869:33;35897:4;35889:6;35869:33;:::i;:::-;35779:129;;;:::o;35914:75::-;35947:6;35980:2;35974:9;35964:19;;35914:75;:::o;35995:307::-;36056:4;36146:18;36138:6;36135:30;36132:56;;;36168:18;;:::i;:::-;36132:56;36206:29;36228:6;36206:29;:::i;:::-;36198:37;;36290:4;36284;36280:15;36272:23;;35995:307;;;:::o;36308:308::-;36370:4;36460:18;36452:6;36449:30;36446:56;;;36482:18;;:::i;:::-;36446:56;36520:29;36542:6;36520:29;:::i;:::-;36512:37;;36604:4;36598;36594:15;36586:23;;36308:308;;;:::o;36622:132::-;36689:4;36712:3;36704:11;;36742:4;36737:3;36733:14;36725:22;;36622:132;;;:::o;36760:114::-;36827:6;36861:5;36855:12;36845:22;;36760:114;;;:::o;36880:98::-;36931:6;36965:5;36959:12;36949:22;;36880:98;;;:::o;36984:99::-;37036:6;37070:5;37064:12;37054:22;;36984:99;;;:::o;37089:113::-;37159:4;37191;37186:3;37182:14;37174:22;;37089:113;;;:::o;37208:184::-;37307:11;37341:6;37336:3;37329:19;37381:4;37376:3;37372:14;37357:29;;37208:184;;;;:::o;37398:168::-;37481:11;37515:6;37510:3;37503:19;37555:4;37550:3;37546:14;37531:29;;37398:168;;;;:::o;37572:169::-;37656:11;37690:6;37685:3;37678:19;37730:4;37725:3;37721:14;37706:29;;37572:169;;;;:::o;37747:148::-;37849:11;37886:3;37871:18;;37747:148;;;;:::o;37901:305::-;37941:3;37960:20;37978:1;37960:20;:::i;:::-;37955:25;;37994:20;38012:1;37994:20;:::i;:::-;37989:25;;38148:1;38080:66;38076:74;38073:1;38070:81;38067:107;;;38154:18;;:::i;:::-;38067:107;38198:1;38195;38191:9;38184:16;;37901:305;;;;:::o;38212:185::-;38252:1;38269:20;38287:1;38269:20;:::i;:::-;38264:25;;38303:20;38321:1;38303:20;:::i;:::-;38298:25;;38342:1;38332:35;;38347:18;;:::i;:::-;38332:35;38389:1;38386;38382:9;38377:14;;38212:185;;;;:::o;38403:348::-;38443:7;38466:20;38484:1;38466:20;:::i;:::-;38461:25;;38500:20;38518:1;38500:20;:::i;:::-;38495:25;;38688:1;38620:66;38616:74;38613:1;38610:81;38605:1;38598:9;38591:17;38587:105;38584:131;;;38695:18;;:::i;:::-;38584:131;38743:1;38740;38736:9;38725:20;;38403:348;;;;:::o;38757:191::-;38797:4;38817:20;38835:1;38817:20;:::i;:::-;38812:25;;38851:20;38869:1;38851:20;:::i;:::-;38846:25;;38890:1;38887;38884:8;38881:34;;;38895:18;;:::i;:::-;38881:34;38940:1;38937;38933:9;38925:17;;38757:191;;;;:::o;38954:96::-;38991:7;39020:24;39038:5;39020:24;:::i;:::-;39009:35;;38954:96;;;:::o;39056:90::-;39090:7;39133:5;39126:13;39119:21;39108:32;;39056:90;;;:::o;39152:149::-;39188:7;39228:66;39221:5;39217:78;39206:89;;39152:149;;;:::o;39307:126::-;39344:7;39384:42;39377:5;39373:54;39362:65;;39307:126;;;:::o;39439:77::-;39476:7;39505:5;39494:16;;39439:77;;;:::o;39522:86::-;39557:7;39597:4;39590:5;39586:16;39575:27;;39522:86;;;:::o;39614:154::-;39698:6;39693:3;39688;39675:30;39760:1;39751:6;39746:3;39742:16;39735:27;39614:154;;;:::o;39774:307::-;39842:1;39852:113;39866:6;39863:1;39860:13;39852:113;;;39951:1;39946:3;39942:11;39936:18;39932:1;39927:3;39923:11;39916:39;39888:2;39885:1;39881:10;39876:15;;39852:113;;;39983:6;39980:1;39977:13;39974:101;;;40063:1;40054:6;40049:3;40045:16;40038:27;39974:101;39823:258;39774:307;;;:::o;40087:320::-;40131:6;40168:1;40162:4;40158:12;40148:22;;40215:1;40209:4;40205:12;40236:18;40226:81;;40292:4;40284:6;40280:17;40270:27;;40226:81;40354:2;40346:6;40343:14;40323:18;40320:38;40317:84;;;40373:18;;:::i;:::-;40317:84;40138:269;40087:320;;;:::o;40413:281::-;40496:27;40518:4;40496:27;:::i;:::-;40488:6;40484:40;40626:6;40614:10;40611:22;40590:18;40578:10;40575:34;40572:62;40569:88;;;40637:18;;:::i;:::-;40569:88;40677:10;40673:2;40666:22;40456:238;40413:281;;:::o;40700:233::-;40739:3;40762:24;40780:5;40762:24;:::i;:::-;40753:33;;40808:66;40801:5;40798:77;40795:103;;;40878:18;;:::i;:::-;40795:103;40925:1;40918:5;40914:13;40907:20;;40700:233;;;:::o;40939:176::-;40971:1;40988:20;41006:1;40988:20;:::i;:::-;40983:25;;41022:20;41040:1;41022:20;:::i;:::-;41017:25;;41061:1;41051:35;;41066:18;;:::i;:::-;41051:35;41107:1;41104;41100:9;41095:14;;40939:176;;;;:::o;41121:180::-;41169:77;41166:1;41159:88;41266:4;41263:1;41256:15;41290:4;41287:1;41280:15;41307:180;41355:77;41352:1;41345:88;41452:4;41449:1;41442:15;41476:4;41473:1;41466:15;41493:180;41541:77;41538:1;41531:88;41638:4;41635:1;41628:15;41662:4;41659:1;41652:15;41679:180;41727:77;41724:1;41717:88;41824:4;41821:1;41814:15;41848:4;41845:1;41838:15;41865:180;41913:77;41910:1;41903:88;42010:4;42007:1;42000:15;42034:4;42031:1;42024:15;42051:180;42099:77;42096:1;42089:88;42196:4;42193:1;42186:15;42220:4;42217:1;42210:15;42237:117;42346:1;42343;42336:12;42360:117;42469:1;42466;42459:12;42483:117;42592:1;42589;42582:12;42606:117;42715:1;42712;42705:12;42729:102;42770:6;42821:2;42817:7;42812:2;42805:5;42801:14;42797:28;42787:38;;42729:102;;;:::o;42837:238::-;42977:34;42973:1;42965:6;42961:14;42954:58;43046:21;43041:2;43033:6;43029:15;43022:46;42837:238;:::o;43081:230::-;43221:34;43217:1;43209:6;43205:14;43198:58;43290:13;43285:2;43277:6;43273:15;43266:38;43081:230;:::o;43317:237::-;43457:34;43453:1;43445:6;43441:14;43434:58;43526:20;43521:2;43513:6;43509:15;43502:45;43317:237;:::o;43560:225::-;43700:34;43696:1;43688:6;43684:14;43677:58;43769:8;43764:2;43756:6;43752:15;43745:33;43560:225;:::o;43791:176::-;43931:28;43927:1;43919:6;43915:14;43908:52;43791:176;:::o;43973:178::-;44113:30;44109:1;44101:6;44097:14;44090:54;43973:178;:::o;44157:861::-;44297:66;44293:1;44285:6;44281:14;44274:90;44398:66;44393:2;44385:6;44381:15;44374:91;44499:34;44494:2;44486:6;44482:15;44475:59;44568:34;44563:2;44555:6;44551:15;44544:59;44638:66;44632:3;44624:6;44620:16;44613:92;44740:66;44734:3;44726:6;44722:16;44715:92;44842:66;44836:3;44828:6;44824:16;44817:92;44944:66;44938:3;44930:6;44926:16;44919:92;44157:861;:::o;45024:223::-;45164:34;45160:1;45152:6;45148:14;45141:58;45233:6;45228:2;45220:6;45216:15;45209:31;45024:223;:::o;45253:175::-;45393:27;45389:1;45381:6;45377:14;45370:51;45253:175;:::o;45434:243::-;45574:34;45570:1;45562:6;45558:14;45551:58;45643:26;45638:2;45630:6;45626:15;45619:51;45434:243;:::o;45683:231::-;45823:34;45819:1;45811:6;45807:14;45800:58;45892:14;45887:2;45879:6;45875:15;45868:39;45683:231;:::o;45920:243::-;46060:34;46056:1;46048:6;46044:14;46037:58;46129:26;46124:2;46116:6;46112:15;46105:51;45920:243;:::o;46169:229::-;46309:34;46305:1;46297:6;46293:14;46286:58;46378:12;46373:2;46365:6;46361:15;46354:37;46169:229;:::o;46404:228::-;46544:34;46540:1;46532:6;46528:14;46521:58;46613:11;46608:2;46600:6;46596:15;46589:36;46404:228;:::o;46638:179::-;46778:31;46774:1;46766:6;46762:14;46755:55;46638:179;:::o;46823:182::-;46963:34;46959:1;46951:6;46947:14;46940:58;46823:182;:::o;47011:158::-;47151:10;47147:1;47139:6;47135:14;47128:34;47011:158;:::o;47175:220::-;47315:34;47311:1;47303:6;47299:14;47292:58;47384:3;47379:2;47371:6;47367:15;47360:28;47175:220;:::o;47401:231::-;47541:34;47537:1;47529:6;47525:14;47518:58;47610:14;47605:2;47597:6;47593:15;47586:39;47401:231;:::o;47638:155::-;47778:7;47774:1;47766:6;47762:14;47755:31;47638:155;:::o;47799:182::-;47939:34;47935:1;47927:6;47923:14;47916:58;47799:182;:::o;47987:225::-;48127:34;48123:1;48115:6;48111:14;48104:58;48196:8;48191:2;48183:6;48179:15;48172:33;47987:225;:::o;48218:228::-;48358:34;48354:1;48346:6;48342:14;48335:58;48427:11;48422:2;48414:6;48410:15;48403:36;48218:228;:::o;48452:234::-;48592:34;48588:1;48580:6;48576:14;48569:58;48661:17;48656:2;48648:6;48644:15;48637:42;48452:234;:::o;48692:220::-;48832:34;48828:1;48820:6;48816:14;48809:58;48901:3;48896:2;48888:6;48884:15;48877:28;48692:220;:::o;48918:179::-;49058:31;49054:1;49046:6;49042:14;49035:55;48918:179;:::o;49103:236::-;49243:34;49239:1;49231:6;49227:14;49220:58;49312:19;49307:2;49299:6;49295:15;49288:44;49103:236;:::o;49345:231::-;49485:34;49481:1;49473:6;49469:14;49462:58;49554:14;49549:2;49541:6;49537:15;49530:39;49345:231;:::o;49582:316::-;49722:34;49718:1;49710:6;49706:14;49699:58;49795:34;49790:2;49782:6;49778:15;49771:59;49868:18;49863:2;49855:6;49851:15;49844:43;49582:316;:::o;49908:130::-;49985:24;50003:5;49985:24;:::i;:::-;49978:5;49975:35;49965:63;;50024:1;50021;50014:12;49965:63;49908:130;:::o;50048:124::-;50122:21;50137:5;50122:21;:::i;:::-;50115:5;50112:32;50102:60;;50158:1;50155;50148:12;50102:60;50048:124;:::o;50182:128::-;50258:23;50275:5;50258:23;:::i;:::-;50251:5;50248:34;50238:62;;50296:1;50293;50286:12;50238:62;50182:128;:::o;50320:130::-;50397:24;50415:5;50397:24;:::i;:::-;50390:5;50387:35;50377:63;;50436:1;50433;50426:12;50377:63;50320:130;:::o;50460:126::-;50535:22;50551:5;50535:22;:::i;:::-;50528:5;50525:33;50515:61;;50572:1;50569;50562:12;50515:61;50460:126;:::o
Swarm Source
ipfs://022dc5bba23462b76353d0debe4b479212ec0ccc693aab824ca1d7651fea0d33
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.