ERC-721
Overview
Max Total Supply
79 FAT
Holders
55
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 FATLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FAT12Contract
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-16 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; pragma solidity ^0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } pragma solidity ^0.8.0; interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } pragma solidity ^0.8.0; 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; } pragma solidity ^0.8.0; 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); } pragma solidity ^0.8.0; interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); function tokenByIndex(uint256 index) external view returns (uint256); } pragma solidity ^0.8.1; library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 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 ) internal 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); } } } } // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.0; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } 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); } } // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol 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); } } // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } pragma solidity ^0.8.0; abstract contract ReentrancyGuard { // word because each write operation emits an extra SLOAD to first read the // back. This is the compiler's defense against contract upgrades and // but in exchange the refund on every call to nonReentrant will be lower in // transaction's gas, it is best to keep them low in cases like this one, to uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } pragma solidity ^0.8.0; contract ERC721A is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable { using Address for address; using Strings for uint256; struct TokenOwnership { address addr; uint64 startTimestamp; } struct AddressData { uint128 balance; uint128 numberMinted; } uint256 private currentIndex = 0; uint256 internal immutable collectionSize; uint256 internal immutable maxBatchSize; string private _name; string private _symbol; // An empty struct value does not necessarily mean the token is unowned. See ownershipOf implementation for details. mapping(uint256 => TokenOwnership) private _ownerships; mapping(address => AddressData) private _addressData; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor( string memory name_, string memory symbol_, uint256 maxBatchSize_, uint256 collectionSize_ ) { require( collectionSize_ > 0, "ERC721A: collection must have a nonzero supply" ); require(maxBatchSize_ > 0, "ERC721A: max batch size must be nonzero"); _name = name_; _symbol = symbol_; maxBatchSize = maxBatchSize_; collectionSize = collectionSize_; } function totalSupply() public view override returns (uint256) { return currentIndex; } function tokenByIndex(uint256 index) public view override returns (uint256) { require(index < totalSupply(), "ERC721A: global index out of bounds"); return index; } function tokenOfOwnerByIndex(address owner, uint256 index) public view override returns (uint256) { require(index < balanceOf(owner), "ERC721A: owner index out of bounds"); uint256 numMintedSoFar = totalSupply(); uint256 tokenIdsIdx = 0; address currOwnershipAddr = address(0); for (uint256 i = 0; i < numMintedSoFar; i++) { TokenOwnership memory ownership = _ownerships[i]; if (ownership.addr != address(0)) { currOwnershipAddr = ownership.addr; } if (currOwnershipAddr == owner) { if (tokenIdsIdx == index) { return i; } tokenIdsIdx++; } } revert("ERC721A: unable to get token of owner by index"); } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view override returns (uint256) { require( owner != address(0), "ERC721A: balance query for the zero address" ); return uint256(_addressData[owner].balance); } function _numberMinted(address owner) internal view returns (uint256) { require( owner != address(0), "ERC721A: number minted query for the zero address" ); return uint256(_addressData[owner].numberMinted); } function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory) { require(_exists(tokenId), "ERC721A: owner query for nonexistent token"); uint256 lowestTokenToCheck; if (tokenId >= maxBatchSize) { lowestTokenToCheck = tokenId - maxBatchSize + 1; } for (uint256 curr = tokenId; curr >= lowestTokenToCheck; curr--) { TokenOwnership memory ownership = _ownerships[curr]; if (ownership.addr != address(0)) { return ownership; } } revert("ERC721A: unable to determine the owner of token"); } function ownerOf(uint256 tokenId) public view override returns (address) { return ownershipOf(tokenId).addr; } 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 baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public override { address owner = ERC721A.ownerOf(tokenId); require(to != owner, "ERC721A: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721A: approve caller is not owner nor approved for all" ); _approve(to, tokenId, owner); } function getApproved(uint256 tokenId) public view override returns (address) { require( _exists(tokenId), "ERC721A: approved query for nonexistent token" ); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public override { require(operator != _msgSender(), "ERC721A: 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 override { _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public override { _transfer(from, to, tokenId); require( _checkOnERC721Received(from, to, tokenId, _data), "ERC721A: transfer to non ERC721Receiver implementer" ); } function _exists(uint256 tokenId) internal view returns (bool) { return tokenId < currentIndex; } function _safeMint(address to, uint256 quantity) internal { _safeMint(to, quantity, ""); } function _safeMint( address to, uint256 quantity, bytes memory _data ) internal { uint256 startTokenId = currentIndex; require(to != address(0), "ERC721A: mint to the zero address"); require(!_exists(startTokenId), "ERC721A: token already minted"); require(quantity <= maxBatchSize, "ERC721A: quantity to mint too high"); _beforeTokenTransfers(address(0), to, startTokenId, quantity); AddressData memory addressData = _addressData[to]; _addressData[to] = AddressData( addressData.balance + uint128(quantity), addressData.numberMinted + uint128(quantity) ); _ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp)); uint256 updatedIndex = startTokenId; for (uint256 i = 0; i < quantity; i++) { emit Transfer(address(0), to, updatedIndex); require( _checkOnERC721Received(address(0), to, updatedIndex, _data), "ERC721A: transfer to non ERC721Receiver implementer" ); updatedIndex++; } currentIndex = updatedIndex; _afterTokenTransfers(address(0), to, startTokenId, quantity); } function _transfer( address from, address to, uint256 tokenId ) private { TokenOwnership memory prevOwnership = ownershipOf(tokenId); bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr || getApproved(tokenId) == _msgSender() || isApprovedForAll(prevOwnership.addr, _msgSender())); require( isApprovedOrOwner, "ERC721A: transfer caller is not owner nor approved" ); require( prevOwnership.addr == from, "ERC721A: transfer from incorrect owner" ); require(to != address(0), "ERC721A: transfer to the zero address"); _beforeTokenTransfers(from, to, tokenId, 1); _approve(address(0), tokenId, prevOwnership.addr); _addressData[from].balance -= 1; _addressData[to].balance += 1; _ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp)); // Set the slot of tokenId+1 explicitly in storage to maintain correctness for ownerOf(tokenId+1) calls. uint256 nextTokenId = tokenId + 1; if (_ownerships[nextTokenId].addr == address(0)) { if (_exists(nextTokenId)) { _ownerships[nextTokenId] = TokenOwnership( prevOwnership.addr, prevOwnership.startTimestamp ); } } emit Transfer(from, to, tokenId); _afterTokenTransfers(from, to, tokenId, 1); } function _approve( address to, uint256 tokenId, address owner ) private { _tokenApprovals[tokenId] = to; emit Approval(owner, to, tokenId); } uint256 public nextOwnerToExplicitlySet = 0; function _setOwnersExplicit(uint256 quantity) internal { uint256 oldNextOwnerToSet = nextOwnerToExplicitlySet; require(quantity > 0, "quantity must be nonzero"); uint256 endIndex = oldNextOwnerToSet + quantity - 1; if (endIndex > collectionSize - 1) { endIndex = collectionSize - 1; } require(_exists(endIndex), "not enough minted yet for this cleanup"); for (uint256 i = oldNextOwnerToSet; i <= endIndex; i++) { if (_ownerships[i].addr == address(0)) { TokenOwnership memory ownership = ownershipOf(i); _ownerships[i] = TokenOwnership( ownership.addr, ownership.startTimestamp ); } } nextOwnerToExplicitlySet = endIndex + 1; } 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( "ERC721A: transfer to non ERC721Receiver implementer" ); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} function _afterTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} } pragma solidity ^0.8.0; library MerkleProof { function verify( bytes32[] memory proof, bytes32 root, bytes32 leaf ) internal pure returns (bool) { return processProof(proof, leaf) == root; } function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { computedHash = _efficientHash(computedHash, proofElement); } else { computedHash = _efficientHash(proofElement, computedHash); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } } contract FAT12Contract is Ownable, ERC721A, ReentrancyGuard { bool public publicSale = false; bool public freeMintStatus = false; bool public revealed = false; uint256 public maxPerTx = 5; uint256 public maxPerAddress = 5; uint256 public maxToken = 10000; uint256 public freeMintLimit = 5000; uint256 public price = 0.03 ether; string private _baseTokenURI; string public notRevealedUri = "ipfs://QmcyCu9WRV3eG3FXhXUCuFBh6AZALchZuuEoNpAX99hJo9/"; string public _extension = ".json"; mapping (address => bool) public freeMinted; constructor() ERC721A("FAT12", "FAT", 1000, maxToken) {} modifier callerIsUser() { require(tx.origin == msg.sender, "The caller is another contract"); _; } function mint(uint256 quantity) external payable callerIsUser { require(publicSale, "SALE_HAS_NOT_STARTED_YET"); require(numberMinted(msg.sender) + quantity <= maxPerAddress, "PER_WALLET_LIMIT_REACHED"); require(quantity > 0, "INVALID_QUANTITY"); require(quantity <= maxPerTx, "CANNOT_MINT_THAT_MANY"); require(totalSupply() + quantity < maxToken, "NOT_ENOUGH_SUPPLY_TO_MINT_DESIRED_AMOUNT"); require(msg.value == price * quantity, "INVALID_ETH"); freeMinted[msg.sender] = true; _safeMint(msg.sender, quantity); } function free_mint() external payable callerIsUser { require(freeMintStatus, "FREE_MINT_HAVE_NOT_STARTED_YET"); require(totalSupply() + 1 < maxToken, "NOT_ENOUGH_SUPPLY_TO_MINT_DESIRED_AMOUNT"); require(totalSupply() + 1 < freeMintLimit, "FREE_LIMIT_REACHED"); require(!freeMinted[msg.sender], "YOU_HAVE_ALREADY_CLAIMED"); _safeMint(msg.sender, 1); freeMinted[msg.sender] = true; } function ownerMint(address _address, uint256 quantity) external onlyOwner { require(totalSupply() + quantity <= maxToken, "NOT_ENOUGH_SUPPLY_TO_GIVEAWAY_DESIRED_AMOUNT"); _safeMint(_address, quantity); } function _baseURI() internal view virtual override returns (string memory) { return _baseTokenURI; } function setPrice(uint256 _PriceInWEI) external onlyOwner { price = _PriceInWEI; } function setFreeLimit(uint256 _temp) external onlyOwner { freeMintLimit = _temp; } function setMaxLimits(uint256 t_max_per_tx, uint256 t_max_per_address) external onlyOwner { maxPerTx = t_max_per_tx; maxPerAddress = t_max_per_address; } function flipPublicSaleState() external onlyOwner { publicSale = !publicSale; } function flipFreeMintState() external onlyOwner { freeMintStatus = !freeMintStatus; } function setBaseURI(string calldata baseURI) external onlyOwner { _baseTokenURI = baseURI; } function setNotRevealedURI(string memory _notRevealedURI) external onlyOwner { notRevealedUri = _notRevealedURI; } function reveal() external onlyOwner { revealed = !revealed; } function withdraw() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } function updateExtension(string memory _temp) onlyOwner public { _extension = _temp; } function numberMinted(address owner) public view returns (uint256) { return _numberMinted(owner); } function getOwnershipData(uint256 tokenId) external view returns (TokenOwnership memory) { return ownershipOf(tokenId); } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); if (revealed == false) { return notRevealedUri; } string memory _tokenURI = super.tokenURI(tokenId); return bytes(_tokenURI).length > 0 ? string(abi.encodePacked(_tokenURI, _extension)) : ""; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"_extension","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":"flipFreeMintState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipPublicSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeMintLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeMintStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"freeMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"free_mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getOwnershipData","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"}],"internalType":"struct ERC721A.TokenOwnership","name":"","type":"tuple"}],"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":"maxPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextOwnerToExplicitlySet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ownerMint","outputs":[],"stateMutability":"nonpayable","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":"publicSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","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":"_temp","type":"uint256"}],"name":"setFreeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"t_max_per_tx","type":"uint256"},{"internalType":"uint256","name":"t_max_per_address","type":"uint256"}],"name":"setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_PriceInWEI","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"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":[],"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":[{"internalType":"string","name":"_temp","type":"string"}],"name":"updateExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052600060015560006008556000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055506005600b556005600c55612710600d55611388600e55666a94d74f430000600f5560405180606001604052806036815260200162005e3c6036913960119080519060200190620000b19291906200034c565b506040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060129080519060200190620000ff9291906200034c565b503480156200010d57600080fd5b506040518060400160405280600581526020017f46415431320000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f46415400000000000000000000000000000000000000000000000000000000008152506103e8600d54620001a0620001946200028060201b60201c565b6200028860201b60201c565b60008111620001e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001dd906200046c565b60405180910390fd5b600082116200022c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000223906200044a565b60405180910390fd5b8360029080519060200190620002449291906200034c565b5082600390805190602001906200025d9291906200034c565b508160a081815250508060808181525050505050506001600981905550620005a2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200035a906200049f565b90600052602060002090601f0160209004810192826200037e5760008555620003ca565b82601f106200039957805160ff1916838001178555620003ca565b82800160010185558215620003ca579182015b82811115620003c9578251825591602001919060010190620003ac565b5b509050620003d99190620003dd565b5090565b5b80821115620003f8576000816000905550600101620003de565b5090565b60006200040b6027836200048e565b9150620004188262000504565b604082019050919050565b600062000432602e836200048e565b91506200043f8262000553565b604082019050919050565b600060208201905081810360008301526200046581620003fc565b9050919050565b60006020820190508181036000830152620004878162000423565b9050919050565b600082825260208201905092915050565b60006002820490506001821680620004b857607f821691505b60208210811415620004cf57620004ce620004d5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f455243373231413a206d61782062617463682073697a65206d7573742062652060008201527f6e6f6e7a65726f00000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060008201527f6e6f6e7a65726f20737570706c79000000000000000000000000000000000000602082015250565b60805160a051615869620005d360003960008181612c6e01528181612c9701526132d60152600050506158696000f3fe60806040526004361061027d5760003560e01c80638da5cb5b1161014f578063b88d4fde116100c1578063e985e9c51161007a578063e985e9c514610946578063f2c4ce1e14610983578063f2fde38b146109ac578063f8604f11146109d5578063f968adbe146109fe578063fa6c6a5714610a295761027d565b8063b88d4fde14610836578063c87b56dd1461085f578063ca69e3231461089c578063d7224ba0146108c7578063db94b1ff146108f2578063dc33e681146109095761027d565b8063a035b1fe11610113578063a035b1fe1461078e578063a0712d68146107b9578063a10866ef146107d5578063a22cb465146107ec578063a475b5dd14610815578063a4c19a9f1461082c5761027d565b80638da5cb5b146106a957806391b7f5ed146106d45780639231ab2a146106fd57806395d89b411461073a5780639d913ef5146107655761027d565b80633ae1dd9d116101f357806355f804b3116101ac57806355f804b31461059b5780636352211e146105c4578063639814e01461060157806370a082311461062c578063715018a6146106695780637e6182d9146106805761027d565b80633ae1dd9d1461049f5780633ccfd60b146104ca57806342842e0e146104e1578063484b973c1461050a5780634f6ccce71461053357806351830227146105705761027d565b8063095ea7b311610245578063095ea7b31461037d57806318160ddd146103a657806323b872dd146103d15780632f745c59146103fa57806333bc1c5c14610437578063389fcf06146104625761027d565b806301ffc9a71461028257806306fdde03146102bf578063081812fc146102ea578063081c8c441461032757806308346d8514610352575b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a49190613dcf565b610a54565b6040516102b691906145d7565b60405180910390f35b3480156102cb57600080fd5b506102d4610b9e565b6040516102e191906145f2565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613ebf565b610c30565b60405161031e9190614570565b60405180910390f35b34801561033357600080fd5b5061033c610cb5565b60405161034991906145f2565b60405180910390f35b34801561035e57600080fd5b50610367610d43565b6040516103749190614a2f565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190613d8f565b610d49565b005b3480156103b257600080fd5b506103bb610e62565b6040516103c89190614a2f565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190613c79565b610e6c565b005b34801561040657600080fd5b50610421600480360381019061041c9190613d8f565b610e7c565b60405161042e9190614a2f565b60405180910390f35b34801561044357600080fd5b5061044c61107a565b60405161045991906145d7565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190613c0c565b61108d565b60405161049691906145d7565b60405180910390f35b3480156104ab57600080fd5b506104b46110ad565b6040516104c191906145f2565b60405180910390f35b3480156104d657600080fd5b506104df61113b565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613c79565b611200565b005b34801561051657600080fd5b50610531600480360381019061052c9190613d8f565b611220565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613ebf565b611301565b6040516105679190614a2f565b60405180910390f35b34801561057c57600080fd5b50610585611354565b60405161059291906145d7565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613e29565b611367565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613ebf565b6113f9565b6040516105f89190614570565b60405180910390f35b34801561060d57600080fd5b5061061661140f565b6040516106239190614a2f565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e9190613c0c565b611415565b6040516106609190614a2f565b60405180910390f35b34801561067557600080fd5b5061067e6114fe565b005b34801561068c57600080fd5b506106a760048036038101906106a29190613e76565b611586565b005b3480156106b557600080fd5b506106be61161c565b6040516106cb9190614570565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190613ebf565b611645565b005b34801561070957600080fd5b50610724600480360381019061071f9190613ebf565b6116cb565b6040516107319190614a14565b60405180910390f35b34801561074657600080fd5b5061074f6116e3565b60405161075c91906145f2565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190613eec565b611775565b005b34801561079a57600080fd5b506107a3611803565b6040516107b09190614a2f565b60405180910390f35b6107d360048036038101906107ce9190613ebf565b611809565b005b3480156107e157600080fd5b506107ea611ab0565b005b3480156107f857600080fd5b50610813600480360381019061080e9190613d4f565b611b58565b005b34801561082157600080fd5b5061082a611cd9565b005b610834611d81565b005b34801561084257600080fd5b5061085d60048036038101906108589190613ccc565b611fde565b005b34801561086b57600080fd5b5061088660048036038101906108819190613ebf565b61203a565b60405161089391906145f2565b60405180910390f35b3480156108a857600080fd5b506108b161218a565b6040516108be9190614a2f565b60405180910390f35b3480156108d357600080fd5b506108dc612190565b6040516108e99190614a2f565b60405180910390f35b3480156108fe57600080fd5b50610907612196565b005b34801561091557600080fd5b50610930600480360381019061092b9190613c0c565b61223e565b60405161093d9190614a2f565b60405180910390f35b34801561095257600080fd5b5061096d60048036038101906109689190613c39565b612250565b60405161097a91906145d7565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a59190613e76565b6122e4565b005b3480156109b857600080fd5b506109d360048036038101906109ce9190613c0c565b61237a565b005b3480156109e157600080fd5b506109fc60048036038101906109f79190613ebf565b612472565b005b348015610a0a57600080fd5b50610a136124f8565b604051610a209190614a2f565b60405180910390f35b348015610a3557600080fd5b50610a3e6124fe565b604051610a4b91906145d7565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b8757507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b975750610b9682612511565b5b9050919050565b606060028054610bad90614dc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd990614dc8565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b5050505050905090565b6000610c3b8261257b565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906149d4565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610cc290614dc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee90614dc8565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b600e5481565b6000610d54826113f9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906148b4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610de4612589565b73ffffffffffffffffffffffffffffffffffffffff161480610e135750610e1281610e0d612589565b612250565b5b610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990614774565b60405180910390fd5b610e5d838383612591565b505050565b6000600154905090565b610e77838383612643565b505050565b6000610e8783611415565b8210610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90614614565b60405180910390fd5b6000610ed2610e62565b905060008060005b83811015611038576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610fcc57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110245786841415611015578195505050505050611074565b838061102090614e2b565b9450505b50808061103090614e2b565b915050610eda565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90614994565b60405180910390fd5b92915050565b600a60009054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b601280546110ba90614dc8565b80601f01602080910402602001604051908101604052809291908181526020018280546110e690614dc8565b80156111335780601f1061110857610100808354040283529160200191611133565b820191906000526020600020905b81548152906001019060200180831161111657829003601f168201915b505050505081565b611143612589565b73ffffffffffffffffffffffffffffffffffffffff1661116161161c565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906147f4565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111fd573d6000803e3d6000fd5b50565b61121b83838360405180602001604052806000815250611fde565b505050565b611228612589565b73ffffffffffffffffffffffffffffffffffffffff1661124661161c565b73ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611293906147f4565b60405180910390fd5b600d54816112a8610e62565b6112b29190614b6f565b11156112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90614954565b60405180910390fd5b6112fd8282612bfc565b5050565b600061130b610e62565b821061134c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611343906146d4565b60405180910390fd5b819050919050565b600a60029054906101000a900460ff1681565b61136f612589565b73ffffffffffffffffffffffffffffffffffffffff1661138d61161c565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906147f4565b60405180910390fd5b8181601091906113f492919061390a565b505050565b600061140482612c1a565b600001519050919050565b600c5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d906147b4565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611506612589565b73ffffffffffffffffffffffffffffffffffffffff1661152461161c565b73ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611571906147f4565b60405180910390fd5b6115846000612e1d565b565b61158e612589565b73ffffffffffffffffffffffffffffffffffffffff166115ac61161c565b73ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f9906147f4565b60405180910390fd5b8060129080519060200190611618929190613990565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61164d612589565b73ffffffffffffffffffffffffffffffffffffffff1661166b61161c565b73ffffffffffffffffffffffffffffffffffffffff16146116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b8906147f4565b60405180910390fd5b80600f8190555050565b6116d3613a16565b6116dc82612c1a565b9050919050565b6060600380546116f290614dc8565b80601f016020809104026020016040519081016040528092919081815260200182805461171e90614dc8565b801561176b5780601f106117405761010080835404028352916020019161176b565b820191906000526020600020905b81548152906001019060200180831161174e57829003601f168201915b5050505050905090565b61177d612589565b73ffffffffffffffffffffffffffffffffffffffff1661179b61161c565b73ffffffffffffffffffffffffffffffffffffffff16146117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e8906147f4565b60405180910390fd5b81600b8190555080600c819055505050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90614734565b60405180910390fd5b600a60009054906101000a900460ff166118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd906148d4565b60405180910390fd5b600c54816118d33361223e565b6118dd9190614b6f565b111561191e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191590614754565b60405180910390fd5b60008111611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890614974565b60405180910390fd5b600b548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90614634565b60405180910390fd5b600d54816119b2610e62565b6119bc9190614b6f565b106119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390614894565b60405180910390fd5b80600f54611a0a9190614bf6565b3414611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290614694565b60405180910390fd5b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611aad3382612bfc565b50565b611ab8612589565b73ffffffffffffffffffffffffffffffffffffffff16611ad661161c565b73ffffffffffffffffffffffffffffffffffffffff1614611b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b23906147f4565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b611b60612589565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590614854565b60405180910390fd5b8060076000611bdb612589565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611c88612589565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ccd91906145d7565b60405180910390a35050565b611ce1612589565b73ffffffffffffffffffffffffffffffffffffffff16611cff61161c565b73ffffffffffffffffffffffffffffffffffffffff1614611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c906147f4565b60405180910390fd5b600a60029054906101000a900460ff1615600a60026101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690614734565b60405180910390fd5b600a60019054906101000a900460ff16611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590614814565b60405180910390fd5b600d546001611e4b610e62565b611e559190614b6f565b10611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90614894565b60405180910390fd5b600e546001611ea2610e62565b611eac9190614b6f565b10611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee390614794565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7090614654565b60405180910390fd5b611f84336001612bfc565b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b611fe9848484612643565b611ff584848484612ee1565b612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906148f4565b60405180910390fd5b50505050565b60606120458261257b565b612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b90614834565b60405180910390fd5b60001515600a60029054906101000a900460ff161515141561213257601180546120ad90614dc8565b80601f01602080910402602001604051908101604052809291908181526020018280546120d990614dc8565b80156121265780601f106120fb57610100808354040283529160200191612126565b820191906000526020600020905b81548152906001019060200180831161210957829003601f168201915b50505050509050612185565b600061213d83613078565b9050600081511161215d5760405180602001604052806000815250612181565b80601260405160200161217192919061454c565b6040516020818303038152906040525b9150505b919050565b600d5481565b60085481565b61219e612589565b73ffffffffffffffffffffffffffffffffffffffff166121bc61161c565b73ffffffffffffffffffffffffffffffffffffffff1614612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906147f4565b60405180910390fd5b600a60019054906101000a900460ff1615600a60016101000a81548160ff021916908315150217905550565b60006122498261311f565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6122ec612589565b73ffffffffffffffffffffffffffffffffffffffff1661230a61161c565b73ffffffffffffffffffffffffffffffffffffffff1614612360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612357906147f4565b60405180910390fd5b8060119080519060200190612376929190613990565b5050565b612382612589565b73ffffffffffffffffffffffffffffffffffffffff166123a061161c565b73ffffffffffffffffffffffffffffffffffffffff16146123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed906147f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d90614674565b60405180910390fd5b61246f81612e1d565b50565b61247a612589565b73ffffffffffffffffffffffffffffffffffffffff1661249861161c565b73ffffffffffffffffffffffffffffffffffffffff16146124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e5906147f4565b60405180910390fd5b80600e8190555050565b600b5481565b600a60019054906101000a900460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060015482109050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061264e82612c1a565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16612675612589565b73ffffffffffffffffffffffffffffffffffffffff1614806126d1575061269a612589565b73ffffffffffffffffffffffffffffffffffffffff166126b984610c30565b73ffffffffffffffffffffffffffffffffffffffff16145b806126ed57506126ec82600001516126e7612589565b612250565b5b90508061272f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272690614874565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146127a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612798906147d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612808906146f4565b60405180910390fd5b61281e8585856001613208565b61282e6000848460000151612591565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661289c9190614c50565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166129409190614b29565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612a469190614b6f565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612b8c57612abc8161257b565b15612b8b576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612bf4868686600161320e565b505050505050565b612c16828260405180602001604052806000815250613214565b5050565b612c22613a16565b612c2b8261257b565b612c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c61906146b4565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000008310612cce5760017f000000000000000000000000000000000000000000000000000000000000000084612cc19190614c84565b612ccb9190614b6f565b90505b60008390505b818110612ddc576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612dc857809350505050612e18565b508080612dd490614d9e565b915050612cd4565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0f906149b4565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612f028473ffffffffffffffffffffffffffffffffffffffff166136f4565b1561306b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612f2b612589565b8786866040518563ffffffff1660e01b8152600401612f4d949392919061458b565b602060405180830381600087803b158015612f6757600080fd5b505af1925050508015612f9857506040513d601f19601f82011682018060405250810190612f959190613dfc565b60015b61301b573d8060008114612fc8576040519150601f19603f3d011682016040523d82523d6000602084013e612fcd565b606091505b50600081511415613013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300a906148f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613070565b600190505b949350505050565b60606130838261257b565b6130c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b990614834565b60405180910390fd5b60006130cc613717565b905060008151116130ec5760405180602001604052806000815250613117565b806130f6846137a9565b604051602001613107929190614528565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318790614714565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b50505050565b50505050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328290614934565b60405180910390fd5b6132948161257b565b156132d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cb90614914565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000831115613337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332e906149f4565b60405180910390fd5b6133446000858386613208565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516134419190614b29565b6fffffffffffffffffffffffffffffffff1681526020018583602001516134689190614b29565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156136d757818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46136776000888488612ee1565b6136b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136ad906148f4565b60405180910390fd5b81806136c190614e2b565b92505080806136cf90614e2b565b915050613606565b50806001819055506136ec600087858861320e565b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606010805461372690614dc8565b80601f016020809104026020016040519081016040528092919081815260200182805461375290614dc8565b801561379f5780601f106137745761010080835404028352916020019161379f565b820191906000526020600020905b81548152906001019060200180831161378257829003601f168201915b5050505050905090565b606060008214156137f1576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613905565b600082905060005b6000821461382357808061380c90614e2b565b915050600a8261381c9190614bc5565b91506137f9565b60008167ffffffffffffffff81111561383f5761383e614f61565b5b6040519080825280601f01601f1916602001820160405280156138715781602001600182028036833780820191505090505b5090505b600085146138fe5760018261388a9190614c84565b9150600a856138999190614e74565b60306138a59190614b6f565b60f81b8183815181106138bb576138ba614f32565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856138f79190614bc5565b9450613875565b8093505050505b919050565b82805461391690614dc8565b90600052602060002090601f016020900481019282613938576000855561397f565b82601f1061395157803560ff191683800117855561397f565b8280016001018555821561397f579182015b8281111561397e578235825591602001919060010190613963565b5b50905061398c9190613a50565b5090565b82805461399c90614dc8565b90600052602060002090601f0160209004810192826139be5760008555613a05565b82601f106139d757805160ff1916838001178555613a05565b82800160010185558215613a05579182015b82811115613a045782518255916020019190600101906139e9565b5b509050613a129190613a50565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b80821115613a69576000816000905550600101613a51565b5090565b6000613a80613a7b84614a6f565b614a4a565b905082815260208101848484011115613a9c57613a9b614f9f565b5b613aa7848285614d5c565b509392505050565b6000613ac2613abd84614aa0565b614a4a565b905082815260208101848484011115613ade57613add614f9f565b5b613ae9848285614d5c565b509392505050565b600081359050613b00816157d7565b92915050565b600081359050613b15816157ee565b92915050565b600081359050613b2a81615805565b92915050565b600081519050613b3f81615805565b92915050565b600082601f830112613b5a57613b59614f95565b5b8135613b6a848260208601613a6d565b91505092915050565b60008083601f840112613b8957613b88614f95565b5b8235905067ffffffffffffffff811115613ba657613ba5614f90565b5b602083019150836001820283011115613bc257613bc1614f9a565b5b9250929050565b600082601f830112613bde57613bdd614f95565b5b8135613bee848260208601613aaf565b91505092915050565b600081359050613c068161581c565b92915050565b600060208284031215613c2257613c21614fa9565b5b6000613c3084828501613af1565b91505092915050565b60008060408385031215613c5057613c4f614fa9565b5b6000613c5e85828601613af1565b9250506020613c6f85828601613af1565b9150509250929050565b600080600060608486031215613c9257613c91614fa9565b5b6000613ca086828701613af1565b9350506020613cb186828701613af1565b9250506040613cc286828701613bf7565b9150509250925092565b60008060008060808587031215613ce657613ce5614fa9565b5b6000613cf487828801613af1565b9450506020613d0587828801613af1565b9350506040613d1687828801613bf7565b925050606085013567ffffffffffffffff811115613d3757613d36614fa4565b5b613d4387828801613b45565b91505092959194509250565b60008060408385031215613d6657613d65614fa9565b5b6000613d7485828601613af1565b9250506020613d8585828601613b06565b9150509250929050565b60008060408385031215613da657613da5614fa9565b5b6000613db485828601613af1565b9250506020613dc585828601613bf7565b9150509250929050565b600060208284031215613de557613de4614fa9565b5b6000613df384828501613b1b565b91505092915050565b600060208284031215613e1257613e11614fa9565b5b6000613e2084828501613b30565b91505092915050565b60008060208385031215613e4057613e3f614fa9565b5b600083013567ffffffffffffffff811115613e5e57613e5d614fa4565b5b613e6a85828601613b73565b92509250509250929050565b600060208284031215613e8c57613e8b614fa9565b5b600082013567ffffffffffffffff811115613eaa57613ea9614fa4565b5b613eb684828501613bc9565b91505092915050565b600060208284031215613ed557613ed4614fa9565b5b6000613ee384828501613bf7565b91505092915050565b60008060408385031215613f0357613f02614fa9565b5b6000613f1185828601613bf7565b9250506020613f2285828601613bf7565b9150509250929050565b613f3581614cb8565b82525050565b613f4481614cb8565b82525050565b613f5381614cca565b82525050565b6000613f6482614ae6565b613f6e8185614afc565b9350613f7e818560208601614d6b565b613f8781614fae565b840191505092915050565b6000613f9d82614af1565b613fa78185614b0d565b9350613fb7818560208601614d6b565b613fc081614fae565b840191505092915050565b6000613fd682614af1565b613fe08185614b1e565b9350613ff0818560208601614d6b565b80840191505092915050565b6000815461400981614dc8565b6140138186614b1e565b9450600182166000811461402e576001811461403f57614072565b60ff19831686528186019350614072565b61404885614ad1565b60005b8381101561406a5781548189015260018201915060208101905061404b565b838801955050505b50505092915050565b6000614088602283614b0d565b915061409382614fbf565b604082019050919050565b60006140ab601583614b0d565b91506140b68261500e565b602082019050919050565b60006140ce601883614b0d565b91506140d982615037565b602082019050919050565b60006140f1602683614b0d565b91506140fc82615060565b604082019050919050565b6000614114600b83614b0d565b915061411f826150af565b602082019050919050565b6000614137602a83614b0d565b9150614142826150d8565b604082019050919050565b600061415a602383614b0d565b915061416582615127565b604082019050919050565b600061417d602583614b0d565b915061418882615176565b604082019050919050565b60006141a0603183614b0d565b91506141ab826151c5565b604082019050919050565b60006141c3601e83614b0d565b91506141ce82615214565b602082019050919050565b60006141e6601883614b0d565b91506141f18261523d565b602082019050919050565b6000614209603983614b0d565b915061421482615266565b604082019050919050565b600061422c601283614b0d565b9150614237826152b5565b602082019050919050565b600061424f602b83614b0d565b915061425a826152de565b604082019050919050565b6000614272602683614b0d565b915061427d8261532d565b604082019050919050565b6000614295602083614b0d565b91506142a08261537c565b602082019050919050565b60006142b8601e83614b0d565b91506142c3826153a5565b602082019050919050565b60006142db602f83614b0d565b91506142e6826153ce565b604082019050919050565b60006142fe601a83614b0d565b91506143098261541d565b602082019050919050565b6000614321603283614b0d565b915061432c82615446565b604082019050919050565b6000614344602883614b0d565b915061434f82615495565b604082019050919050565b6000614367602283614b0d565b9150614372826154e4565b604082019050919050565b600061438a601883614b0d565b915061439582615533565b602082019050919050565b60006143ad603383614b0d565b91506143b88261555c565b604082019050919050565b60006143d0601d83614b0d565b91506143db826155ab565b602082019050919050565b60006143f3602183614b0d565b91506143fe826155d4565b604082019050919050565b6000614416602c83614b0d565b915061442182615623565b604082019050919050565b6000614439601083614b0d565b915061444482615672565b602082019050919050565b600061445c602e83614b0d565b91506144678261569b565b604082019050919050565b600061447f602f83614b0d565b915061448a826156ea565b604082019050919050565b60006144a2602d83614b0d565b91506144ad82615739565b604082019050919050565b60006144c5602283614b0d565b91506144d082615788565b604082019050919050565b6040820160008201516144f16000850182613f2c565b5060208201516145046020850182614519565b50505050565b61451381614d3e565b82525050565b61452281614d48565b82525050565b60006145348285613fcb565b91506145408284613fcb565b91508190509392505050565b60006145588285613fcb565b91506145648284613ffc565b91508190509392505050565b60006020820190506145856000830184613f3b565b92915050565b60006080820190506145a06000830187613f3b565b6145ad6020830186613f3b565b6145ba604083018561450a565b81810360608301526145cc8184613f59565b905095945050505050565b60006020820190506145ec6000830184613f4a565b92915050565b6000602082019050818103600083015261460c8184613f92565b905092915050565b6000602082019050818103600083015261462d8161407b565b9050919050565b6000602082019050818103600083015261464d8161409e565b9050919050565b6000602082019050818103600083015261466d816140c1565b9050919050565b6000602082019050818103600083015261468d816140e4565b9050919050565b600060208201905081810360008301526146ad81614107565b9050919050565b600060208201905081810360008301526146cd8161412a565b9050919050565b600060208201905081810360008301526146ed8161414d565b9050919050565b6000602082019050818103600083015261470d81614170565b9050919050565b6000602082019050818103600083015261472d81614193565b9050919050565b6000602082019050818103600083015261474d816141b6565b9050919050565b6000602082019050818103600083015261476d816141d9565b9050919050565b6000602082019050818103600083015261478d816141fc565b9050919050565b600060208201905081810360008301526147ad8161421f565b9050919050565b600060208201905081810360008301526147cd81614242565b9050919050565b600060208201905081810360008301526147ed81614265565b9050919050565b6000602082019050818103600083015261480d81614288565b9050919050565b6000602082019050818103600083015261482d816142ab565b9050919050565b6000602082019050818103600083015261484d816142ce565b9050919050565b6000602082019050818103600083015261486d816142f1565b9050919050565b6000602082019050818103600083015261488d81614314565b9050919050565b600060208201905081810360008301526148ad81614337565b9050919050565b600060208201905081810360008301526148cd8161435a565b9050919050565b600060208201905081810360008301526148ed8161437d565b9050919050565b6000602082019050818103600083015261490d816143a0565b9050919050565b6000602082019050818103600083015261492d816143c3565b9050919050565b6000602082019050818103600083015261494d816143e6565b9050919050565b6000602082019050818103600083015261496d81614409565b9050919050565b6000602082019050818103600083015261498d8161442c565b9050919050565b600060208201905081810360008301526149ad8161444f565b9050919050565b600060208201905081810360008301526149cd81614472565b9050919050565b600060208201905081810360008301526149ed81614495565b9050919050565b60006020820190508181036000830152614a0d816144b8565b9050919050565b6000604082019050614a2960008301846144db565b92915050565b6000602082019050614a44600083018461450a565b92915050565b6000614a54614a65565b9050614a608282614dfa565b919050565b6000604051905090565b600067ffffffffffffffff821115614a8a57614a89614f61565b5b614a9382614fae565b9050602081019050919050565b600067ffffffffffffffff821115614abb57614aba614f61565b5b614ac482614fae565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614b3482614d02565b9150614b3f83614d02565b9250826fffffffffffffffffffffffffffffffff03821115614b6457614b63614ea5565b5b828201905092915050565b6000614b7a82614d3e565b9150614b8583614d3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bba57614bb9614ea5565b5b828201905092915050565b6000614bd082614d3e565b9150614bdb83614d3e565b925082614beb57614bea614ed4565b5b828204905092915050565b6000614c0182614d3e565b9150614c0c83614d3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c4557614c44614ea5565b5b828202905092915050565b6000614c5b82614d02565b9150614c6683614d02565b925082821015614c7957614c78614ea5565b5b828203905092915050565b6000614c8f82614d3e565b9150614c9a83614d3e565b925082821015614cad57614cac614ea5565b5b828203905092915050565b6000614cc382614d1e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015614d89578082015181840152602081019050614d6e565b83811115614d98576000848401525b50505050565b6000614da982614d3e565b91506000821415614dbd57614dbc614ea5565b5b600182039050919050565b60006002820490506001821680614de057607f821691505b60208210811415614df457614df3614f03565b5b50919050565b614e0382614fae565b810181811067ffffffffffffffff82111715614e2257614e21614f61565b5b80604052505050565b6000614e3682614d3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614e6957614e68614ea5565b5b600182019050919050565b6000614e7f82614d3e565b9150614e8a83614d3e565b925082614e9a57614e99614ed4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f43414e4e4f545f4d494e545f544841545f4d414e590000000000000000000000600082015250565b7f594f555f484156455f414c52454144595f434c41494d45440000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f494e56414c49445f455448000000000000000000000000000000000000000000600082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5045525f57414c4c45545f4c494d49545f524541434845440000000000000000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f465245455f4c494d49545f524541434845440000000000000000000000000000600082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f465245455f4d494e545f484156455f4e4f545f535441525445445f5945540000600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f4d494e545f44455349524560008201527f445f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f53414c455f4841535f4e4f545f535441525445445f5945540000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f47495645415741595f444560008201527f53495245445f414d4f554e540000000000000000000000000000000000000000602082015250565b7f494e56414c49445f5155414e5449545900000000000000000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b6157e081614cb8565b81146157eb57600080fd5b50565b6157f781614cca565b811461580257600080fd5b50565b61580e81614cd6565b811461581957600080fd5b50565b61582581614d3e565b811461583057600080fd5b5056fea26469706673582212204f245c1c41c531c69c0fbd3622ed1a43c69dee888fa0fbba736f834b1abdd8e064736f6c63430008070033697066733a2f2f516d6379437539575256336547334658685855437546426836415a414c63685a7575456f4e7041583939684a6f392f
Deployed Bytecode
0x60806040526004361061027d5760003560e01c80638da5cb5b1161014f578063b88d4fde116100c1578063e985e9c51161007a578063e985e9c514610946578063f2c4ce1e14610983578063f2fde38b146109ac578063f8604f11146109d5578063f968adbe146109fe578063fa6c6a5714610a295761027d565b8063b88d4fde14610836578063c87b56dd1461085f578063ca69e3231461089c578063d7224ba0146108c7578063db94b1ff146108f2578063dc33e681146109095761027d565b8063a035b1fe11610113578063a035b1fe1461078e578063a0712d68146107b9578063a10866ef146107d5578063a22cb465146107ec578063a475b5dd14610815578063a4c19a9f1461082c5761027d565b80638da5cb5b146106a957806391b7f5ed146106d45780639231ab2a146106fd57806395d89b411461073a5780639d913ef5146107655761027d565b80633ae1dd9d116101f357806355f804b3116101ac57806355f804b31461059b5780636352211e146105c4578063639814e01461060157806370a082311461062c578063715018a6146106695780637e6182d9146106805761027d565b80633ae1dd9d1461049f5780633ccfd60b146104ca57806342842e0e146104e1578063484b973c1461050a5780634f6ccce71461053357806351830227146105705761027d565b8063095ea7b311610245578063095ea7b31461037d57806318160ddd146103a657806323b872dd146103d15780632f745c59146103fa57806333bc1c5c14610437578063389fcf06146104625761027d565b806301ffc9a71461028257806306fdde03146102bf578063081812fc146102ea578063081c8c441461032757806308346d8514610352575b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a49190613dcf565b610a54565b6040516102b691906145d7565b60405180910390f35b3480156102cb57600080fd5b506102d4610b9e565b6040516102e191906145f2565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613ebf565b610c30565b60405161031e9190614570565b60405180910390f35b34801561033357600080fd5b5061033c610cb5565b60405161034991906145f2565b60405180910390f35b34801561035e57600080fd5b50610367610d43565b6040516103749190614a2f565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190613d8f565b610d49565b005b3480156103b257600080fd5b506103bb610e62565b6040516103c89190614a2f565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190613c79565b610e6c565b005b34801561040657600080fd5b50610421600480360381019061041c9190613d8f565b610e7c565b60405161042e9190614a2f565b60405180910390f35b34801561044357600080fd5b5061044c61107a565b60405161045991906145d7565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190613c0c565b61108d565b60405161049691906145d7565b60405180910390f35b3480156104ab57600080fd5b506104b46110ad565b6040516104c191906145f2565b60405180910390f35b3480156104d657600080fd5b506104df61113b565b005b3480156104ed57600080fd5b5061050860048036038101906105039190613c79565b611200565b005b34801561051657600080fd5b50610531600480360381019061052c9190613d8f565b611220565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613ebf565b611301565b6040516105679190614a2f565b60405180910390f35b34801561057c57600080fd5b50610585611354565b60405161059291906145d7565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613e29565b611367565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613ebf565b6113f9565b6040516105f89190614570565b60405180910390f35b34801561060d57600080fd5b5061061661140f565b6040516106239190614a2f565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e9190613c0c565b611415565b6040516106609190614a2f565b60405180910390f35b34801561067557600080fd5b5061067e6114fe565b005b34801561068c57600080fd5b506106a760048036038101906106a29190613e76565b611586565b005b3480156106b557600080fd5b506106be61161c565b6040516106cb9190614570565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190613ebf565b611645565b005b34801561070957600080fd5b50610724600480360381019061071f9190613ebf565b6116cb565b6040516107319190614a14565b60405180910390f35b34801561074657600080fd5b5061074f6116e3565b60405161075c91906145f2565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190613eec565b611775565b005b34801561079a57600080fd5b506107a3611803565b6040516107b09190614a2f565b60405180910390f35b6107d360048036038101906107ce9190613ebf565b611809565b005b3480156107e157600080fd5b506107ea611ab0565b005b3480156107f857600080fd5b50610813600480360381019061080e9190613d4f565b611b58565b005b34801561082157600080fd5b5061082a611cd9565b005b610834611d81565b005b34801561084257600080fd5b5061085d60048036038101906108589190613ccc565b611fde565b005b34801561086b57600080fd5b5061088660048036038101906108819190613ebf565b61203a565b60405161089391906145f2565b60405180910390f35b3480156108a857600080fd5b506108b161218a565b6040516108be9190614a2f565b60405180910390f35b3480156108d357600080fd5b506108dc612190565b6040516108e99190614a2f565b60405180910390f35b3480156108fe57600080fd5b50610907612196565b005b34801561091557600080fd5b50610930600480360381019061092b9190613c0c565b61223e565b60405161093d9190614a2f565b60405180910390f35b34801561095257600080fd5b5061096d60048036038101906109689190613c39565b612250565b60405161097a91906145d7565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a59190613e76565b6122e4565b005b3480156109b857600080fd5b506109d360048036038101906109ce9190613c0c565b61237a565b005b3480156109e157600080fd5b506109fc60048036038101906109f79190613ebf565b612472565b005b348015610a0a57600080fd5b50610a136124f8565b604051610a209190614a2f565b60405180910390f35b348015610a3557600080fd5b50610a3e6124fe565b604051610a4b91906145d7565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b8757507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b975750610b9682612511565b5b9050919050565b606060028054610bad90614dc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd990614dc8565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b5050505050905090565b6000610c3b8261257b565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906149d4565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610cc290614dc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee90614dc8565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b600e5481565b6000610d54826113f9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906148b4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610de4612589565b73ffffffffffffffffffffffffffffffffffffffff161480610e135750610e1281610e0d612589565b612250565b5b610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990614774565b60405180910390fd5b610e5d838383612591565b505050565b6000600154905090565b610e77838383612643565b505050565b6000610e8783611415565b8210610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90614614565b60405180910390fd5b6000610ed2610e62565b905060008060005b83811015611038576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610fcc57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110245786841415611015578195505050505050611074565b838061102090614e2b565b9450505b50808061103090614e2b565b915050610eda565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b90614994565b60405180910390fd5b92915050565b600a60009054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b601280546110ba90614dc8565b80601f01602080910402602001604051908101604052809291908181526020018280546110e690614dc8565b80156111335780601f1061110857610100808354040283529160200191611133565b820191906000526020600020905b81548152906001019060200180831161111657829003601f168201915b505050505081565b611143612589565b73ffffffffffffffffffffffffffffffffffffffff1661116161161c565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906147f4565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111fd573d6000803e3d6000fd5b50565b61121b83838360405180602001604052806000815250611fde565b505050565b611228612589565b73ffffffffffffffffffffffffffffffffffffffff1661124661161c565b73ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611293906147f4565b60405180910390fd5b600d54816112a8610e62565b6112b29190614b6f565b11156112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90614954565b60405180910390fd5b6112fd8282612bfc565b5050565b600061130b610e62565b821061134c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611343906146d4565b60405180910390fd5b819050919050565b600a60029054906101000a900460ff1681565b61136f612589565b73ffffffffffffffffffffffffffffffffffffffff1661138d61161c565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906147f4565b60405180910390fd5b8181601091906113f492919061390a565b505050565b600061140482612c1a565b600001519050919050565b600c5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d906147b4565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611506612589565b73ffffffffffffffffffffffffffffffffffffffff1661152461161c565b73ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611571906147f4565b60405180910390fd5b6115846000612e1d565b565b61158e612589565b73ffffffffffffffffffffffffffffffffffffffff166115ac61161c565b73ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f9906147f4565b60405180910390fd5b8060129080519060200190611618929190613990565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61164d612589565b73ffffffffffffffffffffffffffffffffffffffff1661166b61161c565b73ffffffffffffffffffffffffffffffffffffffff16146116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b8906147f4565b60405180910390fd5b80600f8190555050565b6116d3613a16565b6116dc82612c1a565b9050919050565b6060600380546116f290614dc8565b80601f016020809104026020016040519081016040528092919081815260200182805461171e90614dc8565b801561176b5780601f106117405761010080835404028352916020019161176b565b820191906000526020600020905b81548152906001019060200180831161174e57829003601f168201915b5050505050905090565b61177d612589565b73ffffffffffffffffffffffffffffffffffffffff1661179b61161c565b73ffffffffffffffffffffffffffffffffffffffff16146117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e8906147f4565b60405180910390fd5b81600b8190555080600c819055505050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90614734565b60405180910390fd5b600a60009054906101000a900460ff166118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd906148d4565b60405180910390fd5b600c54816118d33361223e565b6118dd9190614b6f565b111561191e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191590614754565b60405180910390fd5b60008111611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890614974565b60405180910390fd5b600b548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90614634565b60405180910390fd5b600d54816119b2610e62565b6119bc9190614b6f565b106119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390614894565b60405180910390fd5b80600f54611a0a9190614bf6565b3414611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290614694565b60405180910390fd5b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611aad3382612bfc565b50565b611ab8612589565b73ffffffffffffffffffffffffffffffffffffffff16611ad661161c565b73ffffffffffffffffffffffffffffffffffffffff1614611b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b23906147f4565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b611b60612589565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590614854565b60405180910390fd5b8060076000611bdb612589565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611c88612589565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ccd91906145d7565b60405180910390a35050565b611ce1612589565b73ffffffffffffffffffffffffffffffffffffffff16611cff61161c565b73ffffffffffffffffffffffffffffffffffffffff1614611d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4c906147f4565b60405180910390fd5b600a60029054906101000a900460ff1615600a60026101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690614734565b60405180910390fd5b600a60019054906101000a900460ff16611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3590614814565b60405180910390fd5b600d546001611e4b610e62565b611e559190614b6f565b10611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90614894565b60405180910390fd5b600e546001611ea2610e62565b611eac9190614b6f565b10611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee390614794565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7090614654565b60405180910390fd5b611f84336001612bfc565b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b611fe9848484612643565b611ff584848484612ee1565b612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906148f4565b60405180910390fd5b50505050565b60606120458261257b565b612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207b90614834565b60405180910390fd5b60001515600a60029054906101000a900460ff161515141561213257601180546120ad90614dc8565b80601f01602080910402602001604051908101604052809291908181526020018280546120d990614dc8565b80156121265780601f106120fb57610100808354040283529160200191612126565b820191906000526020600020905b81548152906001019060200180831161210957829003601f168201915b50505050509050612185565b600061213d83613078565b9050600081511161215d5760405180602001604052806000815250612181565b80601260405160200161217192919061454c565b6040516020818303038152906040525b9150505b919050565b600d5481565b60085481565b61219e612589565b73ffffffffffffffffffffffffffffffffffffffff166121bc61161c565b73ffffffffffffffffffffffffffffffffffffffff1614612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906147f4565b60405180910390fd5b600a60019054906101000a900460ff1615600a60016101000a81548160ff021916908315150217905550565b60006122498261311f565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6122ec612589565b73ffffffffffffffffffffffffffffffffffffffff1661230a61161c565b73ffffffffffffffffffffffffffffffffffffffff1614612360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612357906147f4565b60405180910390fd5b8060119080519060200190612376929190613990565b5050565b612382612589565b73ffffffffffffffffffffffffffffffffffffffff166123a061161c565b73ffffffffffffffffffffffffffffffffffffffff16146123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed906147f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d90614674565b60405180910390fd5b61246f81612e1d565b50565b61247a612589565b73ffffffffffffffffffffffffffffffffffffffff1661249861161c565b73ffffffffffffffffffffffffffffffffffffffff16146124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e5906147f4565b60405180910390fd5b80600e8190555050565b600b5481565b600a60019054906101000a900460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060015482109050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061264e82612c1a565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16612675612589565b73ffffffffffffffffffffffffffffffffffffffff1614806126d1575061269a612589565b73ffffffffffffffffffffffffffffffffffffffff166126b984610c30565b73ffffffffffffffffffffffffffffffffffffffff16145b806126ed57506126ec82600001516126e7612589565b612250565b5b90508061272f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272690614874565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146127a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612798906147d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612808906146f4565b60405180910390fd5b61281e8585856001613208565b61282e6000848460000151612591565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661289c9190614c50565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166129409190614b29565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612a469190614b6f565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612b8c57612abc8161257b565b15612b8b576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612bf4868686600161320e565b505050505050565b612c16828260405180602001604052806000815250613214565b5050565b612c22613a16565b612c2b8261257b565b612c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c61906146b4565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000003e88310612cce5760017f00000000000000000000000000000000000000000000000000000000000003e884612cc19190614c84565b612ccb9190614b6f565b90505b60008390505b818110612ddc576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612dc857809350505050612e18565b508080612dd490614d9e565b915050612cd4565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0f906149b4565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612f028473ffffffffffffffffffffffffffffffffffffffff166136f4565b1561306b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612f2b612589565b8786866040518563ffffffff1660e01b8152600401612f4d949392919061458b565b602060405180830381600087803b158015612f6757600080fd5b505af1925050508015612f9857506040513d601f19601f82011682018060405250810190612f959190613dfc565b60015b61301b573d8060008114612fc8576040519150601f19603f3d011682016040523d82523d6000602084013e612fcd565b606091505b50600081511415613013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300a906148f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613070565b600190505b949350505050565b60606130838261257b565b6130c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b990614834565b60405180910390fd5b60006130cc613717565b905060008151116130ec5760405180602001604052806000815250613117565b806130f6846137a9565b604051602001613107929190614528565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318790614714565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b50505050565b50505050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328290614934565b60405180910390fd5b6132948161257b565b156132d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cb90614914565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000003e8831115613337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332e906149f4565b60405180910390fd5b6133446000858386613208565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516134419190614b29565b6fffffffffffffffffffffffffffffffff1681526020018583602001516134689190614b29565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156136d757818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46136776000888488612ee1565b6136b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136ad906148f4565b60405180910390fd5b81806136c190614e2b565b92505080806136cf90614e2b565b915050613606565b50806001819055506136ec600087858861320e565b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606010805461372690614dc8565b80601f016020809104026020016040519081016040528092919081815260200182805461375290614dc8565b801561379f5780601f106137745761010080835404028352916020019161379f565b820191906000526020600020905b81548152906001019060200180831161378257829003601f168201915b5050505050905090565b606060008214156137f1576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613905565b600082905060005b6000821461382357808061380c90614e2b565b915050600a8261381c9190614bc5565b91506137f9565b60008167ffffffffffffffff81111561383f5761383e614f61565b5b6040519080825280601f01601f1916602001820160405280156138715781602001600182028036833780820191505090505b5090505b600085146138fe5760018261388a9190614c84565b9150600a856138999190614e74565b60306138a59190614b6f565b60f81b8183815181106138bb576138ba614f32565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856138f79190614bc5565b9450613875565b8093505050505b919050565b82805461391690614dc8565b90600052602060002090601f016020900481019282613938576000855561397f565b82601f1061395157803560ff191683800117855561397f565b8280016001018555821561397f579182015b8281111561397e578235825591602001919060010190613963565b5b50905061398c9190613a50565b5090565b82805461399c90614dc8565b90600052602060002090601f0160209004810192826139be5760008555613a05565b82601f106139d757805160ff1916838001178555613a05565b82800160010185558215613a05579182015b82811115613a045782518255916020019190600101906139e9565b5b509050613a129190613a50565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b80821115613a69576000816000905550600101613a51565b5090565b6000613a80613a7b84614a6f565b614a4a565b905082815260208101848484011115613a9c57613a9b614f9f565b5b613aa7848285614d5c565b509392505050565b6000613ac2613abd84614aa0565b614a4a565b905082815260208101848484011115613ade57613add614f9f565b5b613ae9848285614d5c565b509392505050565b600081359050613b00816157d7565b92915050565b600081359050613b15816157ee565b92915050565b600081359050613b2a81615805565b92915050565b600081519050613b3f81615805565b92915050565b600082601f830112613b5a57613b59614f95565b5b8135613b6a848260208601613a6d565b91505092915050565b60008083601f840112613b8957613b88614f95565b5b8235905067ffffffffffffffff811115613ba657613ba5614f90565b5b602083019150836001820283011115613bc257613bc1614f9a565b5b9250929050565b600082601f830112613bde57613bdd614f95565b5b8135613bee848260208601613aaf565b91505092915050565b600081359050613c068161581c565b92915050565b600060208284031215613c2257613c21614fa9565b5b6000613c3084828501613af1565b91505092915050565b60008060408385031215613c5057613c4f614fa9565b5b6000613c5e85828601613af1565b9250506020613c6f85828601613af1565b9150509250929050565b600080600060608486031215613c9257613c91614fa9565b5b6000613ca086828701613af1565b9350506020613cb186828701613af1565b9250506040613cc286828701613bf7565b9150509250925092565b60008060008060808587031215613ce657613ce5614fa9565b5b6000613cf487828801613af1565b9450506020613d0587828801613af1565b9350506040613d1687828801613bf7565b925050606085013567ffffffffffffffff811115613d3757613d36614fa4565b5b613d4387828801613b45565b91505092959194509250565b60008060408385031215613d6657613d65614fa9565b5b6000613d7485828601613af1565b9250506020613d8585828601613b06565b9150509250929050565b60008060408385031215613da657613da5614fa9565b5b6000613db485828601613af1565b9250506020613dc585828601613bf7565b9150509250929050565b600060208284031215613de557613de4614fa9565b5b6000613df384828501613b1b565b91505092915050565b600060208284031215613e1257613e11614fa9565b5b6000613e2084828501613b30565b91505092915050565b60008060208385031215613e4057613e3f614fa9565b5b600083013567ffffffffffffffff811115613e5e57613e5d614fa4565b5b613e6a85828601613b73565b92509250509250929050565b600060208284031215613e8c57613e8b614fa9565b5b600082013567ffffffffffffffff811115613eaa57613ea9614fa4565b5b613eb684828501613bc9565b91505092915050565b600060208284031215613ed557613ed4614fa9565b5b6000613ee384828501613bf7565b91505092915050565b60008060408385031215613f0357613f02614fa9565b5b6000613f1185828601613bf7565b9250506020613f2285828601613bf7565b9150509250929050565b613f3581614cb8565b82525050565b613f4481614cb8565b82525050565b613f5381614cca565b82525050565b6000613f6482614ae6565b613f6e8185614afc565b9350613f7e818560208601614d6b565b613f8781614fae565b840191505092915050565b6000613f9d82614af1565b613fa78185614b0d565b9350613fb7818560208601614d6b565b613fc081614fae565b840191505092915050565b6000613fd682614af1565b613fe08185614b1e565b9350613ff0818560208601614d6b565b80840191505092915050565b6000815461400981614dc8565b6140138186614b1e565b9450600182166000811461402e576001811461403f57614072565b60ff19831686528186019350614072565b61404885614ad1565b60005b8381101561406a5781548189015260018201915060208101905061404b565b838801955050505b50505092915050565b6000614088602283614b0d565b915061409382614fbf565b604082019050919050565b60006140ab601583614b0d565b91506140b68261500e565b602082019050919050565b60006140ce601883614b0d565b91506140d982615037565b602082019050919050565b60006140f1602683614b0d565b91506140fc82615060565b604082019050919050565b6000614114600b83614b0d565b915061411f826150af565b602082019050919050565b6000614137602a83614b0d565b9150614142826150d8565b604082019050919050565b600061415a602383614b0d565b915061416582615127565b604082019050919050565b600061417d602583614b0d565b915061418882615176565b604082019050919050565b60006141a0603183614b0d565b91506141ab826151c5565b604082019050919050565b60006141c3601e83614b0d565b91506141ce82615214565b602082019050919050565b60006141e6601883614b0d565b91506141f18261523d565b602082019050919050565b6000614209603983614b0d565b915061421482615266565b604082019050919050565b600061422c601283614b0d565b9150614237826152b5565b602082019050919050565b600061424f602b83614b0d565b915061425a826152de565b604082019050919050565b6000614272602683614b0d565b915061427d8261532d565b604082019050919050565b6000614295602083614b0d565b91506142a08261537c565b602082019050919050565b60006142b8601e83614b0d565b91506142c3826153a5565b602082019050919050565b60006142db602f83614b0d565b91506142e6826153ce565b604082019050919050565b60006142fe601a83614b0d565b91506143098261541d565b602082019050919050565b6000614321603283614b0d565b915061432c82615446565b604082019050919050565b6000614344602883614b0d565b915061434f82615495565b604082019050919050565b6000614367602283614b0d565b9150614372826154e4565b604082019050919050565b600061438a601883614b0d565b915061439582615533565b602082019050919050565b60006143ad603383614b0d565b91506143b88261555c565b604082019050919050565b60006143d0601d83614b0d565b91506143db826155ab565b602082019050919050565b60006143f3602183614b0d565b91506143fe826155d4565b604082019050919050565b6000614416602c83614b0d565b915061442182615623565b604082019050919050565b6000614439601083614b0d565b915061444482615672565b602082019050919050565b600061445c602e83614b0d565b91506144678261569b565b604082019050919050565b600061447f602f83614b0d565b915061448a826156ea565b604082019050919050565b60006144a2602d83614b0d565b91506144ad82615739565b604082019050919050565b60006144c5602283614b0d565b91506144d082615788565b604082019050919050565b6040820160008201516144f16000850182613f2c565b5060208201516145046020850182614519565b50505050565b61451381614d3e565b82525050565b61452281614d48565b82525050565b60006145348285613fcb565b91506145408284613fcb565b91508190509392505050565b60006145588285613fcb565b91506145648284613ffc565b91508190509392505050565b60006020820190506145856000830184613f3b565b92915050565b60006080820190506145a06000830187613f3b565b6145ad6020830186613f3b565b6145ba604083018561450a565b81810360608301526145cc8184613f59565b905095945050505050565b60006020820190506145ec6000830184613f4a565b92915050565b6000602082019050818103600083015261460c8184613f92565b905092915050565b6000602082019050818103600083015261462d8161407b565b9050919050565b6000602082019050818103600083015261464d8161409e565b9050919050565b6000602082019050818103600083015261466d816140c1565b9050919050565b6000602082019050818103600083015261468d816140e4565b9050919050565b600060208201905081810360008301526146ad81614107565b9050919050565b600060208201905081810360008301526146cd8161412a565b9050919050565b600060208201905081810360008301526146ed8161414d565b9050919050565b6000602082019050818103600083015261470d81614170565b9050919050565b6000602082019050818103600083015261472d81614193565b9050919050565b6000602082019050818103600083015261474d816141b6565b9050919050565b6000602082019050818103600083015261476d816141d9565b9050919050565b6000602082019050818103600083015261478d816141fc565b9050919050565b600060208201905081810360008301526147ad8161421f565b9050919050565b600060208201905081810360008301526147cd81614242565b9050919050565b600060208201905081810360008301526147ed81614265565b9050919050565b6000602082019050818103600083015261480d81614288565b9050919050565b6000602082019050818103600083015261482d816142ab565b9050919050565b6000602082019050818103600083015261484d816142ce565b9050919050565b6000602082019050818103600083015261486d816142f1565b9050919050565b6000602082019050818103600083015261488d81614314565b9050919050565b600060208201905081810360008301526148ad81614337565b9050919050565b600060208201905081810360008301526148cd8161435a565b9050919050565b600060208201905081810360008301526148ed8161437d565b9050919050565b6000602082019050818103600083015261490d816143a0565b9050919050565b6000602082019050818103600083015261492d816143c3565b9050919050565b6000602082019050818103600083015261494d816143e6565b9050919050565b6000602082019050818103600083015261496d81614409565b9050919050565b6000602082019050818103600083015261498d8161442c565b9050919050565b600060208201905081810360008301526149ad8161444f565b9050919050565b600060208201905081810360008301526149cd81614472565b9050919050565b600060208201905081810360008301526149ed81614495565b9050919050565b60006020820190508181036000830152614a0d816144b8565b9050919050565b6000604082019050614a2960008301846144db565b92915050565b6000602082019050614a44600083018461450a565b92915050565b6000614a54614a65565b9050614a608282614dfa565b919050565b6000604051905090565b600067ffffffffffffffff821115614a8a57614a89614f61565b5b614a9382614fae565b9050602081019050919050565b600067ffffffffffffffff821115614abb57614aba614f61565b5b614ac482614fae565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614b3482614d02565b9150614b3f83614d02565b9250826fffffffffffffffffffffffffffffffff03821115614b6457614b63614ea5565b5b828201905092915050565b6000614b7a82614d3e565b9150614b8583614d3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614bba57614bb9614ea5565b5b828201905092915050565b6000614bd082614d3e565b9150614bdb83614d3e565b925082614beb57614bea614ed4565b5b828204905092915050565b6000614c0182614d3e565b9150614c0c83614d3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c4557614c44614ea5565b5b828202905092915050565b6000614c5b82614d02565b9150614c6683614d02565b925082821015614c7957614c78614ea5565b5b828203905092915050565b6000614c8f82614d3e565b9150614c9a83614d3e565b925082821015614cad57614cac614ea5565b5b828203905092915050565b6000614cc382614d1e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015614d89578082015181840152602081019050614d6e565b83811115614d98576000848401525b50505050565b6000614da982614d3e565b91506000821415614dbd57614dbc614ea5565b5b600182039050919050565b60006002820490506001821680614de057607f821691505b60208210811415614df457614df3614f03565b5b50919050565b614e0382614fae565b810181811067ffffffffffffffff82111715614e2257614e21614f61565b5b80604052505050565b6000614e3682614d3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614e6957614e68614ea5565b5b600182019050919050565b6000614e7f82614d3e565b9150614e8a83614d3e565b925082614e9a57614e99614ed4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f43414e4e4f545f4d494e545f544841545f4d414e590000000000000000000000600082015250565b7f594f555f484156455f414c52454144595f434c41494d45440000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f494e56414c49445f455448000000000000000000000000000000000000000000600082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5045525f57414c4c45545f4c494d49545f524541434845440000000000000000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f465245455f4c494d49545f524541434845440000000000000000000000000000600082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f465245455f4d494e545f484156455f4e4f545f535441525445445f5945540000600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f4d494e545f44455349524560008201527f445f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f53414c455f4841535f4e4f545f535441525445445f5945540000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f47495645415741595f444560008201527f53495245445f414d4f554e540000000000000000000000000000000000000000602082015250565b7f494e56414c49445f5155414e5449545900000000000000000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b6157e081614cb8565b81146157eb57600080fd5b50565b6157f781614cca565b811461580257600080fd5b50565b61580e81614cd6565b811461581957600080fd5b50565b61582581614d3e565b811461583057600080fd5b5056fea26469706673582212204f245c1c41c531c69c0fbd3622ed1a43c69dee888fa0fbba736f834b1abdd8e064736f6c63430008070033
Deployed Bytecode Sourcemap
24228:4224:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13136:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14922:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16131:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24642:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24523:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15712:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11926:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16966:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12266:864;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24297:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24779:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24736:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27370:109;;;;;;;;;;;;;:::i;:::-;;17134:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26082:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12032:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24375:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27036:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14792:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24446:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13564:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7120:94;;;;;;;;;;;;;:::i;:::-;;27485:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6901:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26438:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27712:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15028:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26642:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24565:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25032:592;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26830:93;;;;;;;;;;;;;:::i;:::-;;16429:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27286:76;;;;;;;;;;;;;:::i;:::-;;25632:442;;;:::i;:::-;;17317:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27887:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24485:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20938:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26929:99;;;;;;;;;;;;;:::i;:::-;;27591:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16746:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27150:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7220:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26540:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24412:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24334:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13136:422;13283:4;13340:25;13325:40;;;:11;:40;;;;:105;;;;13397:33;13382:48;;;:11;:48;;;;13325:105;:172;;;;13462:35;13447:50;;;:11;:50;;;;13325:172;:225;;;;13514:36;13538:11;13514:23;:36::i;:::-;13325:225;13305:245;;13136:422;;;:::o;14922:100::-;14976:13;15009:5;15002:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14922:100;:::o;16131:292::-;16235:7;16282:16;16290:7;16282;:16::i;:::-;16260:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;16391:15;:24;16407:7;16391:24;;;;;;;;;;;;;;;;;;;;;16384:31;;16131:292;;;:::o;24642:87::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24523:35::-;;;;:::o;15712:413::-;15785:13;15801:24;15817:7;15801:15;:24::i;:::-;15785:40;;15850:5;15844:11;;:2;:11;;;;15836:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15945:5;15929:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;15954:37;15971:5;15978:12;:10;:12::i;:::-;15954:16;:37::i;:::-;15929:62;15907:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;16089:28;16098:2;16102:7;16111:5;16089:8;:28::i;:::-;15774:351;15712:413;;:::o;11926:100::-;11979:7;12006:12;;11999:19;;11926:100;:::o;16966:162::-;17092:28;17102:4;17108:2;17112:7;17092:9;:28::i;:::-;16966:162;;;:::o;12266:864::-;12391:7;12432:16;12442:5;12432:9;:16::i;:::-;12424:5;:24;12416:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12498:22;12523:13;:11;:13::i;:::-;12498:38;;12547:19;12581:25;12635:9;12630:426;12654:14;12650:1;:18;12630:426;;;12690:31;12724:11;:14;12736:1;12724:14;;;;;;;;;;;12690:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12783:1;12757:28;;:9;:14;;;:28;;;12753:103;;12826:9;:14;;;12806:34;;12753:103;12895:5;12874:26;;:17;:26;;;12870:175;;;12940:5;12925:11;:20;12921:77;;;12977:1;12970:8;;;;;;;;;12921:77;13016:13;;;;;:::i;:::-;;;;12870:175;12675:381;12670:3;;;;;:::i;:::-;;;;12630:426;;;;13066:56;;;;;;;;;;:::i;:::-;;;;;;;;12266:864;;;;;:::o;24297:30::-;;;;;;;;;;;;;:::o;24779:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;24736:34::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27370:109::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27428:10:::1;27420:28;;:51;27449:21;27420:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27370:109::o:0;17134:177::-;17264:39;17281:4;17287:2;17291:7;17264:39;;;;;;;;;;;;:16;:39::i;:::-;17134:177;;;:::o;26082:226::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26203:8:::1;;26191;26175:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:36;;26167:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;26271:29;26281:8;26291;26271:9;:29::i;:::-;26082:226:::0;;:::o;12032:228::-;12135:7;12176:13;:11;:13::i;:::-;12168:5;:21;12160:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12247:5;12240:12;;12032:228;;;:::o;24375:28::-;;;;;;;;;;;;;:::o;27036:106::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27127:7:::1;;27111:13;:23;;;;;;;:::i;:::-;;27036:106:::0;;:::o;14792:124::-;14856:7;14883:20;14895:7;14883:11;:20::i;:::-;:25;;;14876:32;;14792:124;;;:::o;24446:32::-;;;;:::o;13564:258::-;13628:7;13687:1;13670:19;;:5;:19;;;;13648:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;13786:12;:19;13799:5;13786:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;13778:36;;13771:43;;13564:258;;;:::o;7120:94::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7185:21:::1;7203:1;7185:9;:21::i;:::-;7120:94::o:0;27485:100::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27572:5:::1;27559:10;:18;;;;;;;;;;;;:::i;:::-;;27485:100:::0;:::o;6901:87::-;6947:7;6974:6;;;;;;;;;;;6967:13;;6901:87;:::o;26438:96::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26515:11:::1;26507:5;:19;;;;26438:96:::0;:::o;27712:167::-;27805:21;;:::i;:::-;27851:20;27863:7;27851:11;:20::i;:::-;27844:27;;27712:167;;;:::o;15028:104::-;15084:13;15117:7;15110:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15028:104;:::o;26642:178::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26756:12:::1;26745:8;:23;;;;26795:17;26779:13;:33;;;;26642:178:::0;;:::o;24565:33::-;;;;:::o;25032:592::-;24957:10;24944:23;;:9;:23;;;24936:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;25113:10:::1;;;;;;;;;;;25105:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;25210:13;;25198:8;25171:24;25184:10;25171:12;:24::i;:::-;:35;;;;:::i;:::-;:52;;25163:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;25282:1;25271:8;:12;25263:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;25335:8;;25323;:20;;25315:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;25415:8;;25404;25388:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:35;25380:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;25508:8;25500:5;;:16;;;;:::i;:::-;25487:9;:29;25479:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;25568:4;25543:10;:22;25554:10;25543:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25585:31;25595:10;25607:8;25585:9;:31::i;:::-;25032:592:::0;:::o;26830:93::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26905:10:::1;;;;;;;;;;;26904:11;26891:10;;:24;;;;;;;;;;;;;;;;;;26830:93::o:0;16429:311::-;16559:12;:10;:12::i;:::-;16547:24;;:8;:24;;;;16539:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16660:8;16615:18;:32;16634:12;:10;:12::i;:::-;16615:32;;;;;;;;;;;;;;;:42;16648:8;16615:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;16713:8;16684:48;;16699:12;:10;:12::i;:::-;16684:48;;;16723:8;16684:48;;;;;;:::i;:::-;;;;;;;;16429:311;;:::o;27286:76::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27346:8:::1;;;;;;;;;;;27345:9;27334:8;;:20;;;;;;;;;;;;;;;;;;27286:76::o:0;25632:442::-;24957:10;24944:23;;:9;:23;;;24936:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;25702:14:::1;;;;;;;;;;;25694:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;25790:8;;25786:1;25770:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:28;25762:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;25882:13;;25878:1;25862:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:33;25854:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;25938:10;:22;25949:10;25938:22;;;;;;;;;;;;;;;;;;;;;;;;;25937:23;25929:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;26002:24;26012:10;26024:1;26002:9;:24::i;:::-;26062:4;26037:10;:22;26048:10;26037:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25632:442::o:0;17317:355::-;17476:28;17486:4;17492:2;17496:7;17476:9;:28::i;:::-;17537:48;17560:4;17566:2;17570:7;17579:5;17537:22;:48::i;:::-;17515:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;17317:355;;;;:::o;27887:562::-;28005:13;28058:16;28066:7;28058;:16::i;:::-;28036:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;28178:5;28166:17;;:8;;;;;;;;;;;:17;;;28162:71;;;28207:14;28200:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28162:71;28245:23;28271;28286:7;28271:14;:23::i;:::-;28245:49;;28351:1;28331:9;28325:23;:27;:116;;;;;;;;;;;;;;;;;28396:9;28407:10;28379:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;28325:116;28305:136;;;27887:562;;;;:::o;24485:31::-;;;;:::o;20938:43::-;;;;:::o;26929:99::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27006:14:::1;;;;;;;;;;;27005:15;26988:14;;:32;;;;;;;;;;;;;;;;;;26929:99::o:0;27591:113::-;27649:7;27676:20;27690:5;27676:13;:20::i;:::-;27669:27;;27591:113;;;:::o;16746:214::-;16888:4;16917:18;:25;16936:5;16917:25;;;;;;;;;;;;;;;:35;16943:8;16917:35;;;;;;;;;;;;;;;;;;;;;;;;;16910:42;;16746:214;;;;:::o;27150:128::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27255:15:::1;27238:14;:32;;;;;;;;;;;;:::i;:::-;;27150:128:::0;:::o;7220:229::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7343:1:::1;7323:22;;:8;:22;;;;7301:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7422:19;7432:8;7422:9;:19::i;:::-;7220:229:::0;:::o;26540:96::-;7045:12;:10;:12::i;:::-;7034:23;;:7;:5;:7::i;:::-;:23;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26623:5:::1;26607:13;:21;;;;26540:96:::0;:::o;24412:27::-;;;;:::o;24334:34::-;;;;;;;;;;;;;:::o;9433:207::-;9563:4;9607:25;9592:40;;;:11;:40;;;;9585:47;;9433:207;;;:::o;17678:111::-;17735:4;17769:12;;17759:7;:22;17752:29;;17678:111;;;:::o;6408:98::-;6461:7;6488:10;6481:17;;6408:98;:::o;20734:196::-;20876:2;20849:15;:24;20865:7;20849:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20914:7;20910:2;20894:28;;20903:5;20894:28;;;;;;;;;;;;20734:196;;;:::o;19188:1540::-;19303:35;19341:20;19353:7;19341:11;:20::i;:::-;19303:58;;19374:22;19416:13;:18;;;19400:34;;:12;:10;:12::i;:::-;:34;;;:87;;;;19475:12;:10;:12::i;:::-;19451:36;;:20;19463:7;19451:11;:20::i;:::-;:36;;;19400:87;:154;;;;19504:50;19521:13;:18;;;19541:12;:10;:12::i;:::-;19504:16;:50::i;:::-;19400:154;19374:181;;19590:17;19568:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;19742:4;19720:26;;:13;:18;;;:26;;;19698:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;19845:1;19831:16;;:2;:16;;;;19823:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19902:43;19924:4;19930:2;19934:7;19943:1;19902:21;:43::i;:::-;19956:49;19973:1;19977:7;19986:13;:18;;;19956:8;:49::i;:::-;20048:1;20018:12;:18;20031:4;20018:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20088:1;20060:12;:16;20073:2;20060:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20123:43;;;;;;;;20138:2;20123:43;;;;;;20149:15;20123:43;;;;;20100:11;:20;20112:7;20100:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20291:19;20323:1;20313:7;:11;;;;:::i;:::-;20291:33;;20380:1;20339:43;;:11;:24;20351:11;20339:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;20335:288;;;20403:20;20411:11;20403:7;:20::i;:::-;20399:213;;;20471:125;;;;;;;;20508:13;:18;;;20471:125;;;;;;20549:13;:28;;;20471:125;;;;;20444:11;:24;20456:11;20444:24;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20399:213;20335:288;20659:7;20655:2;20640:27;;20649:4;20640:27;;;;;;;;;;;;20678:42;20699:4;20705:2;20709:7;20718:1;20678:20;:42::i;:::-;19292:1436;;;19188:1540;;;:::o;17797:104::-;17866:27;17876:2;17880:8;17866:27;;;;;;;;;;;;:9;:27::i;:::-;17797:104;;:::o;14104:682::-;14192:21;;:::i;:::-;14239:16;14247:7;14239;:16::i;:::-;14231:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14315:26;14367:12;14356:7;:23;14352:103;;14442:1;14427:12;14417:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;14396:47;;14352:103;14472:12;14487:7;14472:22;;14467:242;14504:18;14496:4;:26;14467:242;;14547:31;14581:11;:17;14593:4;14581:17;;;;;;;;;;;14547:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14643:1;14617:28;;:9;:14;;;:28;;;14613:85;;14673:9;14666:16;;;;;;;14613:85;14532:177;14524:6;;;;;:::i;:::-;;;;14467:242;;;;14721:57;;;;;;;;;;:::i;:::-;;;;;;;;14104:682;;;;:::o;7457:173::-;7513:16;7532:6;;;;;;;;;;;7513:25;;7558:8;7549:6;;:17;;;;;;;;;;;;;;;;;;7613:8;7582:40;;7603:8;7582:40;;;;;;;;;;;;7502:128;7457:173;:::o;21839:985::-;21994:4;22015:15;:2;:13;;;:15::i;:::-;22011:806;;;22084:2;22068:36;;;22127:12;:10;:12::i;:::-;22162:4;22189:7;22219:5;22068:175;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;22047:715;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22447:1;22430:6;:13;:18;22426:321;;;22473:109;;;;;;;;;;:::i;:::-;;;;;;;;22426:321;22697:6;22691:13;22682:6;22678:2;22674:15;22667:38;22047:715;22317:45;;;22307:55;;;:6;:55;;;;22300:62;;;;;22011:806;22801:4;22794:11;;21839:985;;;;;;;:::o;15138:468::-;15256:13;15309:16;15317:7;15309;:16::i;:::-;15287:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;15413:21;15437:10;:8;:10::i;:::-;15413:34;;15502:1;15484:7;15478:21;:25;:120;;;;;;;;;;;;;;;;;15547:7;15556:18;:7;:16;:18::i;:::-;15530:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15478:120;15458:140;;;15138:468;;;:::o;13830:266::-;13891:7;13950:1;13933:19;;:5;:19;;;;13911:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;14055:12;:19;14068:5;14055:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;14047:41;;14040:48;;13830:266;;;:::o;22830:159::-;;;;;:::o;22995:158::-;;;;;:::o;17907:1275::-;18030:20;18053:12;;18030:35;;18098:1;18084:16;;:2;:16;;;;18076:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18158:21;18166:12;18158:7;:21::i;:::-;18157:22;18149:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18244:12;18232:8;:24;;18224:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18308:61;18338:1;18342:2;18346:12;18360:8;18308:21;:61::i;:::-;18382:30;18415:12;:16;18428:2;18415:16;;;;;;;;;;;;;;;18382:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18461:135;;;;;;;;18517:8;18487:11;:19;;;:39;;;;:::i;:::-;18461:135;;;;;;18576:8;18541:11;:24;;;:44;;;;:::i;:::-;18461:135;;;;;18442:12;:16;18455:2;18442:16;;;;;;;;;;;;;;;:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18635:43;;;;;;;;18650:2;18635:43;;;;;;18661:15;18635:43;;;;;18607:11;:25;18619:12;18607:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18691:20;18714:12;18691:35;;18744:9;18739:325;18763:8;18759:1;:12;18739:325;;;18823:12;18819:2;18798:38;;18815:1;18798:38;;;;;;;;;;;;18877:59;18908:1;18912:2;18916:12;18930:5;18877:22;:59::i;:::-;18851:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;19038:14;;;;;:::i;:::-;;;;18773:3;;;;;:::i;:::-;;;;18739:325;;;;19091:12;19076;:27;;;;19114:60;19143:1;19147:2;19151:12;19165:8;19114:20;:60::i;:::-;18019:1163;;;17907:1275;;;:::o;2414:117::-;2474:4;2522:1;2500:7;:19;;;:23;2493:30;;2414:117;;;:::o;26316:114::-;26376:13;26409;26402:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26316:114;:::o;7802:656::-;7858:13;8021:1;8012:5;:10;8008:53;;;8039:10;;;;;;;;;;;;;;;;;;;;;8008:53;8071:12;8086:5;8071:20;;8102:14;8127:78;8142:1;8134:4;:9;8127:78;;8160:8;;;;;:::i;:::-;;;;8191:2;8183:10;;;;;:::i;:::-;;;8127:78;;;8215:19;8247:6;8237:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8215:39;;8265:154;8281:1;8272:5;:10;8265:154;;8309:1;8299:11;;;;;:::i;:::-;;;8376:2;8368:5;:10;;;;:::i;:::-;8355:2;:24;;;;:::i;:::-;8342:39;;8325:6;8332;8325:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;8405:2;8396:11;;;;;:::i;:::-;;;8265:154;;;8443:6;8429:21;;;;;7802:656;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::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:553::-;1844:8;1854:6;1904:3;1897:4;1889:6;1885:17;1881:27;1871:122;;1912:79;;:::i;:::-;1871:122;2025:6;2012:20;2002:30;;2055:18;2047:6;2044:30;2041:117;;;2077:79;;:::i;:::-;2041:117;2191:4;2183:6;2179:17;2167:29;;2245:3;2237:4;2229:6;2225:17;2215:8;2211:32;2208:41;2205:128;;;2252:79;;:::i;:::-;2205:128;1786:553;;;;;:::o;2359:340::-;2415:5;2464:3;2457:4;2449:6;2445:17;2441:27;2431:122;;2472:79;;:::i;:::-;2431:122;2589:6;2576:20;2614:79;2689:3;2681:6;2674:4;2666:6;2662:17;2614:79;:::i;:::-;2605:88;;2421:278;2359:340;;;;:::o;2705:139::-;2751:5;2789:6;2776:20;2767:29;;2805:33;2832:5;2805:33;:::i;:::-;2705:139;;;;:::o;2850:329::-;2909:6;2958:2;2946:9;2937:7;2933:23;2929:32;2926:119;;;2964:79;;:::i;:::-;2926:119;3084:1;3109:53;3154:7;3145:6;3134:9;3130:22;3109:53;:::i;:::-;3099:63;;3055:117;2850:329;;;;:::o;3185:474::-;3253:6;3261;3310:2;3298:9;3289:7;3285:23;3281:32;3278:119;;;3316:79;;:::i;:::-;3278:119;3436:1;3461:53;3506:7;3497:6;3486:9;3482:22;3461:53;:::i;:::-;3451:63;;3407:117;3563:2;3589:53;3634:7;3625:6;3614:9;3610:22;3589:53;:::i;:::-;3579:63;;3534:118;3185:474;;;;;:::o;3665:619::-;3742:6;3750;3758;3807:2;3795:9;3786:7;3782:23;3778:32;3775:119;;;3813:79;;:::i;:::-;3775:119;3933:1;3958:53;4003:7;3994:6;3983:9;3979:22;3958:53;:::i;:::-;3948:63;;3904:117;4060:2;4086:53;4131:7;4122:6;4111:9;4107:22;4086:53;:::i;:::-;4076:63;;4031:118;4188:2;4214:53;4259:7;4250:6;4239:9;4235:22;4214:53;:::i;:::-;4204:63;;4159:118;3665:619;;;;;:::o;4290:943::-;4385:6;4393;4401;4409;4458:3;4446:9;4437:7;4433:23;4429:33;4426:120;;;4465:79;;:::i;:::-;4426:120;4585:1;4610:53;4655:7;4646:6;4635:9;4631:22;4610:53;:::i;:::-;4600:63;;4556:117;4712:2;4738:53;4783:7;4774:6;4763:9;4759:22;4738:53;:::i;:::-;4728:63;;4683:118;4840:2;4866:53;4911:7;4902:6;4891:9;4887:22;4866:53;:::i;:::-;4856:63;;4811:118;4996:2;4985:9;4981:18;4968:32;5027:18;5019:6;5016:30;5013:117;;;5049:79;;:::i;:::-;5013:117;5154:62;5208:7;5199:6;5188:9;5184:22;5154:62;:::i;:::-;5144:72;;4939:287;4290:943;;;;;;;:::o;5239:468::-;5304:6;5312;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5614:2;5640:50;5682:7;5673:6;5662:9;5658:22;5640:50;:::i;:::-;5630:60;;5585:115;5239:468;;;;;:::o;5713:474::-;5781:6;5789;5838:2;5826:9;5817:7;5813:23;5809:32;5806:119;;;5844:79;;:::i;:::-;5806:119;5964:1;5989:53;6034:7;6025:6;6014:9;6010:22;5989:53;:::i;:::-;5979:63;;5935:117;6091:2;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6062:118;5713:474;;;;;:::o;6193:327::-;6251:6;6300:2;6288:9;6279:7;6275:23;6271:32;6268:119;;;6306:79;;:::i;:::-;6268:119;6426:1;6451:52;6495:7;6486:6;6475:9;6471:22;6451:52;:::i;:::-;6441:62;;6397:116;6193:327;;;;:::o;6526:349::-;6595:6;6644:2;6632:9;6623:7;6619:23;6615:32;6612:119;;;6650:79;;:::i;:::-;6612:119;6770:1;6795:63;6850:7;6841:6;6830:9;6826:22;6795:63;:::i;:::-;6785:73;;6741:127;6526:349;;;;:::o;6881:529::-;6952:6;6960;7009:2;6997:9;6988:7;6984:23;6980:32;6977:119;;;7015:79;;:::i;:::-;6977:119;7163:1;7152:9;7148:17;7135:31;7193:18;7185:6;7182:30;7179:117;;;7215:79;;:::i;:::-;7179:117;7328:65;7385:7;7376:6;7365:9;7361:22;7328:65;:::i;:::-;7310:83;;;;7106:297;6881:529;;;;;:::o;7416:509::-;7485:6;7534:2;7522:9;7513:7;7509:23;7505:32;7502:119;;;7540:79;;:::i;:::-;7502:119;7688:1;7677:9;7673:17;7660:31;7718:18;7710:6;7707:30;7704:117;;;7740:79;;:::i;:::-;7704:117;7845:63;7900:7;7891:6;7880:9;7876:22;7845:63;:::i;:::-;7835:73;;7631:287;7416:509;;;;:::o;7931:329::-;7990:6;8039:2;8027:9;8018:7;8014:23;8010:32;8007:119;;;8045:79;;:::i;:::-;8007:119;8165:1;8190:53;8235:7;8226:6;8215:9;8211:22;8190:53;:::i;:::-;8180:63;;8136:117;7931:329;;;;:::o;8266:474::-;8334:6;8342;8391:2;8379:9;8370:7;8366:23;8362:32;8359:119;;;8397:79;;:::i;:::-;8359:119;8517:1;8542:53;8587:7;8578:6;8567:9;8563:22;8542:53;:::i;:::-;8532:63;;8488:117;8644:2;8670:53;8715:7;8706:6;8695:9;8691:22;8670:53;:::i;:::-;8660:63;;8615:118;8266:474;;;;;:::o;8746:108::-;8823:24;8841:5;8823:24;:::i;:::-;8818:3;8811:37;8746:108;;:::o;8860:118::-;8947:24;8965:5;8947:24;:::i;:::-;8942:3;8935:37;8860:118;;:::o;8984:109::-;9065:21;9080:5;9065:21;:::i;:::-;9060:3;9053:34;8984:109;;:::o;9099:360::-;9185:3;9213:38;9245:5;9213:38;:::i;:::-;9267:70;9330:6;9325:3;9267:70;:::i;:::-;9260:77;;9346:52;9391:6;9386:3;9379:4;9372:5;9368:16;9346:52;:::i;:::-;9423:29;9445:6;9423:29;:::i;:::-;9418:3;9414:39;9407:46;;9189:270;9099:360;;;;:::o;9465:364::-;9553:3;9581:39;9614:5;9581:39;:::i;:::-;9636:71;9700:6;9695:3;9636:71;:::i;:::-;9629:78;;9716:52;9761:6;9756:3;9749:4;9742:5;9738:16;9716:52;:::i;:::-;9793:29;9815:6;9793:29;:::i;:::-;9788:3;9784:39;9777:46;;9557:272;9465:364;;;;:::o;9835:377::-;9941:3;9969:39;10002:5;9969:39;:::i;:::-;10024:89;10106:6;10101:3;10024:89;:::i;:::-;10017:96;;10122:52;10167:6;10162:3;10155:4;10148:5;10144:16;10122:52;:::i;:::-;10199:6;10194:3;10190:16;10183:23;;9945:267;9835:377;;;;:::o;10242:845::-;10345:3;10382:5;10376:12;10411:36;10437:9;10411:36;:::i;:::-;10463:89;10545:6;10540:3;10463:89;:::i;:::-;10456:96;;10583:1;10572:9;10568:17;10599:1;10594:137;;;;10745:1;10740:341;;;;10561:520;;10594:137;10678:4;10674:9;10663;10659:25;10654:3;10647:38;10714:6;10709:3;10705:16;10698:23;;10594:137;;10740:341;10807:38;10839:5;10807:38;:::i;:::-;10867:1;10881:154;10895:6;10892:1;10889:13;10881:154;;;10969:7;10963:14;10959:1;10954:3;10950:11;10943:35;11019:1;11010:7;11006:15;10995:26;;10917:4;10914:1;10910:12;10905:17;;10881:154;;;11064:6;11059:3;11055:16;11048:23;;10747:334;;10561:520;;10349:738;;10242:845;;;;:::o;11093:366::-;11235:3;11256:67;11320:2;11315:3;11256:67;:::i;:::-;11249:74;;11332:93;11421:3;11332:93;:::i;:::-;11450:2;11445:3;11441:12;11434:19;;11093:366;;;:::o;11465:::-;11607:3;11628:67;11692:2;11687:3;11628:67;:::i;:::-;11621:74;;11704:93;11793:3;11704:93;:::i;:::-;11822:2;11817:3;11813:12;11806:19;;11465:366;;;:::o;11837:::-;11979:3;12000:67;12064:2;12059:3;12000:67;:::i;:::-;11993:74;;12076:93;12165:3;12076:93;:::i;:::-;12194:2;12189:3;12185:12;12178:19;;11837:366;;;:::o;12209:::-;12351:3;12372:67;12436:2;12431:3;12372:67;:::i;:::-;12365:74;;12448:93;12537:3;12448:93;:::i;:::-;12566:2;12561:3;12557:12;12550:19;;12209:366;;;:::o;12581:::-;12723:3;12744:67;12808:2;12803:3;12744:67;:::i;:::-;12737:74;;12820:93;12909:3;12820:93;:::i;:::-;12938:2;12933:3;12929:12;12922:19;;12581:366;;;:::o;12953:::-;13095:3;13116:67;13180:2;13175:3;13116:67;:::i;:::-;13109:74;;13192:93;13281:3;13192:93;:::i;:::-;13310:2;13305:3;13301:12;13294:19;;12953:366;;;:::o;13325:::-;13467:3;13488:67;13552:2;13547:3;13488:67;:::i;:::-;13481:74;;13564:93;13653:3;13564:93;:::i;:::-;13682:2;13677:3;13673:12;13666:19;;13325:366;;;:::o;13697:::-;13839:3;13860:67;13924:2;13919:3;13860:67;:::i;:::-;13853:74;;13936:93;14025:3;13936:93;:::i;:::-;14054:2;14049:3;14045:12;14038:19;;13697:366;;;:::o;14069:::-;14211:3;14232:67;14296:2;14291:3;14232:67;:::i;:::-;14225:74;;14308:93;14397:3;14308:93;:::i;:::-;14426:2;14421:3;14417:12;14410:19;;14069:366;;;:::o;14441:::-;14583:3;14604:67;14668:2;14663:3;14604:67;:::i;:::-;14597:74;;14680:93;14769:3;14680:93;:::i;:::-;14798:2;14793:3;14789:12;14782:19;;14441:366;;;:::o;14813:::-;14955:3;14976:67;15040:2;15035:3;14976:67;:::i;:::-;14969:74;;15052:93;15141:3;15052:93;:::i;:::-;15170:2;15165:3;15161:12;15154:19;;14813:366;;;:::o;15185:::-;15327:3;15348:67;15412:2;15407:3;15348:67;:::i;:::-;15341:74;;15424:93;15513:3;15424:93;:::i;:::-;15542:2;15537:3;15533:12;15526:19;;15185:366;;;:::o;15557:::-;15699:3;15720:67;15784:2;15779:3;15720:67;:::i;:::-;15713:74;;15796:93;15885:3;15796:93;:::i;:::-;15914:2;15909:3;15905:12;15898:19;;15557:366;;;:::o;15929:::-;16071:3;16092:67;16156:2;16151:3;16092:67;:::i;:::-;16085:74;;16168:93;16257:3;16168:93;:::i;:::-;16286:2;16281:3;16277:12;16270:19;;15929:366;;;:::o;16301:::-;16443:3;16464:67;16528:2;16523:3;16464:67;:::i;:::-;16457:74;;16540:93;16629:3;16540:93;:::i;:::-;16658:2;16653:3;16649:12;16642:19;;16301:366;;;:::o;16673:::-;16815:3;16836:67;16900:2;16895:3;16836:67;:::i;:::-;16829:74;;16912:93;17001:3;16912:93;:::i;:::-;17030:2;17025:3;17021:12;17014:19;;16673:366;;;:::o;17045:::-;17187:3;17208:67;17272:2;17267:3;17208:67;:::i;:::-;17201:74;;17284:93;17373:3;17284:93;:::i;:::-;17402:2;17397:3;17393:12;17386:19;;17045:366;;;:::o;17417:::-;17559:3;17580:67;17644:2;17639:3;17580:67;:::i;:::-;17573:74;;17656:93;17745:3;17656:93;:::i;:::-;17774:2;17769:3;17765:12;17758:19;;17417:366;;;:::o;17789:::-;17931:3;17952:67;18016:2;18011:3;17952:67;:::i;:::-;17945:74;;18028:93;18117:3;18028:93;:::i;:::-;18146:2;18141:3;18137:12;18130:19;;17789:366;;;:::o;18161:::-;18303:3;18324:67;18388:2;18383:3;18324:67;:::i;:::-;18317:74;;18400:93;18489:3;18400:93;:::i;:::-;18518:2;18513:3;18509:12;18502:19;;18161:366;;;:::o;18533:::-;18675:3;18696:67;18760:2;18755:3;18696:67;:::i;:::-;18689:74;;18772:93;18861:3;18772:93;:::i;:::-;18890:2;18885:3;18881:12;18874:19;;18533:366;;;:::o;18905:::-;19047:3;19068:67;19132:2;19127:3;19068:67;:::i;:::-;19061:74;;19144:93;19233:3;19144:93;:::i;:::-;19262:2;19257:3;19253:12;19246:19;;18905:366;;;:::o;19277:::-;19419:3;19440:67;19504:2;19499:3;19440:67;:::i;:::-;19433:74;;19516:93;19605:3;19516:93;:::i;:::-;19634:2;19629:3;19625:12;19618:19;;19277:366;;;:::o;19649:::-;19791:3;19812:67;19876:2;19871:3;19812:67;:::i;:::-;19805:74;;19888:93;19977:3;19888:93;:::i;:::-;20006:2;20001:3;19997:12;19990:19;;19649:366;;;:::o;20021:::-;20163:3;20184:67;20248:2;20243:3;20184:67;:::i;:::-;20177:74;;20260:93;20349:3;20260:93;:::i;:::-;20378:2;20373:3;20369:12;20362:19;;20021:366;;;:::o;20393:::-;20535:3;20556:67;20620:2;20615:3;20556:67;:::i;:::-;20549:74;;20632:93;20721:3;20632:93;:::i;:::-;20750:2;20745:3;20741:12;20734:19;;20393:366;;;:::o;20765:::-;20907:3;20928:67;20992:2;20987:3;20928:67;:::i;:::-;20921:74;;21004:93;21093:3;21004:93;:::i;:::-;21122:2;21117:3;21113:12;21106:19;;20765:366;;;:::o;21137:::-;21279:3;21300:67;21364:2;21359:3;21300:67;:::i;:::-;21293:74;;21376:93;21465:3;21376:93;:::i;:::-;21494:2;21489:3;21485:12;21478:19;;21137:366;;;:::o;21509:::-;21651:3;21672:67;21736:2;21731:3;21672:67;:::i;:::-;21665:74;;21748:93;21837:3;21748:93;:::i;:::-;21866:2;21861:3;21857:12;21850:19;;21509:366;;;:::o;21881:::-;22023:3;22044:67;22108:2;22103:3;22044:67;:::i;:::-;22037:74;;22120:93;22209:3;22120:93;:::i;:::-;22238:2;22233:3;22229:12;22222:19;;21881:366;;;:::o;22253:::-;22395:3;22416:67;22480:2;22475:3;22416:67;:::i;:::-;22409:74;;22492:93;22581:3;22492:93;:::i;:::-;22610:2;22605:3;22601:12;22594:19;;22253:366;;;:::o;22625:::-;22767:3;22788:67;22852:2;22847:3;22788:67;:::i;:::-;22781:74;;22864:93;22953:3;22864:93;:::i;:::-;22982:2;22977:3;22973:12;22966:19;;22625:366;;;:::o;23067:527::-;23226:4;23221:3;23217:14;23313:4;23306:5;23302:16;23296:23;23332:63;23389:4;23384:3;23380:14;23366:12;23332:63;:::i;:::-;23241:164;23497:4;23490:5;23486:16;23480:23;23516:61;23571:4;23566:3;23562:14;23548:12;23516:61;:::i;:::-;23415:172;23195:399;23067:527;;:::o;23600:118::-;23687:24;23705:5;23687:24;:::i;:::-;23682:3;23675:37;23600:118;;:::o;23724:105::-;23799:23;23816:5;23799:23;:::i;:::-;23794:3;23787:36;23724:105;;:::o;23835:435::-;24015:3;24037:95;24128:3;24119:6;24037:95;:::i;:::-;24030:102;;24149:95;24240:3;24231:6;24149:95;:::i;:::-;24142:102;;24261:3;24254:10;;23835:435;;;;;:::o;24276:429::-;24453:3;24475:95;24566:3;24557:6;24475:95;:::i;:::-;24468:102;;24587:92;24675:3;24666:6;24587:92;:::i;:::-;24580:99;;24696:3;24689:10;;24276:429;;;;;:::o;24711:222::-;24804:4;24842:2;24831:9;24827:18;24819:26;;24855:71;24923:1;24912:9;24908:17;24899:6;24855:71;:::i;:::-;24711:222;;;;:::o;24939:640::-;25134:4;25172:3;25161:9;25157:19;25149:27;;25186:71;25254:1;25243:9;25239:17;25230:6;25186:71;:::i;:::-;25267:72;25335:2;25324:9;25320:18;25311:6;25267:72;:::i;:::-;25349;25417:2;25406:9;25402:18;25393:6;25349:72;:::i;:::-;25468:9;25462:4;25458:20;25453:2;25442:9;25438:18;25431:48;25496:76;25567:4;25558:6;25496:76;:::i;:::-;25488:84;;24939:640;;;;;;;:::o;25585:210::-;25672:4;25710:2;25699:9;25695:18;25687:26;;25723:65;25785:1;25774:9;25770:17;25761:6;25723:65;:::i;:::-;25585:210;;;;:::o;25801:313::-;25914:4;25952:2;25941:9;25937:18;25929:26;;26001:9;25995:4;25991:20;25987:1;25976:9;25972:17;25965:47;26029:78;26102:4;26093:6;26029:78;:::i;:::-;26021:86;;25801:313;;;;:::o;26120:419::-;26286:4;26324:2;26313:9;26309:18;26301:26;;26373:9;26367:4;26363:20;26359:1;26348:9;26344:17;26337:47;26401:131;26527:4;26401:131;:::i;:::-;26393:139;;26120:419;;;:::o;26545:::-;26711:4;26749:2;26738:9;26734:18;26726:26;;26798:9;26792:4;26788:20;26784:1;26773:9;26769:17;26762:47;26826:131;26952:4;26826:131;:::i;:::-;26818:139;;26545:419;;;:::o;26970:::-;27136:4;27174:2;27163:9;27159:18;27151:26;;27223:9;27217:4;27213:20;27209:1;27198:9;27194:17;27187:47;27251:131;27377:4;27251:131;:::i;:::-;27243:139;;26970:419;;;:::o;27395:::-;27561:4;27599:2;27588:9;27584:18;27576:26;;27648:9;27642:4;27638:20;27634:1;27623:9;27619:17;27612:47;27676:131;27802:4;27676:131;:::i;:::-;27668:139;;27395:419;;;:::o;27820:::-;27986:4;28024:2;28013:9;28009:18;28001:26;;28073:9;28067:4;28063:20;28059:1;28048:9;28044:17;28037:47;28101:131;28227:4;28101:131;:::i;:::-;28093:139;;27820:419;;;:::o;28245:::-;28411:4;28449:2;28438:9;28434:18;28426:26;;28498:9;28492:4;28488:20;28484:1;28473:9;28469:17;28462:47;28526:131;28652:4;28526:131;:::i;:::-;28518:139;;28245:419;;;:::o;28670:::-;28836:4;28874:2;28863:9;28859:18;28851:26;;28923:9;28917:4;28913:20;28909:1;28898:9;28894:17;28887:47;28951:131;29077:4;28951:131;:::i;:::-;28943:139;;28670:419;;;:::o;29095:::-;29261:4;29299:2;29288:9;29284:18;29276:26;;29348:9;29342:4;29338:20;29334:1;29323:9;29319:17;29312:47;29376:131;29502:4;29376:131;:::i;:::-;29368:139;;29095:419;;;:::o;29520:::-;29686:4;29724:2;29713:9;29709:18;29701:26;;29773:9;29767:4;29763:20;29759:1;29748:9;29744:17;29737:47;29801:131;29927:4;29801:131;:::i;:::-;29793:139;;29520:419;;;:::o;29945:::-;30111:4;30149:2;30138:9;30134:18;30126:26;;30198:9;30192:4;30188:20;30184:1;30173:9;30169:17;30162:47;30226:131;30352:4;30226:131;:::i;:::-;30218:139;;29945:419;;;:::o;30370:::-;30536:4;30574:2;30563:9;30559:18;30551:26;;30623:9;30617:4;30613:20;30609:1;30598:9;30594:17;30587:47;30651:131;30777:4;30651:131;:::i;:::-;30643:139;;30370:419;;;:::o;30795:::-;30961:4;30999:2;30988:9;30984:18;30976:26;;31048:9;31042:4;31038:20;31034:1;31023:9;31019:17;31012:47;31076:131;31202:4;31076:131;:::i;:::-;31068:139;;30795:419;;;:::o;31220:::-;31386:4;31424:2;31413:9;31409:18;31401:26;;31473:9;31467:4;31463:20;31459:1;31448:9;31444:17;31437:47;31501:131;31627:4;31501:131;:::i;:::-;31493:139;;31220:419;;;:::o;31645:::-;31811:4;31849:2;31838:9;31834:18;31826:26;;31898:9;31892:4;31888:20;31884:1;31873:9;31869:17;31862:47;31926:131;32052:4;31926:131;:::i;:::-;31918:139;;31645:419;;;:::o;32070:::-;32236:4;32274:2;32263:9;32259:18;32251:26;;32323:9;32317:4;32313:20;32309:1;32298:9;32294:17;32287:47;32351:131;32477:4;32351:131;:::i;:::-;32343:139;;32070:419;;;:::o;32495:::-;32661:4;32699:2;32688:9;32684:18;32676:26;;32748:9;32742:4;32738:20;32734:1;32723:9;32719:17;32712:47;32776:131;32902:4;32776:131;:::i;:::-;32768:139;;32495:419;;;:::o;32920:::-;33086:4;33124:2;33113:9;33109:18;33101:26;;33173:9;33167:4;33163:20;33159:1;33148:9;33144:17;33137:47;33201:131;33327:4;33201:131;:::i;:::-;33193:139;;32920:419;;;:::o;33345:::-;33511:4;33549:2;33538:9;33534:18;33526:26;;33598:9;33592:4;33588:20;33584:1;33573:9;33569:17;33562:47;33626:131;33752:4;33626:131;:::i;:::-;33618:139;;33345:419;;;:::o;33770:::-;33936:4;33974:2;33963:9;33959:18;33951:26;;34023:9;34017:4;34013:20;34009:1;33998:9;33994:17;33987:47;34051:131;34177:4;34051:131;:::i;:::-;34043:139;;33770:419;;;:::o;34195:::-;34361:4;34399:2;34388:9;34384:18;34376:26;;34448:9;34442:4;34438:20;34434:1;34423:9;34419:17;34412:47;34476:131;34602:4;34476:131;:::i;:::-;34468:139;;34195:419;;;:::o;34620:::-;34786:4;34824:2;34813:9;34809:18;34801:26;;34873:9;34867:4;34863:20;34859:1;34848:9;34844:17;34837:47;34901:131;35027:4;34901:131;:::i;:::-;34893:139;;34620:419;;;:::o;35045:::-;35211:4;35249:2;35238:9;35234:18;35226:26;;35298:9;35292:4;35288:20;35284:1;35273:9;35269:17;35262:47;35326:131;35452:4;35326:131;:::i;:::-;35318:139;;35045:419;;;:::o;35470:::-;35636:4;35674:2;35663:9;35659:18;35651:26;;35723:9;35717:4;35713:20;35709:1;35698:9;35694:17;35687:47;35751:131;35877:4;35751:131;:::i;:::-;35743:139;;35470:419;;;:::o;35895:::-;36061:4;36099:2;36088:9;36084:18;36076:26;;36148:9;36142:4;36138:20;36134:1;36123:9;36119:17;36112:47;36176:131;36302:4;36176:131;:::i;:::-;36168:139;;35895:419;;;:::o;36320:::-;36486:4;36524:2;36513:9;36509:18;36501:26;;36573:9;36567:4;36563:20;36559:1;36548:9;36544:17;36537:47;36601:131;36727:4;36601:131;:::i;:::-;36593:139;;36320:419;;;:::o;36745:::-;36911:4;36949:2;36938:9;36934:18;36926:26;;36998:9;36992:4;36988:20;36984:1;36973:9;36969:17;36962:47;37026:131;37152:4;37026:131;:::i;:::-;37018:139;;36745:419;;;:::o;37170:::-;37336:4;37374:2;37363:9;37359:18;37351:26;;37423:9;37417:4;37413:20;37409:1;37398:9;37394:17;37387:47;37451:131;37577:4;37451:131;:::i;:::-;37443:139;;37170:419;;;:::o;37595:::-;37761:4;37799:2;37788:9;37784:18;37776:26;;37848:9;37842:4;37838:20;37834:1;37823:9;37819:17;37812:47;37876:131;38002:4;37876:131;:::i;:::-;37868:139;;37595:419;;;:::o;38020:::-;38186:4;38224:2;38213:9;38209:18;38201:26;;38273:9;38267:4;38263:20;38259:1;38248:9;38244:17;38237:47;38301:131;38427:4;38301:131;:::i;:::-;38293:139;;38020:419;;;:::o;38445:::-;38611:4;38649:2;38638:9;38634:18;38626:26;;38698:9;38692:4;38688:20;38684:1;38673:9;38669:17;38662:47;38726:131;38852:4;38726:131;:::i;:::-;38718:139;;38445:419;;;:::o;38870:::-;39036:4;39074:2;39063:9;39059:18;39051:26;;39123:9;39117:4;39113:20;39109:1;39098:9;39094:17;39087:47;39151:131;39277:4;39151:131;:::i;:::-;39143:139;;38870:419;;;:::o;39295:::-;39461:4;39499:2;39488:9;39484:18;39476:26;;39548:9;39542:4;39538:20;39534:1;39523:9;39519:17;39512:47;39576:131;39702:4;39576:131;:::i;:::-;39568:139;;39295:419;;;:::o;39720:346::-;39875:4;39913:2;39902:9;39898:18;39890:26;;39926:133;40056:1;40045:9;40041:17;40032:6;39926:133;:::i;:::-;39720:346;;;;:::o;40072:222::-;40165:4;40203:2;40192:9;40188:18;40180:26;;40216:71;40284:1;40273:9;40269:17;40260:6;40216:71;:::i;:::-;40072:222;;;;:::o;40300:129::-;40334:6;40361:20;;:::i;:::-;40351:30;;40390:33;40418:4;40410:6;40390:33;:::i;:::-;40300:129;;;:::o;40435:75::-;40468:6;40501:2;40495:9;40485:19;;40435:75;:::o;40516:307::-;40577:4;40667:18;40659:6;40656:30;40653:56;;;40689:18;;:::i;:::-;40653:56;40727:29;40749:6;40727:29;:::i;:::-;40719:37;;40811:4;40805;40801:15;40793:23;;40516:307;;;:::o;40829:308::-;40891:4;40981:18;40973:6;40970:30;40967:56;;;41003:18;;:::i;:::-;40967:56;41041:29;41063:6;41041:29;:::i;:::-;41033:37;;41125:4;41119;41115:15;41107:23;;40829:308;;;:::o;41143:141::-;41192:4;41215:3;41207:11;;41238:3;41235:1;41228:14;41272:4;41269:1;41259:18;41251:26;;41143:141;;;:::o;41290:98::-;41341:6;41375:5;41369:12;41359:22;;41290:98;;;:::o;41394:99::-;41446:6;41480:5;41474:12;41464:22;;41394:99;;;:::o;41499:168::-;41582:11;41616:6;41611:3;41604:19;41656:4;41651:3;41647:14;41632:29;;41499:168;;;;:::o;41673:169::-;41757:11;41791:6;41786:3;41779:19;41831:4;41826:3;41822:14;41807:29;;41673:169;;;;:::o;41848:148::-;41950:11;41987:3;41972:18;;41848:148;;;;:::o;42002:273::-;42042:3;42061:20;42079:1;42061:20;:::i;:::-;42056:25;;42095:20;42113:1;42095:20;:::i;:::-;42090:25;;42217:1;42181:34;42177:42;42174:1;42171:49;42168:75;;;42223:18;;:::i;:::-;42168:75;42267:1;42264;42260:9;42253:16;;42002:273;;;;:::o;42281:305::-;42321:3;42340:20;42358:1;42340:20;:::i;:::-;42335:25;;42374:20;42392:1;42374:20;:::i;:::-;42369:25;;42528:1;42460:66;42456:74;42453:1;42450:81;42447:107;;;42534:18;;:::i;:::-;42447:107;42578:1;42575;42571:9;42564:16;;42281:305;;;;:::o;42592:185::-;42632:1;42649:20;42667:1;42649:20;:::i;:::-;42644:25;;42683:20;42701:1;42683:20;:::i;:::-;42678:25;;42722:1;42712:35;;42727:18;;:::i;:::-;42712:35;42769:1;42766;42762:9;42757:14;;42592:185;;;;:::o;42783:348::-;42823:7;42846:20;42864:1;42846:20;:::i;:::-;42841:25;;42880:20;42898:1;42880:20;:::i;:::-;42875:25;;43068:1;43000:66;42996:74;42993:1;42990:81;42985:1;42978:9;42971:17;42967:105;42964:131;;;43075:18;;:::i;:::-;42964:131;43123:1;43120;43116:9;43105:20;;42783:348;;;;:::o;43137:191::-;43177:4;43197:20;43215:1;43197:20;:::i;:::-;43192:25;;43231:20;43249:1;43231:20;:::i;:::-;43226:25;;43270:1;43267;43264:8;43261:34;;;43275:18;;:::i;:::-;43261:34;43320:1;43317;43313:9;43305:17;;43137:191;;;;:::o;43334:::-;43374:4;43394:20;43412:1;43394:20;:::i;:::-;43389:25;;43428:20;43446:1;43428:20;:::i;:::-;43423:25;;43467:1;43464;43461:8;43458:34;;;43472:18;;:::i;:::-;43458:34;43517:1;43514;43510:9;43502:17;;43334:191;;;;:::o;43531:96::-;43568:7;43597:24;43615:5;43597:24;:::i;:::-;43586:35;;43531:96;;;:::o;43633:90::-;43667:7;43710:5;43703:13;43696:21;43685:32;;43633:90;;;:::o;43729:149::-;43765:7;43805:66;43798:5;43794:78;43783:89;;43729:149;;;:::o;43884:118::-;43921:7;43961:34;43954:5;43950:46;43939:57;;43884:118;;;:::o;44008:126::-;44045:7;44085:42;44078:5;44074:54;44063:65;;44008:126;;;:::o;44140:77::-;44177:7;44206:5;44195:16;;44140:77;;;:::o;44223:101::-;44259:7;44299:18;44292:5;44288:30;44277:41;;44223:101;;;:::o;44330:154::-;44414:6;44409:3;44404;44391:30;44476:1;44467:6;44462:3;44458:16;44451:27;44330:154;;;:::o;44490:307::-;44558:1;44568:113;44582:6;44579:1;44576:13;44568:113;;;44667:1;44662:3;44658:11;44652:18;44648:1;44643:3;44639:11;44632:39;44604:2;44601:1;44597:10;44592:15;;44568:113;;;44699:6;44696:1;44693:13;44690:101;;;44779:1;44770:6;44765:3;44761:16;44754:27;44690:101;44539:258;44490:307;;;:::o;44803:171::-;44842:3;44865:24;44883:5;44865:24;:::i;:::-;44856:33;;44911:4;44904:5;44901:15;44898:41;;;44919:18;;:::i;:::-;44898:41;44966:1;44959:5;44955:13;44948:20;;44803:171;;;:::o;44980:320::-;45024:6;45061:1;45055:4;45051:12;45041:22;;45108:1;45102:4;45098:12;45129:18;45119:81;;45185:4;45177:6;45173:17;45163:27;;45119:81;45247:2;45239:6;45236:14;45216:18;45213:38;45210:84;;;45266:18;;:::i;:::-;45210:84;45031:269;44980:320;;;:::o;45306:281::-;45389:27;45411:4;45389:27;:::i;:::-;45381:6;45377:40;45519:6;45507:10;45504:22;45483:18;45471:10;45468:34;45465:62;45462:88;;;45530:18;;:::i;:::-;45462:88;45570:10;45566:2;45559:22;45349:238;45306:281;;:::o;45593:233::-;45632:3;45655:24;45673:5;45655:24;:::i;:::-;45646:33;;45701:66;45694:5;45691:77;45688:103;;;45771:18;;:::i;:::-;45688:103;45818:1;45811:5;45807:13;45800:20;;45593:233;;;:::o;45832:176::-;45864:1;45881:20;45899:1;45881:20;:::i;:::-;45876:25;;45915:20;45933:1;45915:20;:::i;:::-;45910:25;;45954:1;45944:35;;45959:18;;:::i;:::-;45944:35;46000:1;45997;45993:9;45988:14;;45832:176;;;;:::o;46014:180::-;46062:77;46059:1;46052:88;46159:4;46156:1;46149:15;46183:4;46180:1;46173:15;46200:180;46248:77;46245:1;46238:88;46345:4;46342:1;46335:15;46369:4;46366:1;46359:15;46386:180;46434:77;46431:1;46424:88;46531:4;46528:1;46521:15;46555:4;46552:1;46545:15;46572:180;46620:77;46617:1;46610:88;46717:4;46714:1;46707:15;46741:4;46738:1;46731:15;46758:180;46806:77;46803:1;46796:88;46903:4;46900:1;46893:15;46927:4;46924:1;46917:15;46944:117;47053:1;47050;47043:12;47067:117;47176:1;47173;47166:12;47190:117;47299:1;47296;47289:12;47313:117;47422:1;47419;47412:12;47436:117;47545:1;47542;47535:12;47559:117;47668:1;47665;47658:12;47682:102;47723:6;47774:2;47770:7;47765:2;47758:5;47754:14;47750:28;47740:38;;47682:102;;;:::o;47790:221::-;47930:34;47926:1;47918:6;47914:14;47907:58;47999:4;47994:2;47986:6;47982:15;47975:29;47790:221;:::o;48017:171::-;48157:23;48153:1;48145:6;48141:14;48134:47;48017:171;:::o;48194:174::-;48334:26;48330:1;48322:6;48318:14;48311:50;48194:174;:::o;48374:225::-;48514:34;48510:1;48502:6;48498:14;48491:58;48583:8;48578:2;48570:6;48566:15;48559:33;48374:225;:::o;48605:161::-;48745:13;48741:1;48733:6;48729:14;48722:37;48605:161;:::o;48772:229::-;48912:34;48908:1;48900:6;48896:14;48889:58;48981:12;48976:2;48968:6;48964:15;48957:37;48772:229;:::o;49007:222::-;49147:34;49143:1;49135:6;49131:14;49124:58;49216:5;49211:2;49203:6;49199:15;49192:30;49007:222;:::o;49235:224::-;49375:34;49371:1;49363:6;49359:14;49352:58;49444:7;49439:2;49431:6;49427:15;49420:32;49235:224;:::o;49465:236::-;49605:34;49601:1;49593:6;49589:14;49582:58;49674:19;49669:2;49661:6;49657:15;49650:44;49465:236;:::o;49707:180::-;49847:32;49843:1;49835:6;49831:14;49824:56;49707:180;:::o;49893:174::-;50033:26;50029:1;50021:6;50017:14;50010:50;49893:174;:::o;50073:244::-;50213:34;50209:1;50201:6;50197:14;50190:58;50282:27;50277:2;50269:6;50265:15;50258:52;50073:244;:::o;50323:168::-;50463:20;50459:1;50451:6;50447:14;50440:44;50323:168;:::o;50497:230::-;50637:34;50633:1;50625:6;50621:14;50614:58;50706:13;50701:2;50693:6;50689:15;50682:38;50497:230;:::o;50733:225::-;50873:34;50869:1;50861:6;50857:14;50850:58;50942:8;50937:2;50929:6;50925:15;50918:33;50733:225;:::o;50964:182::-;51104:34;51100:1;51092:6;51088:14;51081:58;50964:182;:::o;51152:180::-;51292:32;51288:1;51280:6;51276:14;51269:56;51152:180;:::o;51338:234::-;51478:34;51474:1;51466:6;51462:14;51455:58;51547:17;51542:2;51534:6;51530:15;51523:42;51338:234;:::o;51578:176::-;51718:28;51714:1;51706:6;51702:14;51695:52;51578:176;:::o;51760:237::-;51900:34;51896:1;51888:6;51884:14;51877:58;51969:20;51964:2;51956:6;51952:15;51945:45;51760:237;:::o;52003:227::-;52143:34;52139:1;52131:6;52127:14;52120:58;52212:10;52207:2;52199:6;52195:15;52188:35;52003:227;:::o;52236:221::-;52376:34;52372:1;52364:6;52360:14;52353:58;52445:4;52440:2;52432:6;52428:15;52421:29;52236:221;:::o;52463:174::-;52603:26;52599:1;52591:6;52587:14;52580:50;52463:174;:::o;52643:238::-;52783:34;52779:1;52771:6;52767:14;52760:58;52852:21;52847:2;52839:6;52835:15;52828:46;52643:238;:::o;52887:179::-;53027:31;53023:1;53015:6;53011:14;53004:55;52887:179;:::o;53072:220::-;53212:34;53208:1;53200:6;53196:14;53189:58;53281:3;53276:2;53268:6;53264:15;53257:28;53072:220;:::o;53298:231::-;53438:34;53434:1;53426:6;53422:14;53415:58;53507:14;53502:2;53494:6;53490:15;53483:39;53298:231;:::o;53535:166::-;53675:18;53671:1;53663:6;53659:14;53652:42;53535:166;:::o;53707:233::-;53847:34;53843:1;53835:6;53831:14;53824:58;53916:16;53911:2;53903:6;53899:15;53892:41;53707:233;:::o;53946:234::-;54086:34;54082:1;54074:6;54070:14;54063:58;54155:17;54150:2;54142:6;54138:15;54131:42;53946:234;:::o;54186:232::-;54326:34;54322:1;54314:6;54310:14;54303:58;54395:15;54390:2;54382:6;54378:15;54371:40;54186:232;:::o;54424:221::-;54564:34;54560:1;54552:6;54548:14;54541:58;54633:4;54628:2;54620:6;54616:15;54609:29;54424:221;:::o;54651:122::-;54724:24;54742:5;54724:24;:::i;:::-;54717:5;54714:35;54704:63;;54763:1;54760;54753:12;54704:63;54651:122;:::o;54779:116::-;54849:21;54864:5;54849:21;:::i;:::-;54842:5;54839:32;54829:60;;54885:1;54882;54875:12;54829:60;54779:116;:::o;54901:120::-;54973:23;54990:5;54973:23;:::i;:::-;54966:5;54963:34;54953:62;;55011:1;55008;55001:12;54953:62;54901:120;:::o;55027:122::-;55100:24;55118:5;55100:24;:::i;:::-;55093:5;55090:35;55080:63;;55139:1;55136;55129:12;55080:63;55027:122;:::o
Swarm Source
ipfs://4f245c1c41c531c69c0fbd3622ed1a43c69dee888fa0fbba736f834b1abdd8e0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.