Overview
TokenID
84
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SURREAL
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-21 */ // SPDX-License-Identifier: MIT pragma solidity =0.7.6; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); function balanceOf(address _owner) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function approve(address _approved, uint256 _tokenId) external; function setApprovalForAll(address _operator, bool _approved) external; function getApproved(uint256 _tokenId) external view returns (address); function isApprovedForAll(address _owner, address _operator) external view returns (bool); } interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); function totalSupply() external view returns(uint256); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } library Strings { function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } } abstract contract CFMS { //Crypto Family Management Standard address private _owner; mapping(address => bool) private _manager; event OwnershipTransfer(address indexed newOwner); event SetManager(address indexed manager, bool state); constructor() { _owner = msg.sender; _manager[msg.sender] = true; emit SetManager(msg.sender, true); } //Modifiers ========================================================================================================================================== modifier Owner() { require(msg.sender == _owner, "CFMS: NOT_OWNER"); _; } modifier Manager() { require(_manager[msg.sender], "CFMS: MOT_MANAGER"); _; } //Read functions ===================================================================================================================================== function owner() public view returns (address) { return _owner; } function manager(address user) external view returns(bool) { return _manager[user]; } //Write functions ==================================================================================================================================== function setNewOwner(address user) external Owner { _owner = user; emit OwnershipTransfer(user); } function setManager(address user, bool state) external Owner { _manager[user] = state; emit SetManager(user, state); } } abstract contract CF_ERC721 is CFMS, ERC165, IERC721, IERC721Metadata{ //Crypto Family ERC721 Standard using Strings for uint256; string internal uriLink = ""; uint256 internal _totalSupply; string private _name = "Surreal Society"; string private _symbol = "SURREAL"; mapping(uint256 => address) internal _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; //Read Functions====================================================================================================================================================== function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) external view override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) external view override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view override returns (string memory) { return _name; } function symbol() public view override returns (string memory) { return _symbol; } function totalSupply() public view override returns(uint256){return _totalSupply;} function tokenURI(uint256 tokenId) external view virtual override returns (string memory) { return string(abi.encodePacked(uriLink, "secret.json")); } function getApproved(uint256 tokenId) external view override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function isApprovedForAll(address owner, address operator) public view override returns (bool) { return _operatorApprovals[owner][operator]; } //Moderator Functions====================================================================================================================================================== function changeURIlink(string calldata newUri) external Manager { uriLink = newUri; } function changeData(string calldata name, string calldata symbol) external Manager { _name = name; _symbol = symbol; } //User Functions====================================================================================================================================================== function approve(address to, uint256 tokenId) external override { address owner = _owners[tokenId]; require(msg.sender == owner || isApprovedForAll(owner, msg.sender), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function setApprovalForAll(address operator, bool approved) public override { require(operator != msg.sender, "ERC721: approve to caller"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function transferFrom(address from, address to, uint256 tokenId) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata _data) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } //Internal Functions====================================================================================================================================================== function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal { _transfer(from, to, tokenId); } function _exists(uint256 tokenId) internal view returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = _owners[tokenId]; require(spender == owner || _tokenApprovals[tokenId] == spender || isApprovedForAll(owner, spender), "ERC721: Not approved or owner"); return true; } function _transfer(address from, address to, uint256 tokenId) internal { require(_owners[tokenId] == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal { _tokenApprovals[tokenId] = to; emit Approval(_owners[tokenId], to, tokenId); } function _mint(address user, uint256 amount) internal { _balances[user] += amount; uint256 tokenId; for(uint256 t; t < amount; ++t) { tokenId = _totalSupply++; _owners[tokenId] = user; emit Transfer(address(0), user, tokenId); } } } contract SURREAL is CF_ERC721 { using Strings for uint256; bool private _reveal = false; uint256 private _whitePrice = 100000000000000000; uint256 private _publicPrice = 150000000000000000; mapping(address => uint256) private _userWhiteMints; //How many times did the user mint in white lsit minting uint256 private _whiteMinted; mapping(address => bool) private _whiteAccess; constructor() { _mint(0x81cc8A4bb62fF93f62EC94e3AA40A3A862c54368, 10); } //Read Functions====================================================================================================================================================== function tokenURI(uint256 tokenId) external view override returns (string memory) { if(!_reveal) {return string(abi.encodePacked(uriLink, "secret.json"));} ++tokenId; return string(abi.encodePacked(uriLink, tokenId.toString(), ".json")); } function prices() public view returns(uint256 whitePrice, uint256 publicPrice) { whitePrice = _whitePrice; publicPrice = _publicPrice; } function whiteListed(address user) external view returns(bool listed) { return _whiteAccess[user]; } function userWhiteMints(address user) external view returns(uint256 mints) { return _userWhiteMints[user]; } //Moderator Functions====================================================================================================================================================== function setWhiteList(address[] calldata whiteUsers) external Owner { uint256 size = whiteUsers.length; for(uint256 t; t < size; ++t) { _whiteAccess[whiteUsers[t]] = true; } } function adminMint(address to, uint256 amount) external Manager { _mint(to, amount); } function adminMint(address[] calldata to, uint256[] calldata amount) external Manager { uint256 size = to.length; for(uint256 t; t < size; ++t) { _mint(to[t], amount[t]); } } function changePrices(uint256 whitePrice, uint256 publicPrice) external Manager { _whitePrice = whitePrice; _publicPrice = publicPrice; } function toggleReveal() external Manager { _reveal = !_reveal; } function withdraw(address payable to, uint256 value) external Manager { to.transfer(value); } function distribute() public Manager { uint256 balance = address(this).balance / 10000; // This is 0.01% of the total balance -> Needed to do presition calculations without floating point. require(payable(0x81cc8A4bb62fF93f62EC94e3AA40A3A862c54368).send(balance * 5000)); require(payable(0x10f3667970FAd7dA441261c80727caCd8B164806).send(balance * 900)); require(payable(0x7A6c41c001d6Fbf4AE6022E936B24d0d39AE3a25).send(balance * 325)); require(payable(0x6Ec4EAA315aba37B7558A66c51D0dd4986128bCb).send(balance * 325)); require(payable(0xcc2ba3C4E74A531635b928D2aC5B3f176C8B6ec3).send(balance * 216)); require(payable(0x37B8C37EB031312c5DaaA02fD5baD9Dc380a8cc4).send(balance * 125)); require(payable(0xC970bd4E2dF5F33ea62c72b9c3d808b8a609e5e1).send(balance * 550)); require(payable(0xED7AdfDBbcB1b5C93fa8B6b28B0Fc833Fa68BCA0).send(balance * 580)); require(payable(0x50a583Ab2432BF3bC5E7458C8ed10BC5Ec3AB23E).send(balance * 580)); require(payable(0x3b0f95D44f629e8E24a294799c4A1D21f06B6969).send(balance * 225)); require(payable(0x02916D0f68a02c502476DC630628B01Ee36A7826).send(balance * 50)); require(payable(0x41b6cb632F5707bF80a1c904316b19fcBee2a4cF).send(balance * 50)); require(payable(0x2C1Ba2909A0dC98A6219079FBe9A4ab23517D47E).send(balance * 50)); require(payable(0x58EE6F81AE4Ed77E8Dc50344Ab7571EA7A75a9b7).send(balance * 24)); require(payable(0x3AA599FB8003B94666c9D66Db43D859ef5EEa29f).send(address(this).balance)); } //User Functions====================================================================================================================================================== function whiteMint() external payable { require(_whiteAccess[msg.sender], "SURREAL: Invalid Access"); uint256 amount = msg.value / _whitePrice; _userWhiteMints[msg.sender] += amount; require(_userWhiteMints[msg.sender] < 11, "SURREAL: Minting Limit Reached"); _whiteMinted += amount; require(_whiteMinted < 1500,"SURREAL: Insufficient White Mint Tokens"); _mint(msg.sender, amount); } function mint() external payable { uint256 amount = msg.value / _publicPrice; require(_totalSupply + amount < 5000, "SURREAL: Insufficient Tokens"); _mint(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"state","type":"bool"}],"name":"SetManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"changeData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"whitePrice","type":"uint256"},{"internalType":"uint256","name":"publicPrice","type":"uint256"}],"name":"changePrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"changeURIlink","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"manager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prices","outputs":[{"internalType":"uint256","name":"whitePrice","type":"uint256"},{"internalType":"uint256","name":"publicPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"setNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"whiteUsers","type":"address[]"}],"name":"setWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleReveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userWhiteMints","outputs":[{"internalType":"uint256","name":"mints","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"whiteListed","outputs":[{"internalType":"bool","name":"listed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whiteMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260405180602001604052806000815250600290805190602001906200002b9291906200034b565b506040518060400160405280600f81526020017f5375727265616c20536f6369657479000000000000000000000000000000000081525060049080519060200190620000799291906200034b565b506040518060400160405280600781526020017f5355525245414c0000000000000000000000000000000000000000000000000081525060059080519060200190620000c79291906200034b565b506000600a60006101000a81548160ff02191690831515021790555067016345785d8a0000600b55670214e8348c4f0000600c553480156200010857600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea10286600160405180821515815260200191505060405180910390a2620002187381cc8a4bb62ff93f62ec94e3aa40a3a862c54368600a6200021e60201b60201c565b62000401565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000805b82811015620003455760036000815480929190600101919050559150836006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48060010190506200026f565b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003835760008555620003cf565b82601f106200039e57805160ff1916838001178555620003cf565b82800160010185558215620003cf579182015b82811115620003ce578251825591602001919060010190620003b1565b5b509050620003de9190620003e2565b5090565b5b80821115620003fd576000816000905550600101620003e3565b5090565b61390380620004116000396000f3fe6080604052600436106101e35760003560e01c80638da5cb5b11610102578063d3419bf311610095578063e985e9c511610064578063e985e9c514610d44578063f3fef3a314610dcb578063f5a1f5b414610e26578063fa0fca8414610e77576101e3565b8063d3419bf314610c39578063d4d2e7f214610c6b578063e4fc6b6d14610cd2578063e58306f914610ce9576101e3565b8063a5e90eee116100d1578063a5e90eee146109f3578063b88d4fde14610a50578063c87b56dd14610b20578063c9c2f9dd14610bd4576101e3565b80638da5cb5b146107ea57806395d89b411461082b578063a22cb465146108bb578063a49340cc14610918576101e3565b806342842e0e1161017a57806370a082311161014957806370a082311461066f57806372770987146106d45780637479b6b61461075a578063775b9c1314610764576101e3565b806342842e0e146105335780635a950e3e146105ae5780635b8ad429146105f35780636352211e1461060a576101e3565b80631249c58b116101b65780631249c58b146103a857806318160ddd146103b257806323b872dd146103dd5780632de5374e14610458576101e3565b806301ffc9a7146101e857806306fdde0314610258578063081812fc146102e8578063095ea7b31461034d575b600080fd5b3480156101f457600080fd5b506102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ede565b60405180821515815260200191505060405180910390f35b34801561026457600080fd5b5061026d610fc0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ad578082015181840152602081019050610292565b50505050905090810190601f1680156102da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f457600080fd5b506103216004803603602081101561030b57600080fd5b8101908080359060200190929190505050611062565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035957600080fd5b506103a66004803603604081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110fd565b005b6103b06111d9565b005b3480156103be57600080fd5b506103c7611271565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506104566004803603606081101561040057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061127b565b005b34801561046457600080fd5b506105316004803603604081101561047b57600080fd5b810190808035906020019064010000000081111561049857600080fd5b8201836020820111156104aa57600080fd5b803590602001918460018302840111640100000000831117156104cc57600080fd5b9091929391929390803590602001906401000000008111156104ed57600080fd5b8201836020820111156104ff57600080fd5b8035906020019184600183028401116401000000008311171561052157600080fd5b90919293919293905050506112ea565b005b34801561053f57600080fd5b506105ac6004803603606081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d3565b005b3480156105ba57600080fd5b506105f1600480360360408110156105d157600080fd5b810190808035906020019092919080359060200190929190505050611442565b005b3480156105ff57600080fd5b50610608611513565b005b34801561061657600080fd5b506106436004803603602081101561062d57600080fd5b81019080803590602001909291905050506115fe565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067b57600080fd5b506106be6004803603602081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c6565b6040518082815260200191505060405180910390f35b3480156106e057600080fd5b50610758600480360360208110156106f757600080fd5b810190808035906020019064010000000081111561071457600080fd5b82018360208201111561072657600080fd5b8035906020019184600183028401116401000000008311171561074857600080fd5b9091929391929390505050611794565b005b610762611869565b005b34801561077057600080fd5b506107e86004803603602081101561078757600080fd5b81019080803590602001906401000000008111156107a457600080fd5b8201836020820111156107b657600080fd5b803590602001918460208302840111640100000000831117156107d857600080fd5b9091929391929390505050611ab3565b005b3480156107f657600080fd5b506107ff611c18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083757600080fd5b50610840611c41565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610880578082015181840152602081019050610865565b50505050905090810190601f1680156108ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c757600080fd5b50610916600480360360408110156108de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ce3565b005b34801561092457600080fd5b506109f16004803603604081101561093b57600080fd5b810190808035906020019064010000000081111561095857600080fd5b82018360208201111561096a57600080fd5b8035906020019184602083028401116401000000008311171561098c57600080fd5b9091929391929390803590602001906401000000008111156109ad57600080fd5b8201836020820111156109bf57600080fd5b803590602001918460208302840111640100000000831117156109e157600080fd5b9091929391929390505050611e84565b005b3480156109ff57600080fd5b50610a4e60048036036040811015610a1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fad565b005b348015610a5c57600080fd5b50610b1e60048036036080811015610a7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ada57600080fd5b820183602082011115610aec57600080fd5b80359060200191846001830284011164010000000083111715610b0e57600080fd5b9091929391929390505050612119565b005b348015610b2c57600080fd5b50610b5960048036036020811015610b4357600080fd5b81019080803590602001909291905050506121cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b99578082015181840152602081019050610b7e565b50505050905090810190601f168015610bc65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610be057600080fd5b50610c2360048036036020811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238d565b6040518082815260200191505060405180910390f35b348015610c4557600080fd5b50610c4e6123d6565b604051808381526020018281526020019250505060405180910390f35b348015610c7757600080fd5b50610cba60048036036020811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e7565b60405180821515815260200191505060405180910390f35b348015610cde57600080fd5b50610ce761243d565b005b348015610cf557600080fd5b50610d4260048036036040811015610d0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a0e565b005b348015610d5057600080fd5b50610db360048036036040811015610d6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612adb565b60405180821515815260200191505060405180910390f35b348015610dd757600080fd5b50610e2460048036036040811015610dee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b6f565b005b348015610e3257600080fd5b50610e7560048036036020811015610e4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c79565b005b348015610e8357600080fd5b50610ec660048036036020811015610e9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dc0565b60405180821515815260200191505060405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fa957507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610fb95750610fb882612e16565b5b9050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b5050505050905090565b600061106d82612e80565b6110c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613821602c913960400191505060405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061117557506111748133612adb565b5b6111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806137966038913960400191505060405180910390fd5b6111d48383612eec565b505050565b6000600c5434816111e657fe5b049050611388816003540110611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5355525245414c3a20496e73756666696369656e7420546f6b656e730000000081525060200191505060405180910390fd5b61126e3382612fd0565b50565b6000600354905090565b61128533826130fb565b6112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b6112e58383836132b9565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b8383600491906113ba92919061369a565b508181600591906113cc92919061369a565b5050505050565b6113dd33826130fb565b611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b61143d8383836132b9565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b81600b8190555080600c819055505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137f86029913960400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806137ce602a913960400191505060405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611853576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b81816002919061186492919061369a565b505050565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611928576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5355525245414c3a20496e76616c69642041636365737300000000000000000081525060200191505060405180910390fd5b6000600b54348161193557fe5b04905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5355525245414c3a204d696e74696e67204c696d69742052656163686564000081525060200191505060405180910390fd5b80600e600082825401925050819055506105dc600e5410611aa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806138a76027913960400191505060405180910390fd5b611ab03382612fd0565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b600082829050905060005b81811015611c12576001600f6000868685818110611b9957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611b7f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cd95780601f10611cae57610100808354040283529160200191611cd9565b820191906000526020600020905b815481529060010190602001808311611cbc57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b600084849050905060005b81811015611fa557611f9a868683818110611f6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110611f8e57fe5b90506020020135612fd0565b806001019050611f4e565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea102868260405180821515815260200191505060405180910390a25050565b61212333846130fb565b612178576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b6121c885858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061354f565b5050505050565b6060600a60009054906101000a900460ff1661228857600260405160200180828054600181600116156101000203166002900480156122455780601f10612223576101008083540402835291820191612245565b820191906000526020600020905b815481529060010190602001808311612231575b5050807f7365637265742e6a736f6e000000000000000000000000000000000000000000815250600b019150506040516020818303038152906040529050612388565b816001019150600261229983613560565b60405160200180838054600181600116156101000203166002900480156122f75780601f106122d55761010080835404028352918201916122f7565b820191906000526020600020905b8154815290600101906020018083116122e3575b505082805190602001908083835b602083106123285780518252602082019150602081019050602083039250612305565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506005019250505060405160208183030381529060405290505b919050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600b549150600c5490509091565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b6000612710478161250957fe5b0490507381cc8a4bb62ff93f62ec94e3aa40a3a862c5436873ffffffffffffffffffffffffffffffffffffffff166108fc61138883029081150290604051600060405180830381858888f1935050505061256257600080fd5b7310f3667970fad7da441261c80727cacd8b16480673ffffffffffffffffffffffffffffffffffffffff166108fc61038483029081150290604051600060405180830381858888f193505050506125b857600080fd5b737a6c41c001d6fbf4ae6022e936b24d0d39ae3a2573ffffffffffffffffffffffffffffffffffffffff166108fc61014583029081150290604051600060405180830381858888f1935050505061260e57600080fd5b736ec4eaa315aba37b7558a66c51d0dd4986128bcb73ffffffffffffffffffffffffffffffffffffffff166108fc61014583029081150290604051600060405180830381858888f1935050505061266457600080fd5b73cc2ba3c4e74a531635b928d2ac5b3f176c8b6ec373ffffffffffffffffffffffffffffffffffffffff166108fc60d883029081150290604051600060405180830381858888f193505050506126b957600080fd5b7337b8c37eb031312c5daaa02fd5bad9dc380a8cc473ffffffffffffffffffffffffffffffffffffffff166108fc607d83029081150290604051600060405180830381858888f1935050505061270e57600080fd5b73c970bd4e2df5f33ea62c72b9c3d808b8a609e5e173ffffffffffffffffffffffffffffffffffffffff166108fc61022683029081150290604051600060405180830381858888f1935050505061276457600080fd5b73ed7adfdbbcb1b5c93fa8b6b28b0fc833fa68bca073ffffffffffffffffffffffffffffffffffffffff166108fc61024483029081150290604051600060405180830381858888f193505050506127ba57600080fd5b7350a583ab2432bf3bc5e7458c8ed10bc5ec3ab23e73ffffffffffffffffffffffffffffffffffffffff166108fc61024483029081150290604051600060405180830381858888f1935050505061281057600080fd5b733b0f95d44f629e8e24a294799c4a1d21f06b696973ffffffffffffffffffffffffffffffffffffffff166108fc60e183029081150290604051600060405180830381858888f1935050505061286557600080fd5b7302916d0f68a02c502476dc630628b01ee36a782673ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f193505050506128ba57600080fd5b7341b6cb632f5707bf80a1c904316b19fcbee2a4cf73ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f1935050505061290f57600080fd5b732c1ba2909a0dc98a6219079fbe9a4ab23517d47e73ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f1935050505061296457600080fd5b7358ee6f81ae4ed77e8dc50344ab7571ea7a75a9b773ffffffffffffffffffffffffffffffffffffffff166108fc601883029081150290604051600060405180830381858888f193505050506129b957600080fd5b733aa599fb8003b94666c9d66db43d859ef5eea29f73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050612a0b57600080fd5b50565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612acd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b612ad78282612fd0565b5050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c74573d6000803e3d6000fd5b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfc39691aec87dc6aa51ff70c0e592f260c54d2ed6c64e8c4c2306da0eec872b60405160405180910390a250565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000805b828110156130f55760036000815480929190600101919050559150836006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050613021565b50505050565b600061310682612e80565b61315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061376a602c913960400191505060405180910390fd5b60006006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061322b57508373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8061323c575061323b8185612adb565b5b6132ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f7420617070726f766564206f72206f776e657200000081525060200191505060405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061384d6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156133f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137466024913960400191505060405180910390fd5b613401600082612eec565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61355a8484846132b9565b50505050565b606060008214156135a8576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613695565b600082905060005b600082146135d2578080600101915050600a82816135ca57fe5b0491506135b0565b60008167ffffffffffffffff811180156135eb57600080fd5b506040519080825280601f01601f19166020018201604052801561361e5781602001600182028036833780820191505090505b5090505b6000851461368e57600182039150600a858161363a57fe5b0660300160f81b81838151811061364d57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a858161368657fe5b049450613622565b8093505050505b919050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826136d05760008555613717565b82601f106136e957803560ff1916838001178555613717565b82800160010185558215613717579182015b828111156137165782358255916020019190600101906136fb565b5b5090506137249190613728565b5090565b5b80821115613741576000816000905550600101613729565b509056fe4552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665645355525245414c3a20496e73756666696369656e74205768697465204d696e7420546f6b656e73a2646970667358221220880625d8f8206564f8908e843e0feee39e7503c006e3ff4ef64c522014141a8c64736f6c63430007060033
Deployed Bytecode
0x6080604052600436106101e35760003560e01c80638da5cb5b11610102578063d3419bf311610095578063e985e9c511610064578063e985e9c514610d44578063f3fef3a314610dcb578063f5a1f5b414610e26578063fa0fca8414610e77576101e3565b8063d3419bf314610c39578063d4d2e7f214610c6b578063e4fc6b6d14610cd2578063e58306f914610ce9576101e3565b8063a5e90eee116100d1578063a5e90eee146109f3578063b88d4fde14610a50578063c87b56dd14610b20578063c9c2f9dd14610bd4576101e3565b80638da5cb5b146107ea57806395d89b411461082b578063a22cb465146108bb578063a49340cc14610918576101e3565b806342842e0e1161017a57806370a082311161014957806370a082311461066f57806372770987146106d45780637479b6b61461075a578063775b9c1314610764576101e3565b806342842e0e146105335780635a950e3e146105ae5780635b8ad429146105f35780636352211e1461060a576101e3565b80631249c58b116101b65780631249c58b146103a857806318160ddd146103b257806323b872dd146103dd5780632de5374e14610458576101e3565b806301ffc9a7146101e857806306fdde0314610258578063081812fc146102e8578063095ea7b31461034d575b600080fd5b3480156101f457600080fd5b506102406004803603602081101561020b57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ede565b60405180821515815260200191505060405180910390f35b34801561026457600080fd5b5061026d610fc0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ad578082015181840152602081019050610292565b50505050905090810190601f1680156102da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f457600080fd5b506103216004803603602081101561030b57600080fd5b8101908080359060200190929190505050611062565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035957600080fd5b506103a66004803603604081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110fd565b005b6103b06111d9565b005b3480156103be57600080fd5b506103c7611271565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506104566004803603606081101561040057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061127b565b005b34801561046457600080fd5b506105316004803603604081101561047b57600080fd5b810190808035906020019064010000000081111561049857600080fd5b8201836020820111156104aa57600080fd5b803590602001918460018302840111640100000000831117156104cc57600080fd5b9091929391929390803590602001906401000000008111156104ed57600080fd5b8201836020820111156104ff57600080fd5b8035906020019184600183028401116401000000008311171561052157600080fd5b90919293919293905050506112ea565b005b34801561053f57600080fd5b506105ac6004803603606081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d3565b005b3480156105ba57600080fd5b506105f1600480360360408110156105d157600080fd5b810190808035906020019092919080359060200190929190505050611442565b005b3480156105ff57600080fd5b50610608611513565b005b34801561061657600080fd5b506106436004803603602081101561062d57600080fd5b81019080803590602001909291905050506115fe565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067b57600080fd5b506106be6004803603602081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c6565b6040518082815260200191505060405180910390f35b3480156106e057600080fd5b50610758600480360360208110156106f757600080fd5b810190808035906020019064010000000081111561071457600080fd5b82018360208201111561072657600080fd5b8035906020019184600183028401116401000000008311171561074857600080fd5b9091929391929390505050611794565b005b610762611869565b005b34801561077057600080fd5b506107e86004803603602081101561078757600080fd5b81019080803590602001906401000000008111156107a457600080fd5b8201836020820111156107b657600080fd5b803590602001918460208302840111640100000000831117156107d857600080fd5b9091929391929390505050611ab3565b005b3480156107f657600080fd5b506107ff611c18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083757600080fd5b50610840611c41565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610880578082015181840152602081019050610865565b50505050905090810190601f1680156108ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c757600080fd5b50610916600480360360408110156108de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ce3565b005b34801561092457600080fd5b506109f16004803603604081101561093b57600080fd5b810190808035906020019064010000000081111561095857600080fd5b82018360208201111561096a57600080fd5b8035906020019184602083028401116401000000008311171561098c57600080fd5b9091929391929390803590602001906401000000008111156109ad57600080fd5b8201836020820111156109bf57600080fd5b803590602001918460208302840111640100000000831117156109e157600080fd5b9091929391929390505050611e84565b005b3480156109ff57600080fd5b50610a4e60048036036040811015610a1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fad565b005b348015610a5c57600080fd5b50610b1e60048036036080811015610a7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ada57600080fd5b820183602082011115610aec57600080fd5b80359060200191846001830284011164010000000083111715610b0e57600080fd5b9091929391929390505050612119565b005b348015610b2c57600080fd5b50610b5960048036036020811015610b4357600080fd5b81019080803590602001909291905050506121cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b99578082015181840152602081019050610b7e565b50505050905090810190601f168015610bc65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610be057600080fd5b50610c2360048036036020811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238d565b6040518082815260200191505060405180910390f35b348015610c4557600080fd5b50610c4e6123d6565b604051808381526020018281526020019250505060405180910390f35b348015610c7757600080fd5b50610cba60048036036020811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e7565b60405180821515815260200191505060405180910390f35b348015610cde57600080fd5b50610ce761243d565b005b348015610cf557600080fd5b50610d4260048036036040811015610d0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a0e565b005b348015610d5057600080fd5b50610db360048036036040811015610d6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612adb565b60405180821515815260200191505060405180910390f35b348015610dd757600080fd5b50610e2460048036036040811015610dee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b6f565b005b348015610e3257600080fd5b50610e7560048036036020811015610e4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c79565b005b348015610e8357600080fd5b50610ec660048036036020811015610e9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dc0565b60405180821515815260200191505060405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fa957507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610fb95750610fb882612e16565b5b9050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b5050505050905090565b600061106d82612e80565b6110c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613821602c913960400191505060405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061117557506111748133612adb565b5b6111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806137966038913960400191505060405180910390fd5b6111d48383612eec565b505050565b6000600c5434816111e657fe5b049050611388816003540110611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5355525245414c3a20496e73756666696369656e7420546f6b656e730000000081525060200191505060405180910390fd5b61126e3382612fd0565b50565b6000600354905090565b61128533826130fb565b6112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b6112e58383836132b9565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b8383600491906113ba92919061369a565b508181600591906113cc92919061369a565b5050505050565b6113dd33826130fb565b611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b61143d8383836132b9565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b81600b8190555080600c819055505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b6000806006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137f86029913960400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806137ce602a913960400191505060405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611853576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b81816002919061186492919061369a565b505050565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611928576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5355525245414c3a20496e76616c69642041636365737300000000000000000081525060200191505060405180910390fd5b6000600b54348161193557fe5b04905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5355525245414c3a204d696e74696e67204c696d69742052656163686564000081525060200191505060405180910390fd5b80600e600082825401925050819055506105dc600e5410611aa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806138a76027913960400191505060405180910390fd5b611ab03382612fd0565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b600082829050905060005b81811015611c12576001600f6000868685818110611b9957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611b7f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cd95780601f10611cae57610100808354040283529160200191611cd9565b820191906000526020600020905b815481529060010190602001808311611cbc57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b600084849050905060005b81811015611fa557611f9a868683818110611f6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110611f8e57fe5b90506020020135612fd0565b806001019050611f4e565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea102868260405180821515815260200191505060405180910390a25050565b61212333846130fb565b612178576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806138766031913960400191505060405180910390fd5b6121c885858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061354f565b5050505050565b6060600a60009054906101000a900460ff1661228857600260405160200180828054600181600116156101000203166002900480156122455780601f10612223576101008083540402835291820191612245565b820191906000526020600020905b815481529060010190602001808311612231575b5050807f7365637265742e6a736f6e000000000000000000000000000000000000000000815250600b019150506040516020818303038152906040529050612388565b816001019150600261229983613560565b60405160200180838054600181600116156101000203166002900480156122f75780601f106122d55761010080835404028352918201916122f7565b820191906000526020600020905b8154815290600101906020018083116122e3575b505082805190602001908083835b602083106123285780518252602082019150602081019050602083039250612305565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506005019250505060405160208183030381529060405290505b919050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600b549150600c5490509091565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b6000612710478161250957fe5b0490507381cc8a4bb62ff93f62ec94e3aa40a3a862c5436873ffffffffffffffffffffffffffffffffffffffff166108fc61138883029081150290604051600060405180830381858888f1935050505061256257600080fd5b7310f3667970fad7da441261c80727cacd8b16480673ffffffffffffffffffffffffffffffffffffffff166108fc61038483029081150290604051600060405180830381858888f193505050506125b857600080fd5b737a6c41c001d6fbf4ae6022e936b24d0d39ae3a2573ffffffffffffffffffffffffffffffffffffffff166108fc61014583029081150290604051600060405180830381858888f1935050505061260e57600080fd5b736ec4eaa315aba37b7558a66c51d0dd4986128bcb73ffffffffffffffffffffffffffffffffffffffff166108fc61014583029081150290604051600060405180830381858888f1935050505061266457600080fd5b73cc2ba3c4e74a531635b928d2ac5b3f176c8b6ec373ffffffffffffffffffffffffffffffffffffffff166108fc60d883029081150290604051600060405180830381858888f193505050506126b957600080fd5b7337b8c37eb031312c5daaa02fd5bad9dc380a8cc473ffffffffffffffffffffffffffffffffffffffff166108fc607d83029081150290604051600060405180830381858888f1935050505061270e57600080fd5b73c970bd4e2df5f33ea62c72b9c3d808b8a609e5e173ffffffffffffffffffffffffffffffffffffffff166108fc61022683029081150290604051600060405180830381858888f1935050505061276457600080fd5b73ed7adfdbbcb1b5c93fa8b6b28b0fc833fa68bca073ffffffffffffffffffffffffffffffffffffffff166108fc61024483029081150290604051600060405180830381858888f193505050506127ba57600080fd5b7350a583ab2432bf3bc5e7458c8ed10bc5ec3ab23e73ffffffffffffffffffffffffffffffffffffffff166108fc61024483029081150290604051600060405180830381858888f1935050505061281057600080fd5b733b0f95d44f629e8e24a294799c4a1d21f06b696973ffffffffffffffffffffffffffffffffffffffff166108fc60e183029081150290604051600060405180830381858888f1935050505061286557600080fd5b7302916d0f68a02c502476dc630628b01ee36a782673ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f193505050506128ba57600080fd5b7341b6cb632f5707bf80a1c904316b19fcbee2a4cf73ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f1935050505061290f57600080fd5b732c1ba2909a0dc98a6219079fbe9a4ab23517d47e73ffffffffffffffffffffffffffffffffffffffff166108fc603283029081150290604051600060405180830381858888f1935050505061296457600080fd5b7358ee6f81ae4ed77e8dc50344ab7571ea7a75a9b773ffffffffffffffffffffffffffffffffffffffff166108fc601883029081150290604051600060405180830381858888f193505050506129b957600080fd5b733aa599fb8003b94666c9d66db43d859ef5eea29f73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050612a0b57600080fd5b50565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612acd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b612ad78282612fd0565b5050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43464d533a204d4f545f4d414e4147455200000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c74573d6000803e3d6000fd5b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43464d533a204e4f545f4f574e4552000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfc39691aec87dc6aa51ff70c0e592f260c54d2ed6c64e8c4c2306da0eec872b60405160405180910390a250565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000805b828110156130f55760036000815480929190600101919050559150836006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050613021565b50505050565b600061310682612e80565b61315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061376a602c913960400191505060405180910390fd5b60006006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061322b57508373ffffffffffffffffffffffffffffffffffffffff166008600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8061323c575061323b8185612adb565b5b6132ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4552433732313a204e6f7420617070726f766564206f72206f776e657200000081525060200191505060405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061384d6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156133f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137466024913960400191505060405180910390fd5b613401600082612eec565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61355a8484846132b9565b50505050565b606060008214156135a8576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613695565b600082905060005b600082146135d2578080600101915050600a82816135ca57fe5b0491506135b0565b60008167ffffffffffffffff811180156135eb57600080fd5b506040519080825280601f01601f19166020018201604052801561361e5781602001600182028036833780820191505090505b5090505b6000851461368e57600182039150600a858161363a57fe5b0660300160f81b81838151811061364d57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a858161368657fe5b049450613622565b8093505050505b919050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826136d05760008555613717565b82601f106136e957803560ff1916838001178555613717565b82800160010185558215613717579182015b828111156137165782358255916020019190600101906136fb565b5b5090506137249190613728565b5090565b5b80821115613741576000816000905550600101613729565b509056fe4552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665645355525245414c3a20496e73756666696369656e74205768697465204d696e7420546f6b656e73a2646970667358221220880625d8f8206564f8908e843e0feee39e7503c006e3ff4ef64c522014141a8c64736f6c63430007060033
Deployed Bytecode Sourcemap
10395:5030:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4902:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5645:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6117:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7115:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15207:213;;;:::i;:::-;;5853:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7724:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6794:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7976:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12587:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12755:78;;;;;;;;;;;;;:::i;:::-;;5404:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5194:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6687:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14738:461;;;:::i;:::-;;11996:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3535:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5745:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7435:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12358:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4020:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8230:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11102:283;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11683:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11393:159;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3622:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12956:1596;;;;;;;;;;;;;:::i;:::-;;12250:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6340:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12841:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3891:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11560:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4902:284;4996:4;5035:25;5020:40;;;:11;:40;;;;:105;;;;5092:33;5077:48;;;:11;:48;;;;5020:105;:158;;;;5142:36;5166:11;5142:23;:36::i;:::-;5020:158;5013:165;;4902:284;;;:::o;5645:92::-;5691:13;5724:5;5717:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5645:92;:::o;6117:215::-;6187:7;6215:16;6223:7;6215;:16::i;:::-;6207:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6300:15;:24;6316:7;6300:24;;;;;;;;;;;;;;;;;;;;;6293:31;;6117:215;;;:::o;7115:312::-;7190:13;7206:7;:16;7214:7;7206:16;;;;;;;;;;;;;;;;;;;;;7190:32;;7257:5;7243:19;;:10;:19;;;:58;;;;7266:35;7283:5;7290:10;7266:16;:35::i;:::-;7243:58;7235:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7398:21;7407:2;7411:7;7398:8;:21::i;:::-;7115:312;;;:::o;15207:213::-;15251:14;15280:12;;15268:9;:24;;;;;;15251:41;;15337:4;15328:6;15313:12;;:21;:28;15305:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15387:25;15393:10;15405:6;15387:5;:25::i;:::-;15207:213;:::o;5853:82::-;5905:7;5921:12;;5914:19;;5853:82;:::o;7724:244::-;7826:39;7845:10;7857:7;7826:18;:39::i;:::-;7818:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7932:28;7942:4;7948:2;7952:7;7932:9;:28::i;:::-;7724:244;;;:::o;6794:141::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:4:::1;;6888:5;:12;;;;;;;:::i;:::-;;6921:6;;6911:7;:16;;;;;;;:::i;:::-;;6794:141:::0;;;;:::o;7976:246::-;8082:39;8101:10;8113:7;8082:18;:39::i;:::-;8074:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8186:28;8196:4;8202:2;8206:7;8186:9;:28::i;:::-;7976:246;;;:::o;12587:160::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12692:10:::1;12678:11;:24;;;;12728:11;12713:12;:26;;;;12587:160:::0;;:::o;12755:78::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12818:7:::1;;;;;;;;;;;12817:8;12807:7;;:18;;;;;;;;;;;;;;;;;;12755:78::o:0;5404:233::-;5470:7;5490:13;5506:7;:16;5514:7;5506:16;;;;;;;;;;;;;;;;;;;;;5490:32;;5558:1;5541:19;;:5;:19;;;;5533:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5624:5;5617:12;;;5404:233;;;:::o;5194:202::-;5260:7;5305:1;5288:19;;:5;:19;;;;5280:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5372:9;:16;5382:5;5372:16;;;;;;;;;;;;;;;;5365:23;;5194:202;;;:::o;6687:99::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6772:6:::1;;6762:7;:16;;;;;;;:::i;:::-;;6687:99:::0;;:::o;14738:461::-;14795:12;:24;14808:10;14795:24;;;;;;;;;;;;;;;;;;;;;;;;;14787:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:14;14890:11;;14878:9;:23;;;;;;14861:40;;14945:6;14914:15;:27;14930:10;14914:27;;;;;;;;;;;;;;;;:37;;;;;;;;;;;15000:2;14970:15;:27;14986:10;14970:27;;;;;;;;;;;;;;;;:32;14962:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15066:6;15050:12;;:22;;;;;;;;;;;15106:4;15091:12;;:19;15083:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15166:25;15172:10;15184:6;15166:5;:25::i;:::-;14738:461;:::o;11996:246::-;3217:6;;;;;;;;;;3203:20;;:10;:20;;;3195:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12075:12:::1;12090:10;;:17;;12075:32;;12140:9;12136:99;12155:4;12151:1;:8;12136:99;;;12215:4;12185:12;:27;12198:10;;12209:1;12198:13;;;;;;;;;;;;;;;12185:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12161:3;;;;;12136:99;;;;3254:1;11996:246:::0;;:::o;3535:79::-;3573:7;3600:6;;;;;;;;;;;3593:13;;3535:79;:::o;5745:96::-;5793:13;5826:7;5819:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5745:96;:::o;7435:281::-;7542:10;7530:22;;:8;:22;;;;7522:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7638:8;7595:18;:30;7614:10;7595:30;;;;;;;;;;;;;;;:40;7626:8;7595:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;7689:8;7662:46;;7677:10;7662:46;;;7699:8;7662:46;;;;;;;;;;;;;;;;;;;;7435:281;;:::o;12358:221::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12455:12:::1;12470:2;;:9;;12455:24;;12496:9;12492:80;12511:4;12507:1;:8;12492:80;;;12537:23;12543:2;;12546:1;12543:5;;;;;;;;;;;;;;;12550:6;;12557:1;12550:9;;;;;;;;;;;;;12537:5;:23::i;:::-;12517:3;;;;;12492:80;;;;3360:1;12358:221:::0;;;;:::o;4020:141::-;3217:6;;;;;;;;;;3203:20;;:10;:20;;;3195:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4109:5:::1;4092:8;:14;4101:4;4092:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4141:4;4130:23;;;4147:5;4130:23;;;;;;;;;;;;;;;;;;;;4020:141:::0;;:::o;8230:279::-;8358:39;8377:10;8389:7;8358:18;:39::i;:::-;8350:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8462:39;8476:4;8482:2;8486:7;8495:5;;8462:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;8230:279;;;;;:::o;11102:283::-;11169:13;11199:7;;;;;;;;;;;11195:71;;11240:7;11223:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11209:55;;;;11195:71;11286:9;;;;;11337:7;11346:18;:7;:16;:18::i;:::-;11320:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11306:69;;11102:283;;;;:::o;11683:122::-;11743:13;11776:15;:21;11792:4;11776:21;;;;;;;;;;;;;;;;11769:28;;11683:122;;;:::o;11393:159::-;11431:18;11451:19;11496:11;;11483:24;;11532:12;;11518:26;;11393:159;;:::o;3622:99::-;3675:4;3699:8;:14;3708:4;3699:14;;;;;;;;;;;;;;;;;;;;;;;;;3692:21;;3622:99;;;:::o;12956:1596::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13014:15:::1;13056:5;13032:21;:29;;;;;;13014:47;;13199:42;13191:56;;:72;13258:4;13248:7;:14;13191:72;;;;;;;;;;;;;;;;;;;;;;;13183:81;;;::::0;::::1;;13291:42;13283:56;;:71;13350:3;13340:7;:13;13283:71;;;;;;;;;;;;;;;;;;;;;;;13275:80;;;::::0;::::1;;13382:42;13374:56;;:71;13441:3;13431:7;:13;13374:71;;;;;;;;;;;;;;;;;;;;;;;13366:80;;;::::0;::::1;;13473:42;13465:56;;:71;13532:3;13522:7;:13;13465:71;;;;;;;;;;;;;;;;;;;;;;;13457:80;;;::::0;::::1;;13564:42;13556:56;;:71;13623:3;13613:7;:13;13556:71;;;;;;;;;;;;;;;;;;;;;;;13548:80;;;::::0;::::1;;13655:42;13647:56;;:71;13714:3;13704:7;:13;13647:71;;;;;;;;;;;;;;;;;;;;;;;13639:80;;;::::0;::::1;;13746:42;13738:56;;:71;13805:3;13795:7;:13;13738:71;;;;;;;;;;;;;;;;;;;;;;;13730:80;;;::::0;::::1;;13837:42;13829:56;;:71;13896:3;13886:7;:13;13829:71;;;;;;;;;;;;;;;;;;;;;;;13821:80;;;::::0;::::1;;13928:42;13920:56;;:71;13987:3;13977:7;:13;13920:71;;;;;;;;;;;;;;;;;;;;;;;13912:80;;;::::0;::::1;;14019:42;14011:56;;:71;14078:3;14068:7;:13;14011:71;;;;;;;;;;;;;;;;;;;;;;;14003:80;;;::::0;::::1;;14110:42;14102:56;;:70;14169:2;14159:7;:12;14102:70;;;;;;;;;;;;;;;;;;;;;;;14094:79;;;::::0;::::1;;14200:42;14192:56;;:70;14259:2;14249:7;:12;14192:70;;;;;;;;;;;;;;;;;;;;;;;14184:79;;;::::0;::::1;;14290:42;14282:56;;:70;14349:2;14339:7;:12;14282:70;;;;;;;;;;;;;;;;;;;;;;;14274:79;;;::::0;::::1;;14380:42;14372:56;;:70;14439:2;14429:7;:12;14372:70;;;;;;;;;;;;;;;;;;;;;;;14364:79;;;::::0;::::1;;14472:42;14464:56;;:79;14521:21;14464:79;;;;;;;;;;;;;;;;;;;;;;;14456:88;;;::::0;::::1;;3360:1;12956:1596::o:0;12250:100::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12325:17:::1;12331:2;12335:6;12325:5;:17::i;:::-;12250:100:::0;;:::o;6340:156::-;6429:4;6453:18;:25;6472:5;6453:25;;;;;;;;;;;;;;;:35;6479:8;6453:35;;;;;;;;;;;;;;;;;;;;;;;;;6446:42;;6340:156;;;;:::o;12841:107::-;3309:8;:20;3318:10;3309:20;;;;;;;;;;;;;;;;;;;;;;;;;3301:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12922:2:::1;:11;;:18;12934:5;12922:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12841:107:::0;;:::o;3891:121::-;3217:6;;;;;;;;;;3203:20;;:10;:20;;;3195:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3961:4:::1;3952:6;::::0;:13:::1;;;;;;;;;;;;;;;;;;3999:4;3981:23;;;;;;;;;;;;3891:121:::0;:::o;11560:114::-;11617:11;11648:12;:18;11661:4;11648:18;;;;;;;;;;;;;;;;;;;;;;;;;11641:25;;11560:114;;;:::o;1872:157::-;1957:4;1996:25;1981:40;;;:11;:40;;;;1974:47;;1872:157;;;:::o;8843:119::-;8900:4;8952:1;8924:30;;:7;:16;8932:7;8924:16;;;;;;;;;;;;;;;;;;;;;:30;;;;8917:37;;8843:119;;;:::o;9859:159::-;9953:2;9926:15;:24;9942:7;9926:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;10002:7;9998:2;9971:39;;9980:7;:16;9988:7;9980:16;;;;;;;;;;;;;;;;;;;;;9971:39;;;;;;;;;;;;9859:159;;:::o;10026:362::-;10110:6;10091:9;:15;10101:4;10091:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;10137:15;10167:9;10163:208;10182:6;10178:1;:10;10163:208;;;10220:12;;:14;;;;;;;;;;;;10210:24;;10282:4;10263:7;:16;10271:7;10263:16;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10351:7;10345:4;10324:35;;10341:1;10324:35;;;;;;;;;;;;10190:3;;;;;10163:208;;;;10026:362;;;:::o;8970:392::-;9055:4;9080:16;9088:7;9080;:16::i;:::-;9072:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9156:13;9172:7;:16;9180:7;9172:16;;;;;;;;;;;;;;;;;;;;;9156:32;;9218:5;9207:16;;:7;:16;;;:55;;;;9255:7;9227:35;;:15;:24;9243:7;9227:24;;;;;;;;;;;;;;;;;;;;;:35;;;9207:55;:91;;;;9266:32;9283:5;9290:7;9266:16;:32::i;:::-;9207:91;9199:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9350:4;9343:11;;;8970:392;;;;:::o;9374:477::-;9484:4;9464:24;;:7;:16;9472:7;9464:16;;;;;;;;;;;;;;;;;;;;;:24;;;9456:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9567:1;9553:16;;:2;:16;;;;9545:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9675:29;9692:1;9696:7;9675:8;:29::i;:::-;9736:1;9717:9;:15;9727:4;9717:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9765:1;9748:9;:13;9758:2;9748:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9796:2;9777:7;:16;9785:7;9777:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9835:7;9831:2;9816:27;;9825:4;9816:27;;;;;;;;;;;;9374:477;;;:::o;8693:142::-;8799:28;8809:4;8815:2;8819:7;8799:9;:28::i;:::-;8693:142;;;;:::o;2061:532::-;2117:13;2156:1;2147:5;:10;2143:53;;;2174:10;;;;;;;;;;;;;;;;;;;;;2143:53;2206:12;2221:5;2206:20;;2237:14;2262:78;2277:1;2269:4;:9;2262:78;;2295:8;;;;;;;2326:2;2318:10;;;;;;;;;2262:78;;;2350:19;2382:6;2372:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:39;;2400:154;2416:1;2407:5;:10;2400:154;;2444:1;2434:11;;;;2511:2;2503:5;:10;;;;;;2490:2;:24;2477:39;;2460:6;2467;2460:14;;;;;;;;;;;:56;;;;;;;;;;;2540:2;2531:11;;;;;;;;;2400:154;;;2578:6;2564:21;;;;;2061:532;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://880625d8f8206564f8908e843e0feee39e7503c006e3ff4ef64c522014141a8c
Loading...
Loading
Loading...
Loading
[ 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.