ERC-721
Overview
Max Total Supply
1,158 VAYC
Holders
265
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
2 VAYCLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VAYC
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// This file is forked from Solmate v6, /// We stand on the shoulders of giants /// Unnecessary functions have been deleted, mint, safeMint and burn /// Added our own mint functions, tweaked ownerOf to support our weirdness import "./SparkleMarket.sol"; interface IERC721 { function ownerOf(uint256 tokenId) external view returns (address owner); function setOwnerOf(uint256 id, address newOwner) external view returns (address owner); } /// @notice Modern, minimalist, and gas efficient ERC-721 implementation. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol) /// @dev Note that balanceOf does not revert if passed the zero address, in defiance of the ERC. contract VAYC { /*/////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 indexed id); event Approval(address indexed owner, address indexed spender, uint256 indexed id); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /*/////////////////////////////////////////////////////////////// METADATA STORAGE/LOGIC //////////////////////////////////////////////////////////////*/ string private constant NOT_LIVE = "Sale not live"; string private constant INCORRECT_PRICE = "Gotta pay right money"; string private constant MINTED_OUT = "Max supply reached"; string public name; string public symbol; address private admin; uint16 public totalSupply; uint16 public counter = 0; uint16 public constant MAX_SUPPLY = 10000; // only first 10000 were minted IERC721 private MAYC = IERC721(0x60E4d786628Fea6478F785A6d7e704777c86a7c6); IERC721 private BAYC = IERC721(0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D); IERC721 private BAKC = IERC721(0xba30E5F9Bb24caa003E9f2f0497Ad287FDF95623); //function setMAYC(address _mayc) public {MAYC = IERC721(_mayc);} //helper for unit testing //IERC721 private MAYC = IERC721(0x6A8e25D0168B98e240d28a803e71ada93973F856); //IERC721 private BAYC = IERC721(0x6A8e25D0168B98e240d28a803e71ada93973F856); //IERC721 private BAKC = IERC721(address(0xdead)); SparkleMarket public market; uint256 public constant COST_MAYC = 0.042069 ether; uint256 public constant COST_PUBLIC = 0.069420 ether; uint8 constant MAX_MINT = 10; enum SaleStatus { Paused, Presale, Whitelist, Public } SaleStatus public saleMode; /*/////////////////////////////////////////////////////////////// ERC721 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => uint256) public balanceOf; mapping(uint256 => address) private preOf; mapping(uint256 => address) private publicOf; mapping(uint256 => address) public getApproved; mapping(address => mapping(address => bool)) public isApprovedForAll; /*/////////////////////////////////////////////////////////////// ERC721 LOGIC //////////////////////////////////////////////////////////////*/ function ownerOf(uint256 id) public view returns (address) { if (preOf[id] != address(0)) return preOf[id]; else return publicOf[id]; } function approve(address spender, uint256 id) external { address owner = ownerOf(id); require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED"); getApproved[id] = spender; emit Approval(owner, spender, id); } function setApprovalForAll(address operator, bool approved) external { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function transferFrom( address from, address to, uint256 id ) public { require(from == ownerOf(id), "WRONG_FROM"); require(to != address(0), "INVALID_RECIPIENT"); require( msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); // Underflow of the sender's balance is impossible because we check for // ownership above and the recipient's balance can't realistically overflow. unchecked { balanceOf[from]--; balanceOf[to]++; } if (preOf[id] != address(0)) preOf[id] = to; else publicOf[id] = to; delete getApproved[id]; emit Transfer(from, to, id); } function safeTransferFrom( address from, address to, uint256 id ) external { transferFrom(from, to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } function safeTransferFrom( address from, address to, uint256 id, bytes memory data ) external { transferFrom(from, to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } /*/////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) external pure returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721 interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata } modifier onlyAdmin() { require(msg.sender == admin, "must be admin"); _; } /*/////////////////////////////////////////////////////////////// VAYC SPECIFIC LOGIC //////////////////////////////////////////////////////////////*/ constructor(string memory _name, string memory _symbol) { name = _name; symbol = _symbol; admin = msg.sender; market = new SparkleMarket(address(this)); } function saleToPause() external onlyAdmin { saleMode = SaleStatus.Paused; } function saleToPre() external onlyAdmin { saleMode = SaleStatus.Presale; } function saleToWhitelist() external onlyAdmin { saleMode = SaleStatus.Whitelist; } function saleToPublic() external onlyAdmin { saleMode = SaleStatus.Public; } function withdraw() external onlyAdmin { payable(admin).transfer(address(this).balance); } function mintPre(uint[] calldata tokenIds) external payable { require(saleMode == SaleStatus.Presale, NOT_LIVE); require(msg.value == COST_MAYC*tokenIds.length, INCORRECT_PRICE); require(totalSupply + tokenIds.length < MAX_SUPPLY, MINTED_OUT); for (uint i = 0; i < tokenIds.length; i++) { require(msg.sender == MAYC.ownerOf(tokenIds[i]), "Missing required token"); require(tokenIds[i] < MAX_SUPPLY, "TokenId too high"); } for (uint i = 0; i < tokenIds.length; i++) { require(ownerOf(tokenIds[i]) == address(0), "ALREADY_MINTED"); // Counter overflow is incredibly unrealistic. unchecked { balanceOf[msg.sender]++; } preOf[tokenIds[i]] = msg.sender; emit Transfer(address(0), msg.sender, tokenIds[i]); } unchecked{ totalSupply = totalSupply + (uint16(tokenIds.length)); } } function mintWL(uint16 num, uint tokenId) external payable { require(saleMode == SaleStatus.Whitelist, NOT_LIVE); bool baycFan = (msg.sender == MAYC.ownerOf(tokenId)) || (msg.sender == BAYC.ownerOf(tokenId)) || (msg.sender == BAKC.ownerOf(tokenId)); require(baycFan, "Not whitelisted"); require(msg.value == COST_MAYC * num, INCORRECT_PRICE); _mintY(num); } function mintPublic(uint16 num) external payable { require(saleMode == SaleStatus.Public, NOT_LIVE); require(msg.value == COST_PUBLIC * num, INCORRECT_PRICE); _mintY(num); } function _mintY(uint16 num) internal { require(num <= MAX_MINT, "Max 10 per TX"); require(totalSupply + num < MAX_SUPPLY, MINTED_OUT); require(msg.sender.code.length == 0, "Hack harder bot master"); // bypassable, but raises level of effort uint id = counter; uint num_already_minted = 0; while(num_already_minted < num){ if (preOf[id] == address(0)) { publicOf[id] = msg.sender; emit Transfer(address(0), msg.sender, id); num_already_minted += 1; } id += 1; } unchecked { balanceOf[msg.sender] += num; counter = uint16(id); totalSupply = totalSupply + num; } } // This function is here as a fallback in case we get undesirable gas consumption due to the // structure of the preOf array. if it does, the owner can pause the contract, mint the offending // token id and push public supply up to what it needs to be to get over O(n) SREAD operations in // the MAYC Array. // We may use it for promotions & giveaways. // One can monitor the deployment address for suspicious activity if you do not trust the devs. function mintAdmin(uint id, uint16 supplyOverwrite) external onlyAdmin { unchecked { publicOf[id] = msg.sender; counter = supplyOverwrite; balanceOf[msg.sender] += 1; totalSupply += 1; } emit Transfer(address(0), msg.sender, id); } function uintToString(uint256 value) internal pure returns (string memory) { // stolen from OpenZeppelin Strings library // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.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 tokenURI(uint256 id) external view returns (string memory) { if(ownerOf(id) == address(0)) return ""; return string(abi.encodePacked(string(abi.encodePacked("ipfs://QmUupQShChuEV9r6qEKGLpd51qWj4zGtMzkpsCDTuUutJQ/", uintToString(id))), ".json")); // TODO CHANGE MEEEEEE } function marketTransferFrom(address from, address to, uint256 id) external { require(msg.sender == address(market), "INVALID_CALLER"); require(to != address(0), "INVALID_RECIPIENT"); unchecked { balanceOf[from]--; balanceOf[to]++; } if (preOf[id] != address(0)) preOf[id] = to; else publicOf[id] = to; delete getApproved[id]; emit Transfer(from, to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } } /// @notice A generic interface for a contract which properly accepts ERC721 tokens. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol) interface ERC721TokenReceiver { function onERC721Received( address operator, address from, uint256 id, bytes calldata data ) external returns (bytes4); }
//SPDX-License-Identifier: Unlicense pragma solidity >=0.8.0; interface IERC721M { function marketTransferFrom(address from, address to, uint256 tokenId) external; function ownerOf(uint256 tokenId) external view returns (address owner); function isApprovedForAll(address owner, address operator) external view returns (bool); function getApproved(uint tokenId) external view returns (address approved); } contract SparkleMarket { IERC721M public nftContract; uint256 constant NEVER_EXPIRE = 0; address constant ANYBODY = address(0); uint64 constant THE_PAST = 1; struct Listing { uint256 price; address from; address to; uint64 expireTime; } mapping(uint256 => Listing) private listings; event CreateListing( uint256 indexed tokenID, uint256 price, address indexed from, address indexed to, uint64 expireTime ); event CancelListing(address indexed from, uint256 indexed tokenID); event Sale( uint256 indexed tokenID, uint256 price, address indexed from, address indexed to ); constructor(address _nftContract) { nftContract = IERC721M(_nftContract); } function _list(uint256 tokenId, uint256 price, address to, uint64 expireTime) internal { _requireOwnerOrAllowed(tokenId, msg.sender); require(expireTime > block.timestamp || expireTime == NEVER_EXPIRE, "Gotta let the listing have a valid expiration time!"); listings[tokenId] = Listing({price: price, from: nftContract.ownerOf(tokenId), to: to, expireTime: expireTime }); emit CreateListing(tokenId, price, msg.sender, to, expireTime); } function listInWei(uint256 tokenId, uint256 priceInWeiNotEth, address to, uint64 expireTime) external { _list(tokenId, priceInWeiNotEth, to, expireTime); } function listBatchInWei( uint256[] calldata tokenIdList, uint256[] calldata priceListInWeiNotEth, address[] calldata toList, uint64[] calldata expireTimeList) external { for (uint i = 0; i < tokenIdList.length; i++) { _list(tokenIdList[i], priceListInWeiNotEth[i], toList[i], expireTimeList[i]); } } function _requireOwnerOrAllowed(uint256 tokenId, address theAddress) internal view { address tokenOwner = nftContract.ownerOf(tokenId); require(tokenOwner == theAddress || nftContract.isApprovedForAll(tokenOwner, theAddress) || nftContract.getApproved(tokenId) == theAddress, "Address is not owner or approved"); } function cancelListing(uint256[] calldata tokenIdList) external { for (uint i = 0; i < tokenIdList.length; i++) { uint256 tokenId = tokenIdList[i]; _requireOwnerOrAllowed(tokenId, msg.sender); listings[tokenId].expireTime = THE_PAST; emit CancelListing(msg.sender, tokenId); } } function buy(uint256 tokenId) external payable { Listing memory l = listings[tokenId]; require(l.from != address(0) && (l.price != 0 || l.to != address(0)), "Cannot buy an uninitialized listing"); require(l.expireTime > block.timestamp || l.expireTime == NEVER_EXPIRE, "Listing must still be valid to be sold"); require(l.price == msg.value, "must send correct money to pay purchase price"); require(l.from == nftContract.ownerOf(tokenId), "Owner must still own for listing to be valid"); if (l.to != ANYBODY) require(l.to == msg.sender, "if private sale, buyer must match target address the seller wants to sell to"); listings[tokenId].expireTime = THE_PAST; address payable from = payable(nftContract.ownerOf(tokenId)); nftContract.marketTransferFrom(from, msg.sender, tokenId); from.transfer(msg.value); emit Sale(tokenId, msg.value, from, msg.sender); } function buyBatch(uint256[] calldata tokenIdList) external payable { uint sum = 0; for(uint i = 0; i < tokenIdList.length; i++) { uint tokenId = tokenIdList[i]; Listing memory l = listings[tokenId]; require(l.expireTime != 0 || l.price != 0 || l.to != address(0), "Cannot buy an uninitialized listing"); require(l.expireTime > block.timestamp || l.expireTime == NEVER_EXPIRE, "Listing must still be valid to be sold"); require(l.from == nftContract.ownerOf(tokenId), "Owner must still own for listing to be valid"); if (l.to != ANYBODY) require(l.to == msg.sender, "if private sale, buyer must match target address the seller wants to sell to"); sum += l.price; } require(sum == msg.value, "must send correct money to pay purchase price"); for(uint i = 0; i < tokenIdList.length; i++) { uint tokenId = tokenIdList[i]; listings[tokenId].expireTime = THE_PAST; address payable from = payable(nftContract.ownerOf(tokenId)); nftContract.marketTransferFrom(from, msg.sender, tokenId); from.transfer(listings[tokenId].price); } } function getListing(uint256 tokenId) external view returns (Listing memory) { return listings[tokenId]; } function isForSale(uint256 tokenId) external view returns (bool) { if ( listings[tokenId].from != nftContract.ownerOf(tokenId) ) return false; if ( listings[tokenId].expireTime > block.timestamp) return true; bool listingInitialized = (listings[tokenId].price != 0 || listings[tokenId].to != ANYBODY); if (listings[tokenId].expireTime == NEVER_EXPIRE && listingInitialized) return true; return false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"COST_MAYC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COST_PUBLIC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"counter","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"market","outputs":[{"internalType":"contract SparkleMarket","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"marketTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint16","name":"supplyOverwrite","type":"uint16"}],"name":"mintAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintPre","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"num","type":"uint16"}],"name":"mintPublic","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"num","type":"uint16"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mintWL","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleMode","outputs":[{"internalType":"enum VAYC.SaleStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleToPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleToPre","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleToPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleToWhitelist","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":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600260166101000a81548161ffff021916908361ffff1602179055507360e4d786628fea6478f785a6d7e704777c86a7c6600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bc4ca0eda7647a8ab7c2061c2e118a18a936f13d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ba30e5f9bb24caa003e9f2f0497ad287fdf95623600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200012e57600080fd5b5060405162006ef638038062006ef6833981810160405281019062000154919062000384565b81600090805190602001906200016c92919062000248565b5080600190805190602001906200018592919062000248565b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030604051620001d690620002d9565b620001e291906200041a565b604051809103906000f080158015620001ff573d6000803e3d6000fd5b50600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620005ef565b828054620002569062000500565b90600052602060002090601f0160209004810192826200027a5760008555620002c6565b82601f106200029557805160ff1916838001178555620002c6565b82800160010185558215620002c6579182015b82811115620002c5578251825591602001919060010190620002a8565b5b509050620002d59190620002e7565b5090565b6126ed806200480983390190565b5b8082111562000302576000816000905550600101620002e8565b5090565b60006200031d620003178462000460565b62000437565b9050828152602081018484840111156200033c576200033b620005cf565b5b62000349848285620004ca565b509392505050565b600082601f830112620003695762000368620005ca565b5b81516200037b84826020860162000306565b91505092915050565b600080604083850312156200039e576200039d620005d9565b5b600083015167ffffffffffffffff811115620003bf57620003be620005d4565b5b620003cd8582860162000351565b925050602083015167ffffffffffffffff811115620003f157620003f0620005d4565b5b620003ff8582860162000351565b9150509250929050565b620004148162000496565b82525050565b600060208201905062000431600083018462000409565b92915050565b60006200044362000456565b905062000451828262000536565b919050565b6000604051905090565b600067ffffffffffffffff8211156200047e576200047d6200059b565b5b6200048982620005de565b9050602081019050919050565b6000620004a382620004aa565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620004ea578082015181840152602081019050620004cd565b83811115620004fa576000848401525b50505050565b600060028204905060018216806200051957607f821691505b6020821081141562000530576200052f6200056c565b5b50919050565b6200054182620005de565b810181811067ffffffffffffffff821117156200056357620005626200059b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61420a80620005ff6000396000f3fe6080604052600436106101cd5760003560e01c80635ec532e9116100f75780639b9fbc7d11610095578063c87b56dd11610064578063c87b56dd146105fc578063e985e9c514610639578063f2473d9214610676578063ff54f7921461068d576101cd565b80639b9fbc7d14610556578063a22cb46514610581578063b88d4fde146105aa578063ba042bdb146105d3576101cd565b80636352211e116100d15780636352211e1461048657806370a08231146104c357806380f556051461050057806395d89b411461052b576101cd565b80635ec532e9146104075780635fbf6d961461043057806361bc221a1461045b576101cd565b806323b872dd1161016f5780633782d68b1161013e5780633782d68b146103995780633ccfd60b146103b05780633de73a26146103c757806342842e0e146103de576101cd565b806323b872dd146103125780632fe969ab1461033b57806332cb6b0c146103575780633413728b14610382576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630deed6a6146102a057806316755b57146102cb57806318160ddd146102e7576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061325f565b6106a9565b6040516102069190613792565b60405180910390f35b34801561021b57600080fd5b5061022461073b565b60405161023191906137e3565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613326565b6107c9565b60405161026e91906136e1565b60405180910390f35b34801561028357600080fd5b5061029e600480360381019061029991906131d2565b6107fc565b005b3480156102ac57600080fd5b506102b56109ba565b6040516102c291906137c8565b60405180910390f35b6102e560048036038101906102e091906132b9565b6109cd565b005b3480156102f357600080fd5b506102fc610b18565b6040516103099190613985565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906130bc565b610b2c565b005b610355600480360381019061035091906132e6565b610fc0565b005b34801561036357600080fd5b5061036c6113eb565b6040516103799190613985565b60405180910390f35b34801561038e57600080fd5b506103976113f1565b005b3480156103a557600080fd5b506103ae6114ae565b005b3480156103bc57600080fd5b506103c561156b565b005b3480156103d357600080fd5b506103dc611666565b005b3480156103ea57600080fd5b50610405600480360381019061040091906130bc565b611723565b005b34801561041357600080fd5b5061042e60048036038101906104299190613353565b61186a565b005b34801561043c57600080fd5b50610445611a48565b60405161045291906139a0565b60405180910390f35b34801561046757600080fd5b50610470611a53565b60405161047d9190613985565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190613326565b611a67565b6040516104ba91906136e1565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190613022565b611b46565b6040516104f791906139a0565b60405180910390f35b34801561050c57600080fd5b50610515611b5e565b60405161052291906137ad565b60405180910390f35b34801561053757600080fd5b50610540611b84565b60405161054d91906137e3565b60405180910390f35b34801561056257600080fd5b5061056b611c12565b60405161057891906139a0565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190613192565b611c1d565b005b3480156105b657600080fd5b506105d160048036038101906105cc919061310f565b611d1a565b005b3480156105df57600080fd5b506105fa60048036038101906105f591906130bc565b611e64565b005b34801561060857600080fd5b50610623600480360381019061061e9190613326565b6122e1565b60405161063091906137e3565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061307c565b612386565b60405161066d9190613792565b60405180910390f35b34801561068257600080fd5b5061068b6123b5565b005b6106a760048036038101906106a29190613212565b612472565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107345750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000805461074890613cc0565b80601f016020809104026020016040519081016040528092919081815260200182805461077490613cc0565b80156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b505050505081565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061080782611a67565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108c95750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff90613945565b60405180910390fd5b82600a600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600660149054906101000a900460ff1681565b6003808111156109e0576109df613dfb565b5b600660149054906101000a900460ff166003811115610a0257610a01613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c6976650000000000000000000000000000000000000081525090610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7191906137e3565b60405180910390fd5b508061ffff1666f6a11f484ec000610a929190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e6579000000000000000000000081525090610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0291906137e3565b60405180910390fd5b50610b1581612a1f565b50565b600260149054906101000a900461ffff1681565b610b3581611a67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990613965565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990613865565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610caa5750600a600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610d3b5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613945565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed757816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2a565b816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60026003811115610fd457610fd3613dfb565b5b600660149054906101000a900460ff166003811115610ff657610ff5613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c697665000000000000000000000000000000000000008152509061106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106591906137e3565b60405180910390fd5b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016110cc91906139a0565b60206040518083038186803b1580156110e457600080fd5b505afa1580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061122a5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016111ab91906139a0565b60206040518083038186803b1580156111c357600080fd5b505afa1580156111d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fb919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061130a5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161128b91906139a0565b60206040518083038186803b1580156112a357600080fd5b505afa1580156112b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b90508061134c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134390613885565b60405180910390fd5b8261ffff1666957588590e50006113639190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e65790000000000000000000000815250906113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d391906137e3565b60405180910390fd5b506113e683612a1f565b505050565b61271081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613805565b60405180910390fd5b6001600660146101000a81548160ff021916908360038111156114a7576114a6613dfb565b5b0217905550565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590613805565b60405180910390fd5b6002600660146101000a81548160ff0219169083600381111561156457611563613dfb565b5b0217905550565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290613805565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611663573d6000803e3d6000fd5b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90613805565b60405180910390fd5b6003600660146101000a81548160ff0219169083600381111561171c5761171b613dfb565b5b0217905550565b61172e838383610b2c565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480611826575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016117b393929190613748565b602060405180830381600087803b1580156117cd57600080fd5b505af11580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611805919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906138e5565b60405180910390fd5b505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f190613805565b60405180910390fd5b336009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260166101000a81548161ffff021916908361ffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600260148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff160217905550813373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b66f6a11f484ec00081565b600260169054906101000a900461ffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0a576008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611b41565b6009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b919050565b60076020528060005260406000206000915090505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b9190613cc0565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbd90613cc0565b8015611c0a5780601f10611bdf57610100808354040283529160200191611c0a565b820191906000526020600020905b815481529060010190602001808311611bed57829003601f168201915b505050505081565b66957588590e500081565b80600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611d0e9190613792565b60405180910390a35050565b611d25848484610b2c565b60008373ffffffffffffffffffffffffffffffffffffffff163b1480611e1f575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611dac94939291906136fc565b602060405180830381600087803b158015611dc657600080fd5b505af1158015611dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfe919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e55906138e5565b60405180910390fd5b50505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613825565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613865565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c157816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612114565b816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a460008273ffffffffffffffffffffffffffffffffffffffff163b148061229d575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161222a93929190613748565b602060405180830381600087803b15801561224457600080fd5b505af1158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d3906138e5565b60405180910390fd5b505050565b6060600073ffffffffffffffffffffffffffffffffffffffff1661230483611a67565b73ffffffffffffffffffffffffffffffffffffffff16141561233757604051806020016040528060008152509050612381565b61234082612d68565b60405160200161235091906136bf565b60405160208183030381529060405260405160200161236f919061369d565b60405160208183030381529060405290505b919050565b600b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c90613805565b60405180910390fd5b6000600660146101000a81548160ff0219169083600381111561246b5761246a613dfb565b5b0217905550565b6001600381111561248657612485613dfb565b5b600660149054906101000a900460ff1660038111156124a8576124a7613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c6976650000000000000000000000000000000000000081525090612520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251791906137e3565b60405180910390fd5b508181905066957588590e50006125379190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e65790000000000000000000000815250906125b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a791906137e3565b60405180910390fd5b5061271061ffff1682829050600260149054906101000a900461ffff1661ffff166125db9190613a8c565b106040518060400160405280601281526020017f4d617820737570706c792072656163686564000000000000000000000000000081525090612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a91906137e3565b60405180910390fd5b5060005b8282905081101561280757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8484848181106126b3576126b2613e59565b5b905060200201356040518263ffffffff1660e01b81526004016126d691906139a0565b60206040518083038186803b1580156126ee57600080fd5b505afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612726919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278a90613905565b60405180910390fd5b61271061ffff168383838181106127ad576127ac613e59565b5b90506020020135106127f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127eb90613845565b60405180910390fd5b80806127ff90613d23565b915050612657565b5060005b828290508110156129e857600073ffffffffffffffffffffffffffffffffffffffff1661285084848481811061284457612843613e59565b5b90506020020135611a67565b73ffffffffffffffffffffffffffffffffffffffff16146128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90613925565b60405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550336008600085858581811061290d5761290c613e59565b5b90506020020135815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082828281811061297357612972613e59565b5b905060200201353373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806129e090613d23565b91505061280b565b5081819050600260149054906101000a900461ffff1601600260146101000a81548161ffff021916908361ffff1602179055505050565b600a60ff168161ffff161115612a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a61906138c5565b60405180910390fd5b61271061ffff1681600260149054906101000a900461ffff16612a8d9190613a54565b61ffff16106040518060400160405280601281526020017f4d617820737570706c792072656163686564000000000000000000000000000081525090612b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0091906137e3565b60405180910390fd5b5060003373ffffffffffffffffffffffffffffffffffffffff163b14612b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5b906138a5565b60405180910390fd5b6000600260169054906101000a900461ffff1661ffff16905060005b8261ffff16811015612cc657600073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612cb257336009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550813373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600181612caf9190613a8c565b90505b600182612cbf9190613a8c565b9150612b80565b8261ffff16600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260166101000a81548161ffff021916908361ffff16021790555082600260149054906101000a900461ffff1601600260146101000a81548161ffff021916908361ffff160217905550505050565b60606000821415612db0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612ec4565b600082905060005b60008214612de2578080612dcb90613d23565b915050600a82612ddb9190613ae2565b9150612db8565b60008167ffffffffffffffff811115612dfe57612dfd613e88565b5b6040519080825280601f01601f191660200182016040528015612e305781602001600182028036833780820191505090505b5090505b60008514612ebd57600182612e499190613b6d565b9150600a85612e589190613d6c565b6030612e649190613a8c565b60f81b818381518110612e7a57612e79613e59565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612eb69190613ae2565b9450612e34565b8093505050505b919050565b6000612edc612ed7846139e0565b6139bb565b905082815260208101848484011115612ef857612ef7613ec6565b5b612f03848285613c7e565b509392505050565b600081359050612f1a81614161565b92915050565b600081519050612f2f81614161565b92915050565b60008083601f840112612f4b57612f4a613ebc565b5b8235905067ffffffffffffffff811115612f6857612f67613eb7565b5b602083019150836020820283011115612f8457612f83613ec1565b5b9250929050565b600081359050612f9a81614178565b92915050565b600081359050612faf8161418f565b92915050565b600081519050612fc48161418f565b92915050565b600082601f830112612fdf57612fde613ebc565b5b8135612fef848260208601612ec9565b91505092915050565b600081359050613007816141a6565b92915050565b60008135905061301c816141bd565b92915050565b60006020828403121561303857613037613ed0565b5b600061304684828501612f0b565b91505092915050565b60006020828403121561306557613064613ed0565b5b600061307384828501612f20565b91505092915050565b6000806040838503121561309357613092613ed0565b5b60006130a185828601612f0b565b92505060206130b285828601612f0b565b9150509250929050565b6000806000606084860312156130d5576130d4613ed0565b5b60006130e386828701612f0b565b93505060206130f486828701612f0b565b92505060406131058682870161300d565b9150509250925092565b6000806000806080858703121561312957613128613ed0565b5b600061313787828801612f0b565b945050602061314887828801612f0b565b93505060406131598782880161300d565b925050606085013567ffffffffffffffff81111561317a57613179613ecb565b5b61318687828801612fca565b91505092959194509250565b600080604083850312156131a9576131a8613ed0565b5b60006131b785828601612f0b565b92505060206131c885828601612f8b565b9150509250929050565b600080604083850312156131e9576131e8613ed0565b5b60006131f785828601612f0b565b92505060206132088582860161300d565b9150509250929050565b6000806020838503121561322957613228613ed0565b5b600083013567ffffffffffffffff81111561324757613246613ecb565b5b61325385828601612f35565b92509250509250929050565b60006020828403121561327557613274613ed0565b5b600061328384828501612fa0565b91505092915050565b6000602082840312156132a2576132a1613ed0565b5b60006132b084828501612fb5565b91505092915050565b6000602082840312156132cf576132ce613ed0565b5b60006132dd84828501612ff8565b91505092915050565b600080604083850312156132fd576132fc613ed0565b5b600061330b85828601612ff8565b925050602061331c8582860161300d565b9150509250929050565b60006020828403121561333c5761333b613ed0565b5b600061334a8482850161300d565b91505092915050565b6000806040838503121561336a57613369613ed0565b5b60006133788582860161300d565b925050602061338985828601612ff8565b9150509250929050565b61339c81613ba1565b82525050565b6133ab81613bb3565b82525050565b60006133bc82613a11565b6133c68185613a27565b93506133d6818560208601613c8d565b6133df81613ed5565b840191505092915050565b6133f381613c36565b82525050565b61340281613c48565b82525050565b600061341382613a1c565b61341d8185613a38565b935061342d818560208601613c8d565b61343681613ed5565b840191505092915050565b600061344c82613a1c565b6134568185613a49565b9350613466818560208601613c8d565b80840191505092915050565b600061347f600d83613a38565b915061348a82613ee6565b602082019050919050565b60006134a2603683613a49565b91506134ad82613f0f565b603682019050919050565b60006134c5600e83613a38565b91506134d082613f5e565b602082019050919050565b60006134e8601083613a38565b91506134f382613f87565b602082019050919050565b600061350b601183613a38565b915061351682613fb0565b602082019050919050565b600061352e600f83613a38565b915061353982613fd9565b602082019050919050565b6000613551601683613a38565b915061355c82614002565b602082019050919050565b6000613574600d83613a38565b915061357f8261402b565b602082019050919050565b6000613597601083613a38565b91506135a282614054565b602082019050919050565b60006135ba600583613a49565b91506135c58261407d565b600582019050919050565b60006135dd601683613a38565b91506135e8826140a6565b602082019050919050565b6000613600600083613a27565b915061360b826140cf565b600082019050919050565b6000613623600e83613a38565b915061362e826140d2565b602082019050919050565b6000613646600e83613a38565b9150613651826140fb565b602082019050919050565b6000613669600a83613a38565b915061367482614124565b602082019050919050565b61368881613bfe565b82525050565b61369781613c2c565b82525050565b60006136a98284613441565b91506136b4826135ad565b915081905092915050565b60006136ca82613495565b91506136d68284613441565b915081905092915050565b60006020820190506136f66000830184613393565b92915050565b60006080820190506137116000830187613393565b61371e6020830186613393565b61372b604083018561368e565b818103606083015261373d81846133b1565b905095945050505050565b600060808201905061375d6000830186613393565b61376a6020830185613393565b613777604083018461368e565b8181036060830152613788816135f3565b9050949350505050565b60006020820190506137a760008301846133a2565b92915050565b60006020820190506137c260008301846133ea565b92915050565b60006020820190506137dd60008301846133f9565b92915050565b600060208201905081810360008301526137fd8184613408565b905092915050565b6000602082019050818103600083015261381e81613472565b9050919050565b6000602082019050818103600083015261383e816134b8565b9050919050565b6000602082019050818103600083015261385e816134db565b9050919050565b6000602082019050818103600083015261387e816134fe565b9050919050565b6000602082019050818103600083015261389e81613521565b9050919050565b600060208201905081810360008301526138be81613544565b9050919050565b600060208201905081810360008301526138de81613567565b9050919050565b600060208201905081810360008301526138fe8161358a565b9050919050565b6000602082019050818103600083015261391e816135d0565b9050919050565b6000602082019050818103600083015261393e81613616565b9050919050565b6000602082019050818103600083015261395e81613639565b9050919050565b6000602082019050818103600083015261397e8161365c565b9050919050565b600060208201905061399a600083018461367f565b92915050565b60006020820190506139b5600083018461368e565b92915050565b60006139c56139d6565b90506139d18282613cf2565b919050565b6000604051905090565b600067ffffffffffffffff8211156139fb576139fa613e88565b5b613a0482613ed5565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613a5f82613bfe565b9150613a6a83613bfe565b92508261ffff03821115613a8157613a80613d9d565b5b828201905092915050565b6000613a9782613c2c565b9150613aa283613c2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ad757613ad6613d9d565b5b828201905092915050565b6000613aed82613c2c565b9150613af883613c2c565b925082613b0857613b07613dcc565b5b828204905092915050565b6000613b1e82613c2c565b9150613b2983613c2c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b6257613b61613d9d565b5b828202905092915050565b6000613b7882613c2c565b9150613b8383613c2c565b925082821015613b9657613b95613d9d565b5b828203905092915050565b6000613bac82613c0c565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613bf98261414d565b919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613c4182613c5a565b9050919050565b6000613c5382613beb565b9050919050565b6000613c6582613c6c565b9050919050565b6000613c7782613c0c565b9050919050565b82818337600083830152505050565b60005b83811015613cab578082015181840152602081019050613c90565b83811115613cba576000848401525b50505050565b60006002820490506001821680613cd857607f821691505b60208210811415613cec57613ceb613e2a565b5b50919050565b613cfb82613ed5565b810181811067ffffffffffffffff82111715613d1a57613d19613e88565b5b80604052505050565b6000613d2e82613c2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d6157613d60613d9d565b5b600182019050919050565b6000613d7782613c2c565b9150613d8283613c2c565b925082613d9257613d91613dcc565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f6d7573742062652061646d696e00000000000000000000000000000000000000600082015250565b7f697066733a2f2f516d557570515368436875455639723671454b474c7064353160008201527f71576a347a47744d7a6b7073434454755575744a512f00000000000000000000602082015250565b7f494e56414c49445f43414c4c4552000000000000000000000000000000000000600082015250565b7f546f6b656e496420746f6f206869676800000000000000000000000000000000600082015250565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b7f4861636b2068617264657220626f74206d617374657200000000000000000000600082015250565b7f4d61782031302070657220545800000000000000000000000000000000000000600082015250565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4d697373696e6720726571756972656420746f6b656e00000000000000000000600082015250565b50565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b6004811061415e5761415d613dfb565b5b50565b61416a81613ba1565b811461417557600080fd5b50565b61418181613bb3565b811461418c57600080fd5b50565b61419881613bbf565b81146141a357600080fd5b50565b6141af81613bfe565b81146141ba57600080fd5b50565b6141c681613c2c565b81146141d157600080fd5b5056fea264697066735822122048d2284bf2a9682bcafb2d0db3adfe8834ee5f6ed4a313f77b95c200880d0add64736f6c6343000807003360806040523480156200001157600080fd5b50604051620026ed380380620026ed833981810160405281019062000037919062000095565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200011a565b6000815190506200008f8162000100565b92915050565b600060208284031215620000ae57620000ad620000fb565b5b6000620000be848285016200007e565b91505092915050565b6000620000d482620000db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200010b81620000c7565b81146200011757600080fd5b50565b6125c3806200012a6000396000f3fe60806040526004361061007b5760003560e01c806392e2b44f1161004e57806392e2b44f1461014c578063d4257fa214610175578063d56d229d14610191578063d96a094a146101bc5761007b565b80630d95927414610080578063107a274a146100a95780637f8f608f146100e65780638546d0021461010f575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611bc0565b6101d8565b005b3480156100b557600080fd5b506100d060048036038101906100cb9190611cd6565b610290565b6040516100dd91906120de565b60405180910390f35b3480156100f257600080fd5b5061010d60048036038101906101089190611d03565b6103a5565b005b34801561011b57600080fd5b5061013660048036038101906101319190611cd6565b6103b7565b6040516101439190611fc8565b60405180910390f35b34801561015857600080fd5b50610173600480360381019061016e9190611b73565b610600565b005b61018f600480360381019061018a9190611b73565b6106d0565b005b34801561019d57600080fd5b506101a6610d5b565b6040516101b39190611fe3565b60405180910390f35b6101d660048036038101906101d19190611cd6565b610d7f565b005b60005b88889050811015610285576102728989838181106101fc576101fb6122c0565b5b90506020020135888884818110610216576102156122c0565b5b905060200201358787858181106102305761022f6122c0565b5b90506020020160208101906102459190611b19565b868686818110610258576102576122c0565b5b905060200201602081019061026d9190611d6a565b6113ea565b808061027d90612248565b9150506101db565b505050505050505050565b610298611950565b60016000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050919050565b6103b1848484846113ea565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161041391906120f9565b60206040518083038186803b15801561042b57600080fd5b505afa15801561043f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104639190611b46565b73ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104d457600090506105fb565b426001600084815260200190815260200160002060020160149054906101000a900467ffffffffffffffff1667ffffffffffffffff16111561051957600190506105fb565b60008060016000858152602001908152602001600020600001541415806105a35750600073ffffffffffffffffffffffffffffffffffffffff166001600085815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b905060006001600085815260200190815260200160002060020160149054906101000a900467ffffffffffffffff1667ffffffffffffffff161480156105e65750805b156105f55760019150506105fb565b60009150505b919050565b60005b828290508110156106cb576000838383818110610623576106226122c0565b5b905060200201359050610636813361169f565b600180600083815260200190815260200160002060020160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff167fd7d8a397f85cc002af4ce25b0df0dfe88d9cd7cc58b802a3425a5704b9785f4860405160405180910390a35080806106c390612248565b915050610603565b505050565b6000805b83839050811015610afa5760008484838181106106f4576106f36122c0565b5b905060200201359050600060016000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505090506000816060015167ffffffffffffffff1614158061082a57506000816000015114155b806108665750600073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614155b6108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c9061203e565b60405180910390fd5b42816060015167ffffffffffffffff1611806108cf57506000816060015167ffffffffffffffff16145b61090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590611ffe565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161096791906120f9565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190611b46565b73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f906120be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614610ad3573373ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99061207e565b60405180910390fd5b5b806000015184610ae3919061214e565b935050508080610af290612248565b9150506106d4565b50348114610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b349061205e565b60405180910390fd5b60005b83839050811015610d55576000848483818110610b6057610b5f6122c0565b5b905060200201359050600180600083815260200190815260200160002060020160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610c0291906120f9565b60206040518083038186803b158015610c1a57600080fd5b505afa158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c529190611b46565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ba042bdb8233856040518463ffffffff1660e01b8152600401610cb193929190611f68565b600060405180830381600087803b158015610ccb57600080fd5b505af1158015610cdf573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166108fc60016000858152602001908152602001600020600001549081150290604051600060405180830381858888f19350505050158015610d3f573d6000803e3d6000fd5b5050508080610d4d90612248565b915050610b40565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060016000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614158015610f0b575060008160000151141580610f0a5750600073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614155b5b610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f419061203e565b60405180910390fd5b42816060015167ffffffffffffffff161180610f7457506000816060015167ffffffffffffffff16145b610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90611ffe565b60405180910390fd5b34816000015114610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff09061205e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161105291906120f9565b60206040518083038186803b15801561106a57600080fd5b505afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a29190611b46565b73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a906120be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff16146111be573373ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff16146111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b49061207e565b60405180910390fd5b5b600180600084815260200190815260200160002060020160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b815260040161125791906120f9565b60206040518083038186803b15801561126f57600080fd5b505afa158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a79190611b46565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ba042bdb8233866040518463ffffffff1660e01b815260040161130693929190611f68565b600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561137e573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc7b10d5e70b7d260a37f32eff1db44491e5536982a881b0db04afc265028c24c346040516113dd91906120f9565b60405180910390a4505050565b6113f4843361169f565b428167ffffffffffffffff161180611416575060008167ffffffffffffffff16145b611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061201e565b60405180910390fd5b604051806080016040528084815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e876040518263ffffffff1660e01b81526004016114bf91906120f9565b60206040518083038186803b1580156114d757600080fd5b505afa1580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190611b46565b73ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff16815250600160008681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16857fa97ff6a3075766a680042510a5d87aeb6da850859b5594ff2057cde43e1f6a888685604051611691929190612114565b60405180910390a450505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004016116fb91906120f9565b60206040518083038186803b15801561171357600080fd5b505afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b9190611b46565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061182e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c582846040518363ffffffff1660e01b81526004016117dd929190611f9f565b60206040518083038186803b1580156117f557600080fd5b505afa158015611809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182d9190611ca9565b5b8061190c57508173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663081812fc856040518263ffffffff1660e01b81526004016118a491906120f9565b60206040518083038186803b1580156118bc57600080fd5b505afa1580156118d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f49190611b46565b73ffffffffffffffffffffffffffffffffffffffff16145b61194b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119429061209e565b60405180910390fd5b505050565b604051806080016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000813590506119bd81612531565b92915050565b6000815190506119d281612531565b92915050565b60008083601f8401126119ee576119ed6122f4565b5b8235905067ffffffffffffffff811115611a0b57611a0a6122ef565b5b602083019150836020820283011115611a2757611a266122f9565b5b9250929050565b60008083601f840112611a4457611a436122f4565b5b8235905067ffffffffffffffff811115611a6157611a606122ef565b5b602083019150836020820283011115611a7d57611a7c6122f9565b5b9250929050565b60008083601f840112611a9a57611a996122f4565b5b8235905067ffffffffffffffff811115611ab757611ab66122ef565b5b602083019150836020820283011115611ad357611ad26122f9565b5b9250929050565b600081519050611ae981612548565b92915050565b600081359050611afe8161255f565b92915050565b600081359050611b1381612576565b92915050565b600060208284031215611b2f57611b2e612303565b5b6000611b3d848285016119ae565b91505092915050565b600060208284031215611b5c57611b5b612303565b5b6000611b6a848285016119c3565b91505092915050565b60008060208385031215611b8a57611b89612303565b5b600083013567ffffffffffffffff811115611ba857611ba76122fe565b5b611bb485828601611a2e565b92509250509250929050565b6000806000806000806000806080898b031215611be057611bdf612303565b5b600089013567ffffffffffffffff811115611bfe57611bfd6122fe565b5b611c0a8b828c01611a2e565b9850985050602089013567ffffffffffffffff811115611c2d57611c2c6122fe565b5b611c398b828c01611a2e565b9650965050604089013567ffffffffffffffff811115611c5c57611c5b6122fe565b5b611c688b828c016119d8565b9450945050606089013567ffffffffffffffff811115611c8b57611c8a6122fe565b5b611c978b828c01611a84565b92509250509295985092959890939650565b600060208284031215611cbf57611cbe612303565b5b6000611ccd84828501611ada565b91505092915050565b600060208284031215611cec57611ceb612303565b5b6000611cfa84828501611aef565b91505092915050565b60008060008060808587031215611d1d57611d1c612303565b5b6000611d2b87828801611aef565b9450506020611d3c87828801611aef565b9350506040611d4d878288016119ae565b9250506060611d5e87828801611b04565b91505092959194509250565b600060208284031215611d8057611d7f612303565b5b6000611d8e84828501611b04565b91505092915050565b611da081612200565b82525050565b611daf816121a4565b82525050565b611dbe816121a4565b82525050565b611dcd816121b6565b82525050565b611ddc81612212565b82525050565b6000611def60268361213d565b9150611dfa82612308565b604082019050919050565b6000611e1260338361213d565b9150611e1d82612357565b604082019050919050565b6000611e3560238361213d565b9150611e40826123a6565b604082019050919050565b6000611e58602d8361213d565b9150611e63826123f5565b604082019050919050565b6000611e7b604c8361213d565b9150611e8682612444565b606082019050919050565b6000611e9e60208361213d565b9150611ea9826124b9565b602082019050919050565b6000611ec1602c8361213d565b9150611ecc826124e2565b604082019050919050565b608082016000820151611eed6000850182611f2c565b506020820151611f006020850182611da6565b506040820151611f136040850182611da6565b506060820151611f266060850182611f4a565b50505050565b611f35816121e2565b82525050565b611f44816121e2565b82525050565b611f53816121ec565b82525050565b611f62816121ec565b82525050565b6000606082019050611f7d6000830186611d97565b611f8a6020830185611db5565b611f976040830184611f3b565b949350505050565b6000604082019050611fb46000830185611db5565b611fc16020830184611db5565b9392505050565b6000602082019050611fdd6000830184611dc4565b92915050565b6000602082019050611ff86000830184611dd3565b92915050565b6000602082019050818103600083015261201781611de2565b9050919050565b6000602082019050818103600083015261203781611e05565b9050919050565b6000602082019050818103600083015261205781611e28565b9050919050565b6000602082019050818103600083015261207781611e4b565b9050919050565b6000602082019050818103600083015261209781611e6e565b9050919050565b600060208201905081810360008301526120b781611e91565b9050919050565b600060208201905081810360008301526120d781611eb4565b9050919050565b60006080820190506120f36000830184611ed7565b92915050565b600060208201905061210e6000830184611f3b565b92915050565b60006040820190506121296000830185611f3b565b6121366020830184611f59565b9392505050565b600082825260208201905092915050565b6000612159826121e2565b9150612164836121e2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561219957612198612291565b5b828201905092915050565b60006121af826121c2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600061220b82612224565b9050919050565b600061221d82612224565b9050919050565b600061222f82612236565b9050919050565b6000612241826121c2565b9050919050565b6000612253826121e2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561228657612285612291565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b7f4c697374696e67206d757374207374696c6c2062652076616c696420746f206260008201527f6520736f6c640000000000000000000000000000000000000000000000000000602082015250565b7f476f747461206c657420746865206c697374696e67206861766520612076616c60008201527f69642065787069726174696f6e2074696d652100000000000000000000000000602082015250565b7f43616e6e6f742062757920616e20756e696e697469616c697a6564206c69737460008201527f696e670000000000000000000000000000000000000000000000000000000000602082015250565b7f6d7573742073656e6420636f7272656374206d6f6e657920746f20706179207060008201527f7572636861736520707269636500000000000000000000000000000000000000602082015250565b7f696620707269766174652073616c652c206275796572206d757374206d61746360008201527f68207461726765742061646472657373207468652073656c6c65722077616e7460208201527f7320746f2073656c6c20746f0000000000000000000000000000000000000000604082015250565b7f41646472657373206973206e6f74206f776e6572206f7220617070726f766564600082015250565b7f4f776e6572206d757374207374696c6c206f776e20666f72206c697374696e6760008201527f20746f2062652076616c69640000000000000000000000000000000000000000602082015250565b61253a816121a4565b811461254557600080fd5b50565b612551816121b6565b811461255c57600080fd5b50565b612568816121e2565b811461257357600080fd5b50565b61257f816121ec565b811461258a57600080fd5b5056fea264697066735822122024735fe59e5ceeba966336438965628a8005ba9984122fcb376e4aa6c6d909eb64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004564159430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045641594300000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c80635ec532e9116100f75780639b9fbc7d11610095578063c87b56dd11610064578063c87b56dd146105fc578063e985e9c514610639578063f2473d9214610676578063ff54f7921461068d576101cd565b80639b9fbc7d14610556578063a22cb46514610581578063b88d4fde146105aa578063ba042bdb146105d3576101cd565b80636352211e116100d15780636352211e1461048657806370a08231146104c357806380f556051461050057806395d89b411461052b576101cd565b80635ec532e9146104075780635fbf6d961461043057806361bc221a1461045b576101cd565b806323b872dd1161016f5780633782d68b1161013e5780633782d68b146103995780633ccfd60b146103b05780633de73a26146103c757806342842e0e146103de576101cd565b806323b872dd146103125780632fe969ab1461033b57806332cb6b0c146103575780633413728b14610382576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630deed6a6146102a057806316755b57146102cb57806318160ddd146102e7576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061325f565b6106a9565b6040516102069190613792565b60405180910390f35b34801561021b57600080fd5b5061022461073b565b60405161023191906137e3565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613326565b6107c9565b60405161026e91906136e1565b60405180910390f35b34801561028357600080fd5b5061029e600480360381019061029991906131d2565b6107fc565b005b3480156102ac57600080fd5b506102b56109ba565b6040516102c291906137c8565b60405180910390f35b6102e560048036038101906102e091906132b9565b6109cd565b005b3480156102f357600080fd5b506102fc610b18565b6040516103099190613985565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906130bc565b610b2c565b005b610355600480360381019061035091906132e6565b610fc0565b005b34801561036357600080fd5b5061036c6113eb565b6040516103799190613985565b60405180910390f35b34801561038e57600080fd5b506103976113f1565b005b3480156103a557600080fd5b506103ae6114ae565b005b3480156103bc57600080fd5b506103c561156b565b005b3480156103d357600080fd5b506103dc611666565b005b3480156103ea57600080fd5b50610405600480360381019061040091906130bc565b611723565b005b34801561041357600080fd5b5061042e60048036038101906104299190613353565b61186a565b005b34801561043c57600080fd5b50610445611a48565b60405161045291906139a0565b60405180910390f35b34801561046757600080fd5b50610470611a53565b60405161047d9190613985565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190613326565b611a67565b6040516104ba91906136e1565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190613022565b611b46565b6040516104f791906139a0565b60405180910390f35b34801561050c57600080fd5b50610515611b5e565b60405161052291906137ad565b60405180910390f35b34801561053757600080fd5b50610540611b84565b60405161054d91906137e3565b60405180910390f35b34801561056257600080fd5b5061056b611c12565b60405161057891906139a0565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190613192565b611c1d565b005b3480156105b657600080fd5b506105d160048036038101906105cc919061310f565b611d1a565b005b3480156105df57600080fd5b506105fa60048036038101906105f591906130bc565b611e64565b005b34801561060857600080fd5b50610623600480360381019061061e9190613326565b6122e1565b60405161063091906137e3565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b919061307c565b612386565b60405161066d9190613792565b60405180910390f35b34801561068257600080fd5b5061068b6123b5565b005b6106a760048036038101906106a29190613212565b612472565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107345750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000805461074890613cc0565b80601f016020809104026020016040519081016040528092919081815260200182805461077490613cc0565b80156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b505050505081565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061080782611a67565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108c95750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff90613945565b60405180910390fd5b82600a600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600660149054906101000a900460ff1681565b6003808111156109e0576109df613dfb565b5b600660149054906101000a900460ff166003811115610a0257610a01613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c6976650000000000000000000000000000000000000081525090610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7191906137e3565b60405180910390fd5b508061ffff1666f6a11f484ec000610a929190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e6579000000000000000000000081525090610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0291906137e3565b60405180910390fd5b50610b1581612a1f565b50565b600260149054906101000a900461ffff1681565b610b3581611a67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990613965565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990613865565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610caa5750600a600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610d3b5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613945565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed757816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2a565b816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60026003811115610fd457610fd3613dfb565b5b600660149054906101000a900460ff166003811115610ff657610ff5613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c697665000000000000000000000000000000000000008152509061106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106591906137e3565b60405180910390fd5b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016110cc91906139a0565b60206040518083038186803b1580156110e457600080fd5b505afa1580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061122a5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016111ab91906139a0565b60206040518083038186803b1580156111c357600080fd5b505afa1580156111d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fb919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061130a5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161128b91906139a0565b60206040518083038186803b1580156112a357600080fd5b505afa1580156112b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b90508061134c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134390613885565b60405180910390fd5b8261ffff1666957588590e50006113639190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e65790000000000000000000000815250906113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d391906137e3565b60405180910390fd5b506113e683612a1f565b505050565b61271081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613805565b60405180910390fd5b6001600660146101000a81548160ff021916908360038111156114a7576114a6613dfb565b5b0217905550565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590613805565b60405180910390fd5b6002600660146101000a81548160ff0219169083600381111561156457611563613dfb565b5b0217905550565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290613805565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611663573d6000803e3d6000fd5b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90613805565b60405180910390fd5b6003600660146101000a81548160ff0219169083600381111561171c5761171b613dfb565b5b0217905550565b61172e838383610b2c565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480611826575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016117b393929190613748565b602060405180830381600087803b1580156117cd57600080fd5b505af11580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611805919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906138e5565b60405180910390fd5b505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f190613805565b60405180910390fd5b336009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260166101000a81548161ffff021916908361ffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001600260148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff160217905550813373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b66f6a11f484ec00081565b600260169054906101000a900461ffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0a576008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611b41565b6009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b919050565b60076020528060005260406000206000915090505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b9190613cc0565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbd90613cc0565b8015611c0a5780601f10611bdf57610100808354040283529160200191611c0a565b820191906000526020600020905b815481529060010190602001808311611bed57829003601f168201915b505050505081565b66957588590e500081565b80600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611d0e9190613792565b60405180910390a35050565b611d25848484610b2c565b60008373ffffffffffffffffffffffffffffffffffffffff163b1480611e1f575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611dac94939291906136fc565b602060405180830381600087803b158015611dc657600080fd5b505af1158015611dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfe919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e55906138e5565b60405180910390fd5b50505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613825565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613865565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c157816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612114565b816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600a600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a460008273ffffffffffffffffffffffffffffffffffffffff163b148061229d575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161222a93929190613748565b602060405180830381600087803b15801561224457600080fd5b505af1158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c919061328c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d3906138e5565b60405180910390fd5b505050565b6060600073ffffffffffffffffffffffffffffffffffffffff1661230483611a67565b73ffffffffffffffffffffffffffffffffffffffff16141561233757604051806020016040528060008152509050612381565b61234082612d68565b60405160200161235091906136bf565b60405160208183030381529060405260405160200161236f919061369d565b60405160208183030381529060405290505b919050565b600b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c90613805565b60405180910390fd5b6000600660146101000a81548160ff0219169083600381111561246b5761246a613dfb565b5b0217905550565b6001600381111561248657612485613dfb565b5b600660149054906101000a900460ff1660038111156124a8576124a7613dfb565b5b146040518060400160405280600d81526020017f53616c65206e6f74206c6976650000000000000000000000000000000000000081525090612520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251791906137e3565b60405180910390fd5b508181905066957588590e50006125379190613b13565b34146040518060400160405280601581526020017f476f74746120706179207269676874206d6f6e65790000000000000000000000815250906125b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a791906137e3565b60405180910390fd5b5061271061ffff1682829050600260149054906101000a900461ffff1661ffff166125db9190613a8c565b106040518060400160405280601281526020017f4d617820737570706c792072656163686564000000000000000000000000000081525090612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a91906137e3565b60405180910390fd5b5060005b8282905081101561280757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8484848181106126b3576126b2613e59565b5b905060200201356040518263ffffffff1660e01b81526004016126d691906139a0565b60206040518083038186803b1580156126ee57600080fd5b505afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612726919061304f565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278a90613905565b60405180910390fd5b61271061ffff168383838181106127ad576127ac613e59565b5b90506020020135106127f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127eb90613845565b60405180910390fd5b80806127ff90613d23565b915050612657565b5060005b828290508110156129e857600073ffffffffffffffffffffffffffffffffffffffff1661285084848481811061284457612843613e59565b5b90506020020135611a67565b73ffffffffffffffffffffffffffffffffffffffff16146128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90613925565b60405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550336008600085858581811061290d5761290c613e59565b5b90506020020135815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082828281811061297357612972613e59565b5b905060200201353373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806129e090613d23565b91505061280b565b5081819050600260149054906101000a900461ffff1601600260146101000a81548161ffff021916908361ffff1602179055505050565b600a60ff168161ffff161115612a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a61906138c5565b60405180910390fd5b61271061ffff1681600260149054906101000a900461ffff16612a8d9190613a54565b61ffff16106040518060400160405280601281526020017f4d617820737570706c792072656163686564000000000000000000000000000081525090612b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0091906137e3565b60405180910390fd5b5060003373ffffffffffffffffffffffffffffffffffffffff163b14612b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5b906138a5565b60405180910390fd5b6000600260169054906101000a900461ffff1661ffff16905060005b8261ffff16811015612cc657600073ffffffffffffffffffffffffffffffffffffffff166008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612cb257336009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550813373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600181612caf9190613a8c565b90505b600182612cbf9190613a8c565b9150612b80565b8261ffff16600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260166101000a81548161ffff021916908361ffff16021790555082600260149054906101000a900461ffff1601600260146101000a81548161ffff021916908361ffff160217905550505050565b60606000821415612db0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612ec4565b600082905060005b60008214612de2578080612dcb90613d23565b915050600a82612ddb9190613ae2565b9150612db8565b60008167ffffffffffffffff811115612dfe57612dfd613e88565b5b6040519080825280601f01601f191660200182016040528015612e305781602001600182028036833780820191505090505b5090505b60008514612ebd57600182612e499190613b6d565b9150600a85612e589190613d6c565b6030612e649190613a8c565b60f81b818381518110612e7a57612e79613e59565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612eb69190613ae2565b9450612e34565b8093505050505b919050565b6000612edc612ed7846139e0565b6139bb565b905082815260208101848484011115612ef857612ef7613ec6565b5b612f03848285613c7e565b509392505050565b600081359050612f1a81614161565b92915050565b600081519050612f2f81614161565b92915050565b60008083601f840112612f4b57612f4a613ebc565b5b8235905067ffffffffffffffff811115612f6857612f67613eb7565b5b602083019150836020820283011115612f8457612f83613ec1565b5b9250929050565b600081359050612f9a81614178565b92915050565b600081359050612faf8161418f565b92915050565b600081519050612fc48161418f565b92915050565b600082601f830112612fdf57612fde613ebc565b5b8135612fef848260208601612ec9565b91505092915050565b600081359050613007816141a6565b92915050565b60008135905061301c816141bd565b92915050565b60006020828403121561303857613037613ed0565b5b600061304684828501612f0b565b91505092915050565b60006020828403121561306557613064613ed0565b5b600061307384828501612f20565b91505092915050565b6000806040838503121561309357613092613ed0565b5b60006130a185828601612f0b565b92505060206130b285828601612f0b565b9150509250929050565b6000806000606084860312156130d5576130d4613ed0565b5b60006130e386828701612f0b565b93505060206130f486828701612f0b565b92505060406131058682870161300d565b9150509250925092565b6000806000806080858703121561312957613128613ed0565b5b600061313787828801612f0b565b945050602061314887828801612f0b565b93505060406131598782880161300d565b925050606085013567ffffffffffffffff81111561317a57613179613ecb565b5b61318687828801612fca565b91505092959194509250565b600080604083850312156131a9576131a8613ed0565b5b60006131b785828601612f0b565b92505060206131c885828601612f8b565b9150509250929050565b600080604083850312156131e9576131e8613ed0565b5b60006131f785828601612f0b565b92505060206132088582860161300d565b9150509250929050565b6000806020838503121561322957613228613ed0565b5b600083013567ffffffffffffffff81111561324757613246613ecb565b5b61325385828601612f35565b92509250509250929050565b60006020828403121561327557613274613ed0565b5b600061328384828501612fa0565b91505092915050565b6000602082840312156132a2576132a1613ed0565b5b60006132b084828501612fb5565b91505092915050565b6000602082840312156132cf576132ce613ed0565b5b60006132dd84828501612ff8565b91505092915050565b600080604083850312156132fd576132fc613ed0565b5b600061330b85828601612ff8565b925050602061331c8582860161300d565b9150509250929050565b60006020828403121561333c5761333b613ed0565b5b600061334a8482850161300d565b91505092915050565b6000806040838503121561336a57613369613ed0565b5b60006133788582860161300d565b925050602061338985828601612ff8565b9150509250929050565b61339c81613ba1565b82525050565b6133ab81613bb3565b82525050565b60006133bc82613a11565b6133c68185613a27565b93506133d6818560208601613c8d565b6133df81613ed5565b840191505092915050565b6133f381613c36565b82525050565b61340281613c48565b82525050565b600061341382613a1c565b61341d8185613a38565b935061342d818560208601613c8d565b61343681613ed5565b840191505092915050565b600061344c82613a1c565b6134568185613a49565b9350613466818560208601613c8d565b80840191505092915050565b600061347f600d83613a38565b915061348a82613ee6565b602082019050919050565b60006134a2603683613a49565b91506134ad82613f0f565b603682019050919050565b60006134c5600e83613a38565b91506134d082613f5e565b602082019050919050565b60006134e8601083613a38565b91506134f382613f87565b602082019050919050565b600061350b601183613a38565b915061351682613fb0565b602082019050919050565b600061352e600f83613a38565b915061353982613fd9565b602082019050919050565b6000613551601683613a38565b915061355c82614002565b602082019050919050565b6000613574600d83613a38565b915061357f8261402b565b602082019050919050565b6000613597601083613a38565b91506135a282614054565b602082019050919050565b60006135ba600583613a49565b91506135c58261407d565b600582019050919050565b60006135dd601683613a38565b91506135e8826140a6565b602082019050919050565b6000613600600083613a27565b915061360b826140cf565b600082019050919050565b6000613623600e83613a38565b915061362e826140d2565b602082019050919050565b6000613646600e83613a38565b9150613651826140fb565b602082019050919050565b6000613669600a83613a38565b915061367482614124565b602082019050919050565b61368881613bfe565b82525050565b61369781613c2c565b82525050565b60006136a98284613441565b91506136b4826135ad565b915081905092915050565b60006136ca82613495565b91506136d68284613441565b915081905092915050565b60006020820190506136f66000830184613393565b92915050565b60006080820190506137116000830187613393565b61371e6020830186613393565b61372b604083018561368e565b818103606083015261373d81846133b1565b905095945050505050565b600060808201905061375d6000830186613393565b61376a6020830185613393565b613777604083018461368e565b8181036060830152613788816135f3565b9050949350505050565b60006020820190506137a760008301846133a2565b92915050565b60006020820190506137c260008301846133ea565b92915050565b60006020820190506137dd60008301846133f9565b92915050565b600060208201905081810360008301526137fd8184613408565b905092915050565b6000602082019050818103600083015261381e81613472565b9050919050565b6000602082019050818103600083015261383e816134b8565b9050919050565b6000602082019050818103600083015261385e816134db565b9050919050565b6000602082019050818103600083015261387e816134fe565b9050919050565b6000602082019050818103600083015261389e81613521565b9050919050565b600060208201905081810360008301526138be81613544565b9050919050565b600060208201905081810360008301526138de81613567565b9050919050565b600060208201905081810360008301526138fe8161358a565b9050919050565b6000602082019050818103600083015261391e816135d0565b9050919050565b6000602082019050818103600083015261393e81613616565b9050919050565b6000602082019050818103600083015261395e81613639565b9050919050565b6000602082019050818103600083015261397e8161365c565b9050919050565b600060208201905061399a600083018461367f565b92915050565b60006020820190506139b5600083018461368e565b92915050565b60006139c56139d6565b90506139d18282613cf2565b919050565b6000604051905090565b600067ffffffffffffffff8211156139fb576139fa613e88565b5b613a0482613ed5565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613a5f82613bfe565b9150613a6a83613bfe565b92508261ffff03821115613a8157613a80613d9d565b5b828201905092915050565b6000613a9782613c2c565b9150613aa283613c2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ad757613ad6613d9d565b5b828201905092915050565b6000613aed82613c2c565b9150613af883613c2c565b925082613b0857613b07613dcc565b5b828204905092915050565b6000613b1e82613c2c565b9150613b2983613c2c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b6257613b61613d9d565b5b828202905092915050565b6000613b7882613c2c565b9150613b8383613c2c565b925082821015613b9657613b95613d9d565b5b828203905092915050565b6000613bac82613c0c565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613bf98261414d565b919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613c4182613c5a565b9050919050565b6000613c5382613beb565b9050919050565b6000613c6582613c6c565b9050919050565b6000613c7782613c0c565b9050919050565b82818337600083830152505050565b60005b83811015613cab578082015181840152602081019050613c90565b83811115613cba576000848401525b50505050565b60006002820490506001821680613cd857607f821691505b60208210811415613cec57613ceb613e2a565b5b50919050565b613cfb82613ed5565b810181811067ffffffffffffffff82111715613d1a57613d19613e88565b5b80604052505050565b6000613d2e82613c2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d6157613d60613d9d565b5b600182019050919050565b6000613d7782613c2c565b9150613d8283613c2c565b925082613d9257613d91613dcc565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f6d7573742062652061646d696e00000000000000000000000000000000000000600082015250565b7f697066733a2f2f516d557570515368436875455639723671454b474c7064353160008201527f71576a347a47744d7a6b7073434454755575744a512f00000000000000000000602082015250565b7f494e56414c49445f43414c4c4552000000000000000000000000000000000000600082015250565b7f546f6b656e496420746f6f206869676800000000000000000000000000000000600082015250565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b7f4861636b2068617264657220626f74206d617374657200000000000000000000600082015250565b7f4d61782031302070657220545800000000000000000000000000000000000000600082015250565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4d697373696e6720726571756972656420746f6b656e00000000000000000000600082015250565b50565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b6004811061415e5761415d613dfb565b5b50565b61416a81613ba1565b811461417557600080fd5b50565b61418181613bb3565b811461418c57600080fd5b50565b61419881613bbf565b81146141a357600080fd5b50565b6141af81613bfe565b81146141ba57600080fd5b50565b6141c681613c2c565b81146141d157600080fd5b5056fea264697066735822122048d2284bf2a9682bcafb2d0db3adfe8834ee5f6ed4a313f77b95c200880d0add64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004564159430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045641594300000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): VAYC
Arg [1] : _symbol (string): VAYC
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 5641594300000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 5641594300000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
783:11293:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1625:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3069:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3565:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2678:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8596:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1704:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4049:812;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8153:437;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1766:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6779:86;;;;;;;;;;;;;:::i;:::-;;6871:94;;;;;;;;;;;;;:::i;:::-;;7065:102;;;;;;;;;;;;;:::i;:::-;;6971:88;;;;;;;;;;;;;:::i;:::-;;4867:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10039:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2495:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1735:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3380:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2919:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2404:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1650:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2437:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3846:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5263:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11352:721;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11035:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3122:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:87;;;;;;;;;;;;;:::i;:::-;;7173:974;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5871:331;5941:4;5991:10;5976:25;;:11;:25;;;;:100;;;;6066:10;6051:25;;:11;:25;;;;5976:100;:175;;;;6141:10;6126:25;;:11;:25;;;;5976:175;5957:194;;5871:331;;;:::o;1625:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3069:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;3565:275::-;3630:13;3646:11;3654:2;3646:7;:11::i;:::-;3630:27;;3690:5;3676:19;;:10;:19;;;:58;;;;3699:16;:23;3716:5;3699:23;;;;;;;;;;;;;;;:35;3723:10;3699:35;;;;;;;;;;;;;;;;;;;;;;;;;3676:58;3668:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3782:7;3764:11;:15;3776:2;3764:15;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3830:2;3821:7;3805:28;;3814:5;3805:28;;;;;;;;;;;;3620:220;3565:275;;:::o;2678:26::-;;;;;;;;;;;;;:::o;8596:201::-;8675:17;8663:29;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:29;;;;;;;;:::i;:::-;;;8694:8;;;;;;;;;;;;;;;;;8655:48;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8748:3;8734:17;;2533:14;8734:17;;;;:::i;:::-;8721:9;:30;8753:15;;;;;;;;;;;;;;;;;8713:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8779:11;8786:3;8779:6;:11::i;:::-;8596:201;:::o;1704:25::-;;;;;;;;;;;;;:::o;4049:812::-;4172:11;4180:2;4172:7;:11::i;:::-;4164:19;;:4;:19;;;4156:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4231:1;4217:16;;:2;:16;;;;4209:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4301:4;4287:18;;:10;:18;;;:51;;;;4323:11;:15;4335:2;4323:15;;;;;;;;;;;;;;;;;;;;;4309:29;;:10;:29;;;4287:51;:89;;;;4342:16;:22;4359:4;4342:22;;;;;;;;;;;;;;;:34;4365:10;4342:34;;;;;;;;;;;;;;;;;;;;;;;;;4287:89;4266:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;4616:9;:15;4626:4;4616:15;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;4648:9;:13;4658:2;4648:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;4709:1;4688:23;;:5;:9;4694:2;4688:9;;;;;;;;;;;;;;;;;;;;;:23;;;4684:99;;4737:2;4725:5;:9;4731:2;4725:9;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;4684:99;;;4781:2;4766:8;:12;4775:2;4766:12;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;4684:99;4801:11;:15;4813:2;4801:15;;;;;;;;;;;;4794:22;;;;;;;;;;;4851:2;4847;4832:22;;4841:4;4832:22;;;;;;;;;;;;4049:812;;;:::o;8153:437::-;8242:20;8230:32;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:32;;;;;;;;:::i;:::-;;;8264:8;;;;;;;;;;;;;;;;;8222:51;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8283:12;8325:4;;;;;;;;;;;:12;;;8338:7;8325:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8311:35;;:10;:35;;;8310:90;;;;8378:4;;;;;;;;;;;:12;;;8391:7;8378:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8364:35;;:10;:35;;;8310:90;:143;;;;8431:4;;;;;;;;;;;:12;;;8444:7;8431:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8417:35;;:10;:35;;;8310:143;8283:170;;8471:7;8463:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8541:3;8529:15;;2475:14;8529:15;;;;:::i;:::-;8516:9;:28;8546:15;;;;;;;;;;;;;;;;;8508:54;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8572:11;8579:3;8572:6;:11::i;:::-;8212:378;8153:437;;:::o;1766:43::-;1804:5;1766:43;:::o;6779:86::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6840:18:::1;6829:8;;:29;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6779:86::o:0;6871:94::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6938:20:::1;6927:8;;:31;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6871:94::o:0;7065:102::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;7122:5:::1;;;;;;;;;;;7114:23;;:46;7138:21;7114:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7065:102::o:0;6971:88::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;7035:17:::1;7024:8;;:28;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6971:88::o:0;4867:390::-;4980:26;4993:4;4999:2;5003;4980:12;:26::i;:::-;5056:1;5038:2;:14;;;:19;:170;;;;5163:45;;;5077:131;;;5097:2;5077:40;;;5118:10;5130:4;5136:2;5077:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:131;;;;5038:170;5017:233;;;;;;;;;;;;:::i;:::-;;;;;;;;;4867:390;;;:::o;10039:307::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10159:10:::1;10144:8;:12;10153:2;10144:12;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10193:15;10183:7;;:25;;;;;;;;;;;;;;;;;;10247:1;10222:9;:21;10232:10;10222:21;;;;;;;;;;;;;;;;:26;;;;;;;;;;;10277:1;10262:11;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10336:2;10324:10;10303:36;;10320:1;10303:36;;;;;;;;;;;;10039:307:::0;;:::o;2495:52::-;2533:14;2495:52;:::o;1735:25::-;;;;;;;;;;;;;:::o;3380:179::-;3430:7;3474:1;3453:23;;:5;:9;3459:2;3453:9;;;;;;;;;;;;;;;;;;;;;:23;;;3449:103;;3497:5;:9;3503:2;3497:9;;;;;;;;;;;;;;;;;;;;;3490:16;;;;3449:103;3540:8;:12;3549:2;3540:12;;;;;;;;;;;;;;;;;;;;;3533:19;;3380:179;;;;:::o;2919:44::-;;;;;;;;;;;;;;;;;:::o;2404:27::-;;;;;;;;;;;;;:::o;1650:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2437:52::-;2475:14;2437:52;:::o;3846:197::-;3966:8;3925:16;:28;3942:10;3925:28;;;;;;;;;;;;;;;:38;3954:8;3925:38;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;4017:8;3990:46;;4005:10;3990:46;;;4027:8;3990:46;;;;;;:::i;:::-;;;;;;;;3846:197;;:::o;5263:419::-;5403:26;5416:4;5422:2;5426;5403:12;:26::i;:::-;5479:1;5461:2;:14;;;:19;:172;;;;5588:45;;;5500:133;;;5520:2;5500:40;;;5541:10;5553:4;5559:2;5563:4;5500:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:133;;;;5461:172;5440:235;;;;;;;;;;;;:::i;:::-;;;;;;;;;5263:419;;;;:::o;11352:721::-;11467:6;;;;;;;;;;;11445:29;;:10;:29;;;11437:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11525:1;11511:16;;:2;:16;;;;11503:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11583:9;:15;11593:4;11583:15;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;11615:9;:13;11625:2;11615:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;11676:1;11655:23;;:5;:9;11661:2;11655:9;;;;;;;;;;;;;;;;;;;;;:23;;;11651:99;;11704:2;11692:5;:9;11698:2;11692:9;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;11651:99;;;11748:2;11733:8;:12;11742:2;11733:12;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;11651:99;11768:11;:15;11780:2;11768:15;;;;;;;;;;;;11761:22;;;;;;;;;;;11818:2;11814;11799:22;;11808:4;11799:22;;;;;;;;;;;;11871:1;11853:2;:14;;;:19;:170;;;;11978:45;;;11892:131;;;11912:2;11892:40;;;11933:10;11945:4;11951:2;11892:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:131;;;;11853:170;11832:233;;;;;;;;;;;;:::i;:::-;;;;;;;;;11352:721;;;:::o;11035:311::-;11088:13;11139:1;11116:25;;:11;11124:2;11116:7;:11::i;:::-;:25;;;11113:51;;;11155:9;;;;;;;;;;;;;;;;11113:51;11287:16;11300:2;11287:12;:16::i;:::-;11212:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;11188:127;;;;;;;;:::i;:::-;;;;;;;;;;;;;11174:142;;11035:311;;;;:::o;3122:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6686:87::-;6261:5;;;;;;;;;;;6247:19;;:10;:19;;;6239:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6749:17:::1;6738:8;;:28;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6686:87::o:0;7173:974::-;7263:18;7251:30;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:30;;;;;;;;:::i;:::-;;;7283:8;;;;;;;;;;;;;;;;;7243:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7333:8;;:15;;2475:14;7323:25;;;;:::i;:::-;7310:9;:38;7350:15;;;;;;;;;;;;;;;;;7302:64;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1804:5;7384:42;;7398:8;;:15;;7384:11;;;;;;;;;;;:29;;;;;;:::i;:::-;:42;7428:10;;;;;;;;;;;;;;;;;7376:63;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7454:6;7449:209;7470:8;;:15;;7466:1;:19;7449:209;;;7528:4;;;;;;;;;;;:12;;;7541:8;;7550:1;7541:11;;;;;;;:::i;:::-;;;;;;;;7528:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7514:39;;:10;:39;;;7506:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:5;7602:24;;:8;;7611:1;7602:11;;;;;;;:::i;:::-;;;;;;;;:24;7594:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7487:3;;;;;:::i;:::-;;;;7449:209;;;;7672:6;7667:378;7688:8;;:15;;7684:1;:19;7667:378;;;7764:1;7732:34;;:20;7740:8;;7749:1;7740:11;;;;;;;:::i;:::-;;;;;;;;7732:7;:20::i;:::-;:34;;;7724:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7887:9;:21;7897:10;7887:21;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;7960:10;7939:5;:18;7945:8;;7954:1;7945:11;;;;;;;:::i;:::-;;;;;;;;7939:18;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;8022:8;;8031:1;8022:11;;;;;;;:::i;:::-;;;;;;;;8010:10;7989:45;;8006:1;7989:45;;;;;;;;;;;;7705:3;;;;;:::i;:::-;;;;7667:378;;;;8113:8;;:15;;8091:11;;;;;;;;;;;:39;8077:11;;:53;;;;;;;;;;;;;;;;;;7173:974;;:::o;8803:757::-;2579:2;8858:15;;:3;:15;;;;8850:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:5;8909:30;;8923:3;8909:11;;;;;;;;;;;:17;;;;:::i;:::-;:30;;;8941:10;;;;;;;;;;;;;;;;;8901:51;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8996:1;8970:10;:22;;;:27;8962:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9076:7;9086;;;;;;;;;;;9076:17;;;;9103:23;9140:263;9167:3;9146:24;;:18;:24;9140:263;;;9210:1;9189:23;;:5;:9;9195:2;9189:9;;;;;;;;;;;;;;;;;;;;;:23;;;9185:187;;;9247:10;9232:8;:12;9241:2;9232:12;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;9313:2;9301:10;9280:36;;9297:1;9280:36;;;;;;;;;;;;9356:1;9334:23;;;;;:::i;:::-;;;9185:187;9391:1;9385:7;;;;;:::i;:::-;;;9140:263;;;9461:3;9436:28;;:9;:21;9446:10;9436:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9495:2;9478:7;;:20;;;;;;;;;;;;;;;;;;9540:3;9526:11;;;;;;;;;;;:17;9512:11;;:31;;;;;;;;;;;;;;;;;;8840:720;;8803:757;:::o;10352:677::-;10412:13;10608:1;10599:5;:10;10595:51;;;10625:10;;;;;;;;;;;;;;;;;;;;;10595:51;10655:12;10670:5;10655:20;;10685:14;10709:75;10724:1;10716:4;:9;10709:75;;10741:8;;;;;:::i;:::-;;;;10771:2;10763:10;;;;;:::i;:::-;;;10709:75;;;10793:19;10825:6;10815:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10793:39;;10842:150;10858:1;10849:5;:10;10842:150;;10885:1;10875:11;;;;;:::i;:::-;;;10951:2;10943:5;:10;;;;:::i;:::-;10930:2;:24;;;;:::i;:::-;10917:39;;10900:6;10907;10900:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;10979:2;10970:11;;;;;:::i;:::-;;;10842:150;;;11015:6;11001:21;;;;;10352:677;;;;:::o;7:410:2:-;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:139::-;469:5;507:6;494:20;485:29;;523:33;550:5;523:33;:::i;:::-;423:139;;;;:::o;568:143::-;625:5;656:6;650:13;641:22;;672:33;699:5;672:33;:::i;:::-;568:143;;;;:::o;734:568::-;807:8;817:6;867:3;860:4;852:6;848:17;844:27;834:122;;875:79;;:::i;:::-;834:122;988:6;975:20;965:30;;1018:18;1010:6;1007:30;1004:117;;;1040:79;;:::i;:::-;1004:117;1154:4;1146:6;1142:17;1130:29;;1208:3;1200:4;1192:6;1188:17;1178:8;1174:32;1171:41;1168:128;;;1215:79;;:::i;:::-;1168:128;734:568;;;;;:::o;1308:133::-;1351:5;1389:6;1376:20;1367:29;;1405:30;1429:5;1405:30;:::i;:::-;1308:133;;;;:::o;1447:137::-;1492:5;1530:6;1517:20;1508:29;;1546:32;1572:5;1546:32;:::i;:::-;1447:137;;;;:::o;1590:141::-;1646:5;1677:6;1671:13;1662:22;;1693:32;1719:5;1693:32;:::i;:::-;1590:141;;;;:::o;1750:338::-;1805:5;1854:3;1847:4;1839:6;1835:17;1831:27;1821:122;;1862:79;;:::i;:::-;1821:122;1979:6;1966:20;2004:78;2078:3;2070:6;2063:4;2055:6;2051:17;2004:78;:::i;:::-;1995:87;;1811:277;1750:338;;;;:::o;2094:137::-;2139:5;2177:6;2164:20;2155:29;;2193:32;2219:5;2193:32;:::i;:::-;2094:137;;;;:::o;2237:139::-;2283:5;2321:6;2308:20;2299:29;;2337:33;2364:5;2337:33;:::i;:::-;2237:139;;;;:::o;2382:329::-;2441:6;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2382:329;;;;:::o;2717:351::-;2787:6;2836:2;2824:9;2815:7;2811:23;2807:32;2804:119;;;2842:79;;:::i;:::-;2804:119;2962:1;2987:64;3043:7;3034:6;3023:9;3019:22;2987:64;:::i;:::-;2977:74;;2933:128;2717:351;;;;:::o;3074:474::-;3142:6;3150;3199:2;3187:9;3178:7;3174:23;3170:32;3167:119;;;3205:79;;:::i;:::-;3167:119;3325:1;3350:53;3395:7;3386:6;3375:9;3371:22;3350:53;:::i;:::-;3340:63;;3296:117;3452:2;3478:53;3523:7;3514:6;3503:9;3499:22;3478:53;:::i;:::-;3468:63;;3423:118;3074:474;;;;;:::o;3554:619::-;3631:6;3639;3647;3696:2;3684:9;3675:7;3671:23;3667:32;3664:119;;;3702:79;;:::i;:::-;3664:119;3822:1;3847:53;3892:7;3883:6;3872:9;3868:22;3847:53;:::i;:::-;3837:63;;3793:117;3949:2;3975:53;4020:7;4011:6;4000:9;3996:22;3975:53;:::i;:::-;3965:63;;3920:118;4077:2;4103:53;4148:7;4139:6;4128:9;4124:22;4103:53;:::i;:::-;4093:63;;4048:118;3554:619;;;;;:::o;4179:943::-;4274:6;4282;4290;4298;4347:3;4335:9;4326:7;4322:23;4318:33;4315:120;;;4354:79;;:::i;:::-;4315:120;4474:1;4499:53;4544:7;4535:6;4524:9;4520:22;4499:53;:::i;:::-;4489:63;;4445:117;4601:2;4627:53;4672:7;4663:6;4652:9;4648:22;4627:53;:::i;:::-;4617:63;;4572:118;4729:2;4755:53;4800:7;4791:6;4780:9;4776:22;4755:53;:::i;:::-;4745:63;;4700:118;4885:2;4874:9;4870:18;4857:32;4916:18;4908:6;4905:30;4902:117;;;4938:79;;:::i;:::-;4902:117;5043:62;5097:7;5088:6;5077:9;5073:22;5043:62;:::i;:::-;5033:72;;4828:287;4179:943;;;;;;;:::o;5128:468::-;5193:6;5201;5250:2;5238:9;5229:7;5225:23;5221:32;5218:119;;;5256:79;;:::i;:::-;5218:119;5376:1;5401:53;5446:7;5437:6;5426:9;5422:22;5401:53;:::i;:::-;5391:63;;5347:117;5503:2;5529:50;5571:7;5562:6;5551:9;5547:22;5529:50;:::i;:::-;5519:60;;5474:115;5128:468;;;;;:::o;5602:474::-;5670:6;5678;5727:2;5715:9;5706:7;5702:23;5698:32;5695:119;;;5733:79;;:::i;:::-;5695:119;5853:1;5878:53;5923:7;5914:6;5903:9;5899:22;5878:53;:::i;:::-;5868:63;;5824:117;5980:2;6006:53;6051:7;6042:6;6031:9;6027:22;6006:53;:::i;:::-;5996:63;;5951:118;5602:474;;;;;:::o;6082:559::-;6168:6;6176;6225:2;6213:9;6204:7;6200:23;6196:32;6193:119;;;6231:79;;:::i;:::-;6193:119;6379:1;6368:9;6364:17;6351:31;6409:18;6401:6;6398:30;6395:117;;;6431:79;;:::i;:::-;6395:117;6544:80;6616:7;6607:6;6596:9;6592:22;6544:80;:::i;:::-;6526:98;;;;6322:312;6082:559;;;;;:::o;6647:327::-;6705:6;6754:2;6742:9;6733:7;6729:23;6725:32;6722:119;;;6760:79;;:::i;:::-;6722:119;6880:1;6905:52;6949:7;6940:6;6929:9;6925:22;6905:52;:::i;:::-;6895:62;;6851:116;6647:327;;;;:::o;6980:349::-;7049:6;7098:2;7086:9;7077:7;7073:23;7069:32;7066:119;;;7104:79;;:::i;:::-;7066:119;7224:1;7249:63;7304:7;7295:6;7284:9;7280:22;7249:63;:::i;:::-;7239:73;;7195:127;6980:349;;;;:::o;7335:327::-;7393:6;7442:2;7430:9;7421:7;7417:23;7413:32;7410:119;;;7448:79;;:::i;:::-;7410:119;7568:1;7593:52;7637:7;7628:6;7617:9;7613:22;7593:52;:::i;:::-;7583:62;;7539:116;7335:327;;;;:::o;7668:472::-;7735:6;7743;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7918:1;7943:52;7987:7;7978:6;7967:9;7963:22;7943:52;:::i;:::-;7933:62;;7889:116;8044:2;8070:53;8115:7;8106:6;8095:9;8091:22;8070:53;:::i;:::-;8060:63;;8015:118;7668:472;;;;;:::o;8146:329::-;8205:6;8254:2;8242:9;8233:7;8229:23;8225:32;8222:119;;;8260:79;;:::i;:::-;8222:119;8380:1;8405:53;8450:7;8441:6;8430:9;8426:22;8405:53;:::i;:::-;8395:63;;8351:117;8146:329;;;;:::o;8481:472::-;8548:6;8556;8605:2;8593:9;8584:7;8580:23;8576:32;8573:119;;;8611:79;;:::i;:::-;8573:119;8731:1;8756:53;8801:7;8792:6;8781:9;8777:22;8756:53;:::i;:::-;8746:63;;8702:117;8858:2;8884:52;8928:7;8919:6;8908:9;8904:22;8884:52;:::i;:::-;8874:62;;8829:117;8481:472;;;;;:::o;8959:118::-;9046:24;9064:5;9046:24;:::i;:::-;9041:3;9034:37;8959:118;;:::o;9083:109::-;9164:21;9179:5;9164:21;:::i;:::-;9159:3;9152:34;9083:109;;:::o;9198:360::-;9284:3;9312:38;9344:5;9312:38;:::i;:::-;9366:70;9429:6;9424:3;9366:70;:::i;:::-;9359:77;;9445:52;9490:6;9485:3;9478:4;9471:5;9467:16;9445:52;:::i;:::-;9522:29;9544:6;9522:29;:::i;:::-;9517:3;9513:39;9506:46;;9288:270;9198:360;;;;:::o;9564:173::-;9672:58;9724:5;9672:58;:::i;:::-;9667:3;9660:71;9564:173;;:::o;9743:155::-;9842:49;9885:5;9842:49;:::i;:::-;9837:3;9830:62;9743:155;;:::o;9904:364::-;9992:3;10020:39;10053:5;10020:39;:::i;:::-;10075:71;10139:6;10134:3;10075:71;:::i;:::-;10068:78;;10155:52;10200:6;10195:3;10188:4;10181:5;10177:16;10155:52;:::i;:::-;10232:29;10254:6;10232:29;:::i;:::-;10227:3;10223:39;10216:46;;9996:272;9904:364;;;;:::o;10274:377::-;10380:3;10408:39;10441:5;10408:39;:::i;:::-;10463:89;10545:6;10540:3;10463:89;:::i;:::-;10456:96;;10561:52;10606:6;10601:3;10594:4;10587:5;10583:16;10561:52;:::i;:::-;10638:6;10633:3;10629:16;10622:23;;10384:267;10274:377;;;;:::o;10657:366::-;10799:3;10820:67;10884:2;10879:3;10820:67;:::i;:::-;10813:74;;10896:93;10985:3;10896:93;:::i;:::-;11014:2;11009:3;11005:12;10998:19;;10657:366;;;:::o;11029:402::-;11189:3;11210:85;11292:2;11287:3;11210:85;:::i;:::-;11203:92;;11304:93;11393:3;11304:93;:::i;:::-;11422:2;11417:3;11413:12;11406:19;;11029:402;;;:::o;11437:366::-;11579:3;11600:67;11664:2;11659:3;11600:67;:::i;:::-;11593:74;;11676:93;11765:3;11676:93;:::i;:::-;11794:2;11789:3;11785:12;11778:19;;11437:366;;;:::o;11809:::-;11951:3;11972:67;12036:2;12031:3;11972:67;:::i;:::-;11965:74;;12048:93;12137:3;12048:93;:::i;:::-;12166:2;12161:3;12157:12;12150:19;;11809:366;;;:::o;12181:::-;12323:3;12344:67;12408:2;12403:3;12344:67;:::i;:::-;12337:74;;12420:93;12509:3;12420:93;:::i;:::-;12538:2;12533:3;12529:12;12522:19;;12181:366;;;:::o;12553:::-;12695:3;12716:67;12780:2;12775:3;12716:67;:::i;:::-;12709:74;;12792:93;12881:3;12792:93;:::i;:::-;12910:2;12905:3;12901:12;12894:19;;12553:366;;;:::o;12925:::-;13067:3;13088:67;13152:2;13147:3;13088:67;:::i;:::-;13081:74;;13164:93;13253:3;13164:93;:::i;:::-;13282:2;13277:3;13273:12;13266:19;;12925:366;;;:::o;13297:::-;13439:3;13460:67;13524:2;13519:3;13460:67;:::i;:::-;13453:74;;13536:93;13625:3;13536:93;:::i;:::-;13654:2;13649:3;13645:12;13638:19;;13297:366;;;:::o;13669:::-;13811:3;13832:67;13896:2;13891:3;13832:67;:::i;:::-;13825:74;;13908:93;13997:3;13908:93;:::i;:::-;14026:2;14021:3;14017:12;14010:19;;13669:366;;;:::o;14041:400::-;14201:3;14222:84;14304:1;14299:3;14222:84;:::i;:::-;14215:91;;14315:93;14404:3;14315:93;:::i;:::-;14433:1;14428:3;14424:11;14417:18;;14041:400;;;:::o;14447:366::-;14589:3;14610:67;14674:2;14669:3;14610:67;:::i;:::-;14603:74;;14686:93;14775:3;14686:93;:::i;:::-;14804:2;14799:3;14795:12;14788:19;;14447:366;;;:::o;14819:362::-;14960:3;14981:65;15044:1;15039:3;14981:65;:::i;:::-;14974:72;;15055:93;15144:3;15055:93;:::i;:::-;15173:1;15168:3;15164:11;15157:18;;14819:362;;;:::o;15187:366::-;15329:3;15350:67;15414:2;15409:3;15350:67;:::i;:::-;15343:74;;15426:93;15515:3;15426:93;:::i;:::-;15544:2;15539:3;15535:12;15528:19;;15187:366;;;:::o;15559:::-;15701:3;15722:67;15786:2;15781:3;15722:67;:::i;:::-;15715:74;;15798:93;15887:3;15798:93;:::i;:::-;15916:2;15911:3;15907:12;15900:19;;15559:366;;;:::o;15931:::-;16073:3;16094:67;16158:2;16153:3;16094:67;:::i;:::-;16087:74;;16170:93;16259:3;16170:93;:::i;:::-;16288:2;16283:3;16279:12;16272:19;;15931:366;;;:::o;16303:115::-;16388:23;16405:5;16388:23;:::i;:::-;16383:3;16376:36;16303:115;;:::o;16424:118::-;16511:24;16529:5;16511:24;:::i;:::-;16506:3;16499:37;16424:118;;:::o;16548:541::-;16781:3;16803:95;16894:3;16885:6;16803:95;:::i;:::-;16796:102;;16915:148;17059:3;16915:148;:::i;:::-;16908:155;;17080:3;17073:10;;16548:541;;;;:::o;17095:::-;17328:3;17350:148;17494:3;17350:148;:::i;:::-;17343:155;;17515:95;17606:3;17597:6;17515:95;:::i;:::-;17508:102;;17627:3;17620:10;;17095:541;;;;:::o;17642:222::-;17735:4;17773:2;17762:9;17758:18;17750:26;;17786:71;17854:1;17843:9;17839:17;17830:6;17786:71;:::i;:::-;17642:222;;;;:::o;17870:640::-;18065:4;18103:3;18092:9;18088:19;18080:27;;18117:71;18185:1;18174:9;18170:17;18161:6;18117:71;:::i;:::-;18198:72;18266:2;18255:9;18251:18;18242:6;18198:72;:::i;:::-;18280;18348:2;18337:9;18333:18;18324:6;18280:72;:::i;:::-;18399:9;18393:4;18389:20;18384:2;18373:9;18369:18;18362:48;18427:76;18498:4;18489:6;18427:76;:::i;:::-;18419:84;;17870:640;;;;;;;:::o;18516:748::-;18765:4;18803:3;18792:9;18788:19;18780:27;;18817:71;18885:1;18874:9;18870:17;18861:6;18817:71;:::i;:::-;18898:72;18966:2;18955:9;18951:18;18942:6;18898:72;:::i;:::-;18980;19048:2;19037:9;19033:18;19024:6;18980:72;:::i;:::-;19099:9;19093:4;19089:20;19084:2;19073:9;19069:18;19062:48;19127:130;19252:4;19127:130;:::i;:::-;19119:138;;18516:748;;;;;;:::o;19270:210::-;19357:4;19395:2;19384:9;19380:18;19372:26;;19408:65;19470:1;19459:9;19455:17;19446:6;19408:65;:::i;:::-;19270:210;;;;:::o;19486:264::-;19600:4;19638:2;19627:9;19623:18;19615:26;;19651:92;19740:1;19729:9;19725:17;19716:6;19651:92;:::i;:::-;19486:264;;;;:::o;19756:246::-;19861:4;19899:2;19888:9;19884:18;19876:26;;19912:83;19992:1;19981:9;19977:17;19968:6;19912:83;:::i;:::-;19756:246;;;;:::o;20008:313::-;20121:4;20159:2;20148:9;20144:18;20136:26;;20208:9;20202:4;20198:20;20194:1;20183:9;20179:17;20172:47;20236:78;20309:4;20300:6;20236:78;:::i;:::-;20228:86;;20008:313;;;;:::o;20327:419::-;20493:4;20531:2;20520:9;20516:18;20508:26;;20580:9;20574:4;20570:20;20566:1;20555:9;20551:17;20544:47;20608:131;20734:4;20608:131;:::i;:::-;20600:139;;20327:419;;;:::o;20752:::-;20918:4;20956:2;20945:9;20941:18;20933:26;;21005:9;20999:4;20995:20;20991:1;20980:9;20976:17;20969:47;21033:131;21159:4;21033:131;:::i;:::-;21025:139;;20752:419;;;:::o;21177:::-;21343:4;21381:2;21370:9;21366:18;21358:26;;21430:9;21424:4;21420:20;21416:1;21405:9;21401:17;21394:47;21458:131;21584:4;21458:131;:::i;:::-;21450:139;;21177:419;;;:::o;21602:::-;21768:4;21806:2;21795:9;21791:18;21783:26;;21855:9;21849:4;21845:20;21841:1;21830:9;21826:17;21819:47;21883:131;22009:4;21883:131;:::i;:::-;21875:139;;21602:419;;;:::o;22027:::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:::-;22618:4;22656:2;22645:9;22641:18;22633:26;;22705:9;22699:4;22695:20;22691:1;22680:9;22676:17;22669:47;22733:131;22859:4;22733:131;:::i;:::-;22725:139;;22452:419;;;:::o;22877:::-;23043:4;23081:2;23070:9;23066:18;23058:26;;23130:9;23124:4;23120:20;23116:1;23105:9;23101:17;23094:47;23158:131;23284:4;23158:131;:::i;:::-;23150:139;;22877:419;;;:::o;23302:::-;23468:4;23506:2;23495:9;23491:18;23483:26;;23555:9;23549:4;23545:20;23541:1;23530:9;23526:17;23519:47;23583:131;23709:4;23583:131;:::i;:::-;23575:139;;23302:419;;;:::o;23727:::-;23893:4;23931:2;23920:9;23916:18;23908:26;;23980:9;23974:4;23970:20;23966:1;23955:9;23951:17;23944:47;24008:131;24134:4;24008:131;:::i;:::-;24000:139;;23727:419;;;:::o;24152:::-;24318:4;24356:2;24345:9;24341:18;24333:26;;24405:9;24399:4;24395:20;24391:1;24380:9;24376:17;24369:47;24433:131;24559:4;24433:131;:::i;:::-;24425:139;;24152:419;;;:::o;24577:::-;24743:4;24781:2;24770:9;24766:18;24758:26;;24830:9;24824:4;24820:20;24816:1;24805:9;24801:17;24794:47;24858:131;24984:4;24858:131;:::i;:::-;24850:139;;24577:419;;;:::o;25002:::-;25168:4;25206:2;25195:9;25191:18;25183:26;;25255:9;25249:4;25245:20;25241:1;25230:9;25226:17;25219:47;25283:131;25409:4;25283:131;:::i;:::-;25275:139;;25002:419;;;:::o;25427:218::-;25518:4;25556:2;25545:9;25541:18;25533:26;;25569:69;25635:1;25624:9;25620:17;25611:6;25569:69;:::i;:::-;25427:218;;;;:::o;25651:222::-;25744:4;25782:2;25771:9;25767:18;25759:26;;25795:71;25863:1;25852:9;25848:17;25839:6;25795:71;:::i;:::-;25651:222;;;;:::o;25879:129::-;25913:6;25940:20;;:::i;:::-;25930:30;;25969:33;25997:4;25989:6;25969:33;:::i;:::-;25879:129;;;:::o;26014:75::-;26047:6;26080:2;26074:9;26064:19;;26014:75;:::o;26095:307::-;26156:4;26246:18;26238:6;26235:30;26232:56;;;26268:18;;:::i;:::-;26232:56;26306:29;26328:6;26306:29;:::i;:::-;26298:37;;26390:4;26384;26380:15;26372:23;;26095:307;;;:::o;26408:98::-;26459:6;26493:5;26487:12;26477:22;;26408:98;;;:::o;26512:99::-;26564:6;26598:5;26592:12;26582:22;;26512:99;;;:::o;26617:168::-;26700:11;26734:6;26729:3;26722:19;26774:4;26769:3;26765:14;26750:29;;26617:168;;;;:::o;26791:169::-;26875:11;26909:6;26904:3;26897:19;26949:4;26944:3;26940:14;26925:29;;26791:169;;;;:::o;26966:148::-;27068:11;27105:3;27090:18;;26966:148;;;;:::o;27120:242::-;27159:3;27178:19;27195:1;27178:19;:::i;:::-;27173:24;;27211:19;27228:1;27211:19;:::i;:::-;27206:24;;27304:1;27296:6;27292:14;27289:1;27286:21;27283:47;;;27310:18;;:::i;:::-;27283:47;27354:1;27351;27347:9;27340:16;;27120:242;;;;:::o;27368:305::-;27408:3;27427:20;27445:1;27427:20;:::i;:::-;27422:25;;27461:20;27479:1;27461:20;:::i;:::-;27456:25;;27615:1;27547:66;27543:74;27540:1;27537:81;27534:107;;;27621:18;;:::i;:::-;27534:107;27665:1;27662;27658:9;27651:16;;27368:305;;;;:::o;27679:185::-;27719:1;27736:20;27754:1;27736:20;:::i;:::-;27731:25;;27770:20;27788:1;27770:20;:::i;:::-;27765:25;;27809:1;27799:35;;27814:18;;:::i;:::-;27799:35;27856:1;27853;27849:9;27844:14;;27679:185;;;;:::o;27870:348::-;27910:7;27933:20;27951:1;27933:20;:::i;:::-;27928:25;;27967:20;27985:1;27967:20;:::i;:::-;27962:25;;28155:1;28087:66;28083:74;28080:1;28077:81;28072:1;28065:9;28058:17;28054:105;28051:131;;;28162:18;;:::i;:::-;28051:131;28210:1;28207;28203:9;28192:20;;27870:348;;;;:::o;28224:191::-;28264:4;28284:20;28302:1;28284:20;:::i;:::-;28279:25;;28318:20;28336:1;28318:20;:::i;:::-;28313:25;;28357:1;28354;28351:8;28348:34;;;28362:18;;:::i;:::-;28348:34;28407:1;28404;28400:9;28392:17;;28224:191;;;;:::o;28421:96::-;28458:7;28487:24;28505:5;28487:24;:::i;:::-;28476:35;;28421:96;;;:::o;28523:90::-;28557:7;28600:5;28593:13;28586:21;28575:32;;28523:90;;;:::o;28619:149::-;28655:7;28695:66;28688:5;28684:78;28673:89;;28619:149;;;:::o;28774:139::-;28825:7;28854:5;28843:16;;28860:47;28901:5;28860:47;:::i;:::-;28774:139;;;:::o;28919:89::-;28955:7;28995:6;28988:5;28984:18;28973:29;;28919:89;;;:::o;29014:126::-;29051:7;29091:42;29084:5;29080:54;29069:65;;29014:126;;;:::o;29146:77::-;29183:7;29212:5;29201:16;;29146:77;;;:::o;29229:147::-;29300:9;29333:37;29364:5;29333:37;:::i;:::-;29320:50;;29229:147;;;:::o;29382:139::-;29444:9;29477:38;29509:5;29477:38;:::i;:::-;29464:51;;29382:139;;;:::o;29527:126::-;29577:9;29610:37;29641:5;29610:37;:::i;:::-;29597:50;;29527:126;;;:::o;29659:113::-;29709:9;29742:24;29760:5;29742:24;:::i;:::-;29729:37;;29659:113;;;:::o;29778:154::-;29862:6;29857:3;29852;29839:30;29924:1;29915:6;29910:3;29906:16;29899:27;29778:154;;;:::o;29938:307::-;30006:1;30016:113;30030:6;30027:1;30024:13;30016:113;;;30115:1;30110:3;30106:11;30100:18;30096:1;30091:3;30087:11;30080:39;30052:2;30049:1;30045:10;30040:15;;30016:113;;;30147:6;30144:1;30141:13;30138:101;;;30227:1;30218:6;30213:3;30209:16;30202:27;30138:101;29987:258;29938:307;;;:::o;30251:320::-;30295:6;30332:1;30326:4;30322:12;30312:22;;30379:1;30373:4;30369:12;30400:18;30390:81;;30456:4;30448:6;30444:17;30434:27;;30390:81;30518:2;30510:6;30507:14;30487:18;30484:38;30481:84;;;30537:18;;:::i;:::-;30481:84;30302:269;30251:320;;;:::o;30577:281::-;30660:27;30682:4;30660:27;:::i;:::-;30652:6;30648:40;30790:6;30778:10;30775:22;30754:18;30742:10;30739:34;30736:62;30733:88;;;30801:18;;:::i;:::-;30733:88;30841:10;30837:2;30830:22;30620:238;30577:281;;:::o;30864:233::-;30903:3;30926:24;30944:5;30926:24;:::i;:::-;30917:33;;30972:66;30965:5;30962:77;30959:103;;;31042:18;;:::i;:::-;30959:103;31089:1;31082:5;31078:13;31071:20;;30864:233;;;:::o;31103:176::-;31135:1;31152:20;31170:1;31152:20;:::i;:::-;31147:25;;31186:20;31204:1;31186:20;:::i;:::-;31181:25;;31225:1;31215:35;;31230:18;;:::i;:::-;31215:35;31271:1;31268;31264:9;31259:14;;31103:176;;;;:::o;31285:180::-;31333:77;31330:1;31323:88;31430:4;31427:1;31420:15;31454:4;31451:1;31444:15;31471:180;31519:77;31516:1;31509:88;31616:4;31613:1;31606:15;31640:4;31637:1;31630:15;31657:180;31705:77;31702:1;31695:88;31802:4;31799:1;31792:15;31826:4;31823:1;31816:15;31843:180;31891:77;31888:1;31881:88;31988:4;31985:1;31978:15;32012:4;32009:1;32002:15;32029:180;32077:77;32074:1;32067:88;32174:4;32171:1;32164:15;32198:4;32195:1;32188:15;32215:180;32263:77;32260:1;32253:88;32360:4;32357:1;32350:15;32384:4;32381:1;32374:15;32401:117;32510:1;32507;32500:12;32524:117;32633:1;32630;32623:12;32647:117;32756:1;32753;32746:12;32770:117;32879:1;32876;32869:12;32893:117;33002:1;32999;32992:12;33016:117;33125:1;33122;33115:12;33139:102;33180:6;33231:2;33227:7;33222:2;33215:5;33211:14;33207:28;33197:38;;33139:102;;;:::o;33247:163::-;33387:15;33383:1;33375:6;33371:14;33364:39;33247:163;:::o;33416:249::-;33556:34;33552:1;33544:6;33540:14;33533:58;33629:24;33624:2;33616:6;33612:15;33605:49;33416:249;:::o;33675:172::-;33819:16;33815:1;33807:6;33803:14;33796:40;33675:172;:::o;33857:174::-;34001:18;33997:1;33989:6;33985:14;33978:42;33857:174;:::o;34041:175::-;34185:19;34181:1;34173:6;34169:14;34162:43;34041:175;:::o;34226:173::-;34370:17;34366:1;34358:6;34354:14;34347:41;34226:173;:::o;34409:180::-;34553:24;34549:1;34541:6;34537:14;34530:48;34409:180;:::o;34599:171::-;34743:15;34739:1;34731:6;34727:14;34720:39;34599:171;:::o;34780:174::-;34924:18;34920:1;34912:6;34908:14;34901:42;34780:174;:::o;34964:163::-;35108:7;35104:1;35096:6;35092:14;35085:31;34964:163;:::o;35137:180::-;35281:24;35277:1;35269:6;35265:14;35258:48;35137:180;:::o;35327:118::-;;:::o;35455:172::-;35599:16;35595:1;35587:6;35583:14;35576:40;35455:172;:::o;35637:::-;35781:16;35777:1;35769:6;35765:14;35758:40;35637:172;:::o;35819:168::-;35963:12;35959:1;35951:6;35947:14;35940:36;35819:168;:::o;35997:127::-;36088:1;36081:5;36078:12;36068:46;;36094:18;;:::i;:::-;36068:46;35997:127;:::o;36134:130::-;36211:24;36229:5;36211:24;:::i;:::-;36204:5;36201:35;36191:63;;36250:1;36247;36240:12;36191:63;36134:130;:::o;36274:124::-;36348:21;36363:5;36348:21;:::i;:::-;36341:5;36338:32;36328:60;;36384:1;36381;36374:12;36328:60;36274:124;:::o;36408:128::-;36484:23;36501:5;36484:23;:::i;:::-;36477:5;36474:34;36464:62;;36522:1;36519;36512:12;36464:62;36408:128;:::o;36546:::-;36622:23;36639:5;36622:23;:::i;:::-;36615:5;36612:34;36602:62;;36660:1;36657;36650:12;36602:62;36546:128;:::o;36684:130::-;36761:24;36779:5;36761:24;:::i;:::-;36754:5;36751:35;36741:63;;36800:1;36797;36790:12;36741:63;36684:130;:::o
Swarm Source
ipfs://24735fe59e5ceeba966336438965628a8005ba9984122fcb376e4aa6c6d909eb
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.