Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
5,000,000,000 TETRIS
Holders
119
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
9,307,972.605790472 TETRISValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TETRIS
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-01 */ /* Built and deployed using FTP Deployer, a service of Fair Token Project. Deploy your own token today at https://app.fairtokenproject.com#deploy TETRIS Socials: Telegram: https://t.me/Tetris_Token Twitter: https://twitter.com/Tetristoken Website: https://Tetristoken.com Fair Token Project is not responsible for the actions of users of this service. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private m_Owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); m_Owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return m_Owner; } function transferOwnership(address _address) public virtual onlyOwner { emit OwnershipTransferred(m_Owner, _address); m_Owner = _address; } modifier onlyOwner() { require(_msgSender() == m_Owner, "Ownable: caller is not the owner"); _; } } contract Taxable is Ownable { using SafeMath for uint256; FTPExternal External; address payable private m_ExternalServiceAddress = payable(0x4f53cDEC355E42B3A68bAadD26606b7F82fDb0f7); address payable private m_DevAddress; uint256 private m_DevAlloc = 1000; address internal m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00; uint256[] m_TaxAlloc; address payable[] m_TaxAddresses; mapping (address => uint256) private m_TaxIdx; uint256 public m_TotalAlloc; bool private m_DidDeploy = false; function initTax() internal virtual { External = FTPExternal(m_ExternalServiceAddress); m_DevAddress = payable(address(External)); m_TaxAlloc = new uint24[](0); m_TaxAddresses = new address payable[](0); m_TaxAlloc.push(0); m_TaxAddresses.push(payable(address(0))); setTaxAlloc(m_DevAddress, m_DevAlloc); setTaxAlloc(payable(0x630Ed22F55B555f4f2B3dAf211949b91519c0499), 1600); setTaxAlloc(payable(0xb2018E84360670F3887a5f15204Ed0d01E778E0b), 1600); setTaxAlloc(payable(0xaAF46150650E84971c2De62a9A992246705db1e3), 1600); setTaxAlloc(payable(0x089e519C00F6cdF8eC6e75a5FcC1FB0601a7b41C), 1600); setTaxAlloc(payable(0xFFcd7474c9390ee04132D3673AEB79d7D327b125), 1600); m_DidDeploy = true; } function payTaxes(uint256 _eth, uint256 _d) internal virtual { for (uint i = 1; i < m_TaxAlloc.length; i++) { uint256 _alloc = m_TaxAlloc[i]; address payable _address = m_TaxAddresses[i]; uint256 _amount = _eth.mul(_alloc).div(_d); if (_amount > 1){ _address.transfer(_amount); if(_address == m_DevAddress) External.deposit(_amount); } } } function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() { if (m_DidDeploy) { if (_address == m_DevAddress) { require(_msgSender() == m_WebThree); } } uint _idx = m_TaxIdx[_address]; if (_idx == 0) { require(m_TotalAlloc.add(_alloc) <= 10500); m_TaxAlloc.push(_alloc); m_TaxAddresses.push(_address); m_TaxIdx[_address] = m_TaxAlloc.length - 1; m_TotalAlloc = m_TotalAlloc.add(_alloc); } else { // update alloc for this address uint256 _priorAlloc = m_TaxAlloc[_idx]; require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500); m_TaxAlloc[_idx] = _alloc; m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc); } } function totalTaxAlloc() internal virtual view returns (uint256) { return m_TotalAlloc; } function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) { uint _idx = m_TaxIdx[_address]; return m_TaxAlloc[_idx]; } function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() { setTaxAlloc(m_DevAddress, 0); m_DevAddress = _address; m_DevAlloc = _alloc; setTaxAlloc(m_DevAddress, m_DevAlloc); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface FTPLiqLock { function lockTokens(address _uniPair, uint256 _epoch, address _tokenPayout) external; } interface FTPExternal { function owner() external returns(address); function deposit(uint256 _amount) external; } contract TETRIS is Context, IERC20, Taxable { using SafeMath for uint256; // TOKEN uint256 private constant TOTAL_SUPPLY = 5000000000 * 10**9; string private m_Name = "TETRIS"; string private m_Symbol = "TETRIS"; uint8 private m_Decimals = 9; // EXCHANGES address private m_UniswapV2Pair; IUniswapV2Router02 private m_UniswapV2Router; // TRANSACTIONS uint256 private m_WalletLimit = TOTAL_SUPPLY.div(50); bool private m_Liquidity = false; event SetTxLimit(uint TxLimit); // MISC address private m_LiqLockSvcAddress = 0x55E2aDaEB2798DDC474311AD98B23d0B62C1EBD8; mapping (address => bool) private m_Blacklist; mapping (address => bool) private m_ExcludedAddresses; mapping (address => uint256) private m_Balances; mapping (address => mapping (address => uint256)) private m_Allowances; uint256 private m_LastEthBal = 0; uint256 private m_Launched = 1753633194; bool private m_IsSwap = false; uint256 private pMax = 100000; // max alloc percentage modifier lockTheSwap { m_IsSwap = true; _; m_IsSwap = false; } modifier onlyDev() { require( _msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized"); _; } receive() external payable {} constructor () { initTax(); m_Balances[address(this)] = TOTAL_SUPPLY; m_ExcludedAddresses[owner()] = true; m_ExcludedAddresses[address(this)] = true; emit Transfer(address(0), address(this), TOTAL_SUPPLY); } function name() public view returns (string memory) { return m_Name; } function symbol() public view returns (string memory) { return m_Symbol; } function decimals() public view returns (uint8) { return m_Decimals; } function totalSupply() public pure override returns (uint256) { return TOTAL_SUPPLY; } function balanceOf(address _account) public view override returns (uint256) { return m_Balances[_account]; } function transfer(address _recipient, uint256 _amount) public override returns (bool) { _transfer(_msgSender(), _recipient, _amount); return true; } function allowance(address _owner, address _spender) public view override returns (uint256) { return m_Allowances[_owner][_spender]; } function approve(address _spender, uint256 _amount) public override returns (bool) { _approve(_msgSender(), _spender, _amount); return true; } function transferFrom(address _sender, address _recipient, uint256 _amount) public override returns (bool) { _transfer(_sender, _recipient, _amount); _approve(_sender, _msgSender(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance")); return true; } function _readyToTax(address _sender) private view returns (bool) { return !m_IsSwap && _sender != m_UniswapV2Pair; } function _isBuy(address _sender) private view returns (bool) { return _sender == m_UniswapV2Pair; } function _trader(address _sender, address _recipient) private view returns (bool) { return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]); } function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) { return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair; } function _txRestricted(address _sender, address _recipient) private view returns (bool) { return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient]; } function _walletCapped(address _recipient) private view returns (bool) { return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && block.timestamp <= m_Launched.add(1 hours); } function _checkTX() private view returns (uint256){ if(block.timestamp <= m_Launched.add(60 minutes)) return TOTAL_SUPPLY.div(100); else return TOTAL_SUPPLY; } function _approve(address _owner, address _spender, uint256 _amount) private { require(_owner != address(0), "ERC20: approve from the zero address"); require(_spender != address(0), "ERC20: approve to the zero address"); m_Allowances[_owner][_spender] = _amount; emit Approval(_owner, _spender, _amount); } function _transfer(address _sender, address _recipient, uint256 _amount) private { require(_sender != address(0), "ERC20: transfer from the zero address"); require(_recipient != address(0), "ERC20: transfer to the zero address"); require(_amount > 0, "Transfer amount must be greater than zero"); require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]); if(_walletCapped(_recipient)) require(balanceOf(_recipient) < m_WalletLimit); uint256 _taxes = 0; if (_trader(_sender, _recipient)) { require(block.timestamp >= m_Launched); if (_txRestricted(_sender, _recipient)) require(_amount <= _checkTX()); _taxes = _getTaxes(_sender, _recipient, _amount); _tax(_sender); } _updateBalances(_sender, _recipient, _amount, _taxes); } function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private { uint256 _netAmount = _amount.sub(_taxes); m_Balances[_sender] = m_Balances[_sender].sub(_amount); m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount); m_Balances[address(this)] = m_Balances[address(this)].add(_taxes); emit Transfer(_sender, _recipient, _netAmount); } function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) { uint256 _ret = 0; if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) { return _ret; } _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc())); return _ret; } function _tax(address _sender) private { if (_readyToTax(_sender)) { uint256 _tokenBalance = balanceOf(address(this)); _swapTokensForETH(_tokenBalance); _disperseEth(); } } function _swapTokensForETH(uint256 _amount) private lockTheSwap { address[] memory _path = new address[](2); _path[0] = address(this); _path[1] = m_UniswapV2Router.WETH(); _approve(address(this), address(m_UniswapV2Router), _amount); m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( _amount, 0, _path, address(this), block.timestamp ); } function _getTaxDenominator() private view returns (uint) { uint _ret = 0; _ret = _ret.add(totalTaxAlloc()); return _ret; } function _disperseEth() private { uint256 _eth = address(this).balance; if (_eth <= m_LastEthBal) return; uint256 _newEth = _eth.sub(m_LastEthBal); uint _d = _getTaxDenominator(); if (_d < 1) return; payTaxes(_newEth, _d); m_LastEthBal = address(this).balance; } function addLiquidity() external onlyOwner() { require(!m_Liquidity,"Liquidity already added."); uint256 _ethBalance = address(this).balance; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); m_UniswapV2Router = _uniswapV2Router; _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY); m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); m_UniswapV2Router.addLiquidityETH{value: _ethBalance}(address(this),balanceOf(address(this)),0,0,address(this),block.timestamp); IERC20(m_UniswapV2Pair).approve(m_LiqLockSvcAddress, type(uint).max); FTPLiqLock(m_LiqLockSvcAddress).lockTokens(m_UniswapV2Pair, block.timestamp.add(3 days), msg.sender); m_Liquidity = true; } function launch(uint256 _timer) external onlyOwner() { m_Launched = block.timestamp.add(_timer); } function checkIfBlacklist(address _address) external view returns (bool) { return m_Blacklist[_address]; } function blacklist(address _address) external onlyOwner() { require(_address != m_UniswapV2Pair, "Can't blacklist Uniswap"); require(_address != address(this), "Can't blacklist contract"); m_Blacklist[_address] = true; } function rmBlacklist(address _address) external onlyOwner() { m_Blacklist[_address] = false; } function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() { setTaxAlloc(_address, _alloc); if (_alloc > 0) { m_ExcludedAddresses[_address] = true; } } function addTaxWhitelist(address _address) external onlyOwner() { m_ExcludedAddresses[_address] = true; } function rmTaxWhitelist(address _address) external onlyOwner() { m_ExcludedAddresses[_address] = false; } function setWebThree(address _address) external onlyDev() { m_WebThree = _address; } }
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":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TxLimit","type":"uint256"}],"name":"SetTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timer","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"m_TotalAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"_address","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setWebThree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052734f53cdec355e42b3a68baadd26606b7f82fdb0f7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600455731011f61df0e2ad67e269f4108098c79e71868e00600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548160ff0219169083151502179055506040518060400160405280600681526020017f5445545249530000000000000000000000000000000000000000000000000000815250600b90805190602001906200011c92919062000dae565b506040518060400160405280600681526020017f5445545249530000000000000000000000000000000000000000000000000000815250600c90805190602001906200016a92919062000dae565b506009600d60006101000a81548160ff021916908360ff160217905550620001aa6032674563918244f400006200049b60201b62001ad71790919060201c565b600f556000601060006101000a81548160ff0219169083151502179055507355e2adaeb2798ddc474311ad98b23d0b62c1ebd8601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060155563688651aa6016556000601760006101000a81548160ff021916908315150217905550620186a06018553480156200025957600080fd5b5060006200026c620004ed60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200031a620004f560201b60201c565b674563918244f40000601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260006200037c6200083060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef674563918244f400006040516200048d91906200104e565b60405180910390a36200131b565b6000620004e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200085960201b60201c565b905092915050565b600033905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600067ffffffffffffffff811115620005d957620005d862001289565b5b604051908082528060200260200182016040528015620006085781602001602082028036833780820191505090505b50600690805190602001906200062092919062000e3f565b50600067ffffffffffffffff8111156200063f576200063e62001289565b5b6040519080825280602002602001820160405280156200066e5781602001602082028036833780820191505090505b50600790805190602001906200068692919062000e98565b50600660009080600181540180825580915050600190039060005260206000200160009091909190915055600760009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200074b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454620008c160201b60201c565b6200077373630ed22f55b555f4f2b3daf211949b91519c0499610640620008c160201b60201c565b6200079b73b2018e84360670f3887a5f15204ed0d01e778e0b610640620008c160201b60201c565b620007c373aaf46150650e84971c2de62a9a992246705db1e3610640620008c160201b60201c565b620007eb73089e519c00f6cdf8ec6e75a5fcc1fb0601a7b41c610640620008c160201b60201c565b6200081373ffcd7474c9390ee04132d3673aeb79d7d327b125610640620008c160201b60201c565b6001600a60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089a919062000fe6565b60405180910390fd5b5060008385620008b49190620010e4565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000908620004ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000958906200102c565b60405180910390fd5b600a60009054906101000a900460ff161562000a3a57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a3957600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000a17620004ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a3857600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141562000bbe5761290462000aa78360095462000c9060201b62001b211790919060201c565b111562000ab357600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905062000b5391906200111c565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000bb28260095462000c9060201b62001b211790919060201c565b60098190555062000c8b565b60006006828154811062000bd75762000bd66200125a565b5b9060005260206000200154905061290462000c1c8262000c088660095462000c9060201b62001b211790919060201c565b62000cf360201b62001b7f1790919060201c565b111562000c2857600080fd5b826006838154811062000c405762000c3f6200125a565b5b906000526020600020018190555062000c838162000c6f8560095462000c9060201b62001b211790919060201c565b62000cf360201b62001b7f1790919060201c565b600981905550505b505050565b600080828462000ca1919062001087565b90508381101562000ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce0906200100a565b60405180910390fd5b8091505092915050565b600062000d3d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000d4560201b60201c565b905092915050565b600083831115829062000d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d87919062000fe6565b60405180910390fd5b506000838562000da191906200111c565b9050809150509392505050565b82805462000dbc9062001197565b90600052602060002090601f01602090048101928262000de0576000855562000e2c565b82601f1062000dfb57805160ff191683800117855562000e2c565b8280016001018555821562000e2c579182015b8281111562000e2b57825182559160200191906001019062000e0e565b5b50905062000e3b919062000f27565b5090565b82805482825590600052602060002090810192821562000e85579160200282015b8281111562000e84578251829062ffffff1690559160200191906001019062000e60565b5b50905062000e94919062000f27565b5090565b82805482825590600052602060002090810192821562000f14579160200282015b8281111562000f135782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000eb9565b5b50905062000f23919062000f27565b5090565b5b8082111562000f4257600081600090555060010162000f28565b5090565b600062000f53826200106b565b62000f5f818562001076565b935062000f7181856020860162001161565b62000f7c81620012b8565b840191505092915050565b600062000f96601b8362001076565b915062000fa382620012c9565b602082019050919050565b600062000fbd60208362001076565b915062000fca82620012f2565b602082019050919050565b62000fe08162001157565b82525050565b6000602082019050818103600083015262001002818462000f46565b905092915050565b60006020820190508181036000830152620010258162000f87565b9050919050565b60006020820190508181036000830152620010478162000fae565b9050919050565b600060208201905062001065600083018462000fd5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620010948262001157565b9150620010a18362001157565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010d957620010d8620011cd565b5b828201905092915050565b6000620010f18262001157565b9150620010fe8362001157565b925082620011115762001110620011fc565b5b828204905092915050565b6000620011298262001157565b9150620011368362001157565b9250828210156200114c576200114b620011cd565b5b828203905092915050565b6000819050919050565b60005b838110156200118157808201518184015260208101905062001164565b8381111562001191576000848401525b50505050565b60006002820490506001821680620011b057607f821691505b60208210811415620011c757620011c66200122b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6140d3806200132b6000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063d0040d701161006f578063d0040d701461048d578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638da5cb5b1461036b57806395d89b411461039657806398d5a5cb146103c1578063a9059cbb146103ea578063ab9562fe14610427578063c7ab8d9d146104505761014b565b8063313ce56711610108578063313ce5671461024957806353477d291461027457806354486ac31461029d57806370a08231146102c857806385b12c7c146103055780638a13792e1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613785565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906132cb565b610617565b6040516101af919061376a565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613927565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906131f8565b610645565b005b34801561021857600080fd5b50610233600480360381019061022e9190613278565b61074a565b604051610240919061376a565b60405180910390f35b34801561025557600080fd5b5061025e610823565b60405161026b919061399c565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190613171565b61083a565b005b3480156102a957600080fd5b506102b261092a565b6040516102bf9190613927565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613171565b610930565b6040516102fc9190613927565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190613338565b610979565b005b34801561033a57600080fd5b50610355600480360381019061035091906131cb565b610a2a565b6040516103629190613927565b60405180910390f35b34801561037757600080fd5b50610380610b2d565b60405161038d9190613665565b60405180910390f35b3480156103a257600080fd5b506103ab610b56565b6040516103b89190613785565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190613171565b610be8565b005b3480156103f657600080fd5b50610411600480360381019061040c91906132cb565b610cd8565b60405161041e919061376a565b60405180910390f35b34801561043357600080fd5b5061044e600480360381019061044991906131f8565b610cf6565b005b34801561045c57600080fd5b5061047760048036038101906104729190613171565b610e32565b604051610484919061376a565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190613171565b610e88565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190613238565b610f78565b6040516104ea9190613927565b60405180910390f35b3480156104ff57600080fd5b50610508610fff565b005b34801561051657600080fd5b50610531600480360381019061052c9190613171565b6115dc565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613171565b61172e565b005b34801561056857600080fd5b50610583600480360381019061057e9190613171565b6118e7565b005b6060600b805461059490613bcd565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090613bcd565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611bc9565b8484611bd1565b6001905092915050565b6000674563918244f40000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610684611bc9565b73ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190613887565b60405180910390fd5b6106e48282611d9c565b6000811115610746576001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061075784848461211f565b61081884610763611bc9565b6108138560405180606001604052806028815260200161407660289139601460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c9611bc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d79092919063ffffffff16565b611bd1565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610879611bc9565b73ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690613887565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b8611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590613887565b60405180910390fd5b610a218142611b2190919063ffffffff16565b60168190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990613887565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b1a57610b19613cd5565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610b6590613bcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9190613bcd565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c27611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490613887565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cec610ce5611bc9565b848461211f565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d35611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613887565b60405180910390fd5b610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611d9c565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610e2e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611d9c565b5050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec7611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490613887565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103e611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613887565b60405180910390fd5b601060009054906101000a900460ff16156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906137c7565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16674563918244f40000611bd1565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111be57600080fd5b505afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f6919061319e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611290919061319e565b6040518363ffffffff1660e01b81526004016112ad929190613680565b602060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff919061319e565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833061138830610930565b60008030426040518863ffffffff1660e01b81526004016113ae96959493929190613709565b6060604051808303818588803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114009190613365565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a29291906136a9565b602060405180830381600087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f4919061330b565b50601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d704363a600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661156c6203f48042611b2190919063ffffffff16565b336040518463ffffffff1660e01b815260040161158b939291906136d2565b600060405180830381600087803b1580156115a557600080fd5b505af11580156115b9573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161b611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166890613887565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179857600080fd5b505af11580156117ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d0919061319e565b73ffffffffffffffffffffffffffffffffffffffff166117ee611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614806118645750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184c611bc9565b73ffffffffffffffffffffffffffffffffffffffff16145b6118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a906137e7565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611926611bc9565b73ffffffffffffffffffffffffffffffffffffffff161461197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197390613887565b60405180910390fd5b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a04906138a7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390613847565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243b565b905092915050565b6000808284611b309190613a0c565b905083811015611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613827565b60405180910390fd5b8091505092915050565b6000611bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123d7565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613907565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613807565b60405180910390fd5b80601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8f9190613927565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ddb611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890613887565b60405180910390fd5b600a60009054906101000a900460ff1615611eff57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611efe57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611edd611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611efd57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561207057612904611f6483600954611b2190919063ffffffff16565b1115611f6f57600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905061200d9190613aed565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206582600954611b2190919063ffffffff16565b60098190555061211a565b60006006828154811061208657612085613cd5565b5b906000526020600020015490506129046120bd826120af86600954611b2190919063ffffffff16565b611b7f90919063ffffffff16565b11156120c857600080fd5b82600683815481106120dd576120dc613cd5565b5b90600052602060002001819055506121128161210485600954611b2190919063ffffffff16565b611b7f90919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612186906138e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f6906137a7565b60405180910390fd5b60008111612242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612239906138c7565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122e65750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561233c5750601160003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234557600080fd5b61234e8261249e565b1561236a57600f5461235f83610930565b1061236957600080fd5b5b60006123768484612575565b156123c55760165442101561238a57600080fd5b6123948484612621565b156123ae576123a161272c565b8211156123ad57600080fd5b5b6123b984848461277d565b90506123c484612881565b5b6123d1848484846128b2565b50505050565b600083831115829061241f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124169190613785565b60405180910390fd5b506000838561242e9190613aed565b9050809150509392505050565b60008083118290612482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124799190613785565b60405180910390fd5b50600083856124919190613a62565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561254c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561256e575061256a610e10601654611b2190919063ffffffff16565b4211155b9050919050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126185750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126ce5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127245750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000612745610e10601654611b2190919063ffffffff16565b421161276e576127676064674563918244f40000611ad790919063ffffffff16565b905061277a565b674563918244f4000090505b90565b60008060009050601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128255750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612833578091505061287a565b612873612864612841612af4565b61285660185487611ad790919063ffffffff16565b612afe90919063ffffffff16565b82611b2190919063ffffffff16565b9050809150505b9392505050565b61288a81612b79565b156128af57600061289a30610930565b90506128a581612bed565b6128ad612e75565b505b50565b60006128c78284611b7f90919063ffffffff16565b905061291b83601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7f90919063ffffffff16565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129b081601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2190919063ffffffff16565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a4582601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2190919063ffffffff16565b601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae59190613927565b60405180910390a35050505050565b6000600954905090565b600080831415612b115760009050612b73565b60008284612b1f9190613a93565b9050828482612b2e9190613a62565b14612b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6590613867565b60405180910390fd5b809150505b92915050565b6000601760009054906101000a900460ff16158015612be65750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601760006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c2557612c24613d04565b5b604051908082528060200260200182016040528015612c535781602001602082028036833780820191505090505b5090503081600081518110612c6b57612c6a613cd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d0d57600080fd5b505afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061319e565b81600181518110612d5957612d58613cd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612dc030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e24959493929190613942565b600060405180830381600087803b158015612e3e57600080fd5b505af1158015612e52573d6000803e3d6000fd5b50505050506000601760006101000a81548160ff02191690831515021790555050565b60004790506015548111612e895750612ed4565b6000612ea060155483611b7f90919063ffffffff16565b90506000612eac612ed6565b90506001811015612ebf57505050612ed4565b612ec98282612f00565b476015819055505050505b565b60008060009050612ef7612ee8612af4565b82611b2190919063ffffffff16565b90508091505090565b6000600190505b6006805490508110156130ee57600060068281548110612f2a57612f29613cd5565b5b90600052602060002001549050600060078381548110612f4d57612f4c613cd5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000612fa185612f938589612afe90919063ffffffff16565b611ad790919063ffffffff16565b905060018111156130d8578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ff2573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130d757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016130a49190613927565b600060405180830381600087803b1580156130be57600080fd5b505af11580156130d2573d6000803e3d6000fd5b505050505b5b50505080806130e690613bff565b915050612f07565b505050565b60008135905061310281614019565b92915050565b60008151905061311781614019565b92915050565b60008135905061312c81614030565b92915050565b60008151905061314181614047565b92915050565b6000813590506131568161405e565b92915050565b60008151905061316b8161405e565b92915050565b60006020828403121561318757613186613d33565b5b6000613195848285016130f3565b91505092915050565b6000602082840312156131b4576131b3613d33565b5b60006131c284828501613108565b91505092915050565b6000602082840312156131e1576131e0613d33565b5b60006131ef8482850161311d565b91505092915050565b6000806040838503121561320f5761320e613d33565b5b600061321d8582860161311d565b925050602061322e85828601613147565b9150509250929050565b6000806040838503121561324f5761324e613d33565b5b600061325d858286016130f3565b925050602061326e858286016130f3565b9150509250929050565b60008060006060848603121561329157613290613d33565b5b600061329f868287016130f3565b93505060206132b0868287016130f3565b92505060406132c186828701613147565b9150509250925092565b600080604083850312156132e2576132e1613d33565b5b60006132f0858286016130f3565b925050602061330185828601613147565b9150509250929050565b60006020828403121561332157613320613d33565b5b600061332f84828501613132565b91505092915050565b60006020828403121561334e5761334d613d33565b5b600061335c84828501613147565b91505092915050565b60008060006060848603121561337e5761337d613d33565b5b600061338c8682870161315c565b935050602061339d8682870161315c565b92505060406133ae8682870161315c565b9150509250925092565b60006133c483836133d0565b60208301905092915050565b6133d981613b21565b82525050565b6133e881613b21565b82525050565b60006133f9826139c7565b61340381856139ea565b935061340e836139b7565b8060005b8381101561343f57815161342688826133b8565b9750613431836139dd565b925050600181019050613412565b5085935050505092915050565b61345581613b45565b82525050565b61346481613b88565b82525050565b6000613475826139d2565b61347f81856139fb565b935061348f818560208601613b9a565b61349881613d38565b840191505092915050565b60006134b06023836139fb565b91506134bb82613d49565b604082019050919050565b60006134d36018836139fb565b91506134de82613d98565b602082019050919050565b60006134f6600c836139fb565b915061350182613dc1565b602082019050919050565b60006135196022836139fb565b915061352482613dea565b604082019050919050565b600061353c601b836139fb565b915061354782613e39565b602082019050919050565b600061355f6018836139fb565b915061356a82613e62565b602082019050919050565b60006135826021836139fb565b915061358d82613e8b565b604082019050919050565b60006135a56020836139fb565b91506135b082613eda565b602082019050919050565b60006135c86017836139fb565b91506135d382613f03565b602082019050919050565b60006135eb6029836139fb565b91506135f682613f2c565b604082019050919050565b600061360e6025836139fb565b915061361982613f7b565b604082019050919050565b60006136316024836139fb565b915061363c82613fca565b604082019050919050565b61365081613b71565b82525050565b61365f81613b7b565b82525050565b600060208201905061367a60008301846133df565b92915050565b600060408201905061369560008301856133df565b6136a260208301846133df565b9392505050565b60006040820190506136be60008301856133df565b6136cb6020830184613647565b9392505050565b60006060820190506136e760008301866133df565b6136f46020830185613647565b61370160408301846133df565b949350505050565b600060c08201905061371e60008301896133df565b61372b6020830188613647565b613738604083018761345b565b613745606083018661345b565b61375260808301856133df565b61375f60a0830184613647565b979650505050505050565b600060208201905061377f600083018461344c565b92915050565b6000602082019050818103600083015261379f818461346a565b905092915050565b600060208201905081810360008301526137c0816134a3565b9050919050565b600060208201905081810360008301526137e0816134c6565b9050919050565b60006020820190508181036000830152613800816134e9565b9050919050565b600060208201905081810360008301526138208161350c565b9050919050565b600060208201905081810360008301526138408161352f565b9050919050565b6000602082019050818103600083015261386081613552565b9050919050565b6000602082019050818103600083015261388081613575565b9050919050565b600060208201905081810360008301526138a081613598565b9050919050565b600060208201905081810360008301526138c0816135bb565b9050919050565b600060208201905081810360008301526138e0816135de565b9050919050565b6000602082019050818103600083015261390081613601565b9050919050565b6000602082019050818103600083015261392081613624565b9050919050565b600060208201905061393c6000830184613647565b92915050565b600060a0820190506139576000830188613647565b613964602083018761345b565b818103604083015261397681866133ee565b905061398560608301856133df565b6139926080830184613647565b9695505050505050565b60006020820190506139b16000830184613656565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a1782613b71565b9150613a2283613b71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a5757613a56613c48565b5b828201905092915050565b6000613a6d82613b71565b9150613a7883613b71565b925082613a8857613a87613c77565b5b828204905092915050565b6000613a9e82613b71565b9150613aa983613b71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ae257613ae1613c48565b5b828202905092915050565b6000613af882613b71565b9150613b0383613b71565b925082821015613b1657613b15613c48565b5b828203905092915050565b6000613b2c82613b51565b9050919050565b6000613b3e82613b51565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b9382613b71565b9050919050565b60005b83811015613bb8578082015181840152602081019050613b9d565b83811115613bc7576000848401525b50505050565b60006002820490506001821680613be557607f821691505b60208210811415613bf957613bf8613ca6565b5b50919050565b6000613c0a82613b71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c3d57613c3c613c48565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e277420626c61636b6c69737420636f6e74726163740000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f43616e277420626c61636b6c69737420556e6973776170000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61402281613b21565b811461402d57600080fd5b50565b61403981613b33565b811461404457600080fd5b50565b61405081613b45565b811461405b57600080fd5b50565b61406781613b71565b811461407257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a7d6c4197832c6de164fe6ef4bfacac7aecfd5daff4c781320cb954213255b064736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063d0040d701161006f578063d0040d701461048d578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638da5cb5b1461036b57806395d89b411461039657806398d5a5cb146103c1578063a9059cbb146103ea578063ab9562fe14610427578063c7ab8d9d146104505761014b565b8063313ce56711610108578063313ce5671461024957806353477d291461027457806354486ac31461029d57806370a08231146102c857806385b12c7c146103055780638a13792e1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613785565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906132cb565b610617565b6040516101af919061376a565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613927565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906131f8565b610645565b005b34801561021857600080fd5b50610233600480360381019061022e9190613278565b61074a565b604051610240919061376a565b60405180910390f35b34801561025557600080fd5b5061025e610823565b60405161026b919061399c565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190613171565b61083a565b005b3480156102a957600080fd5b506102b261092a565b6040516102bf9190613927565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613171565b610930565b6040516102fc9190613927565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190613338565b610979565b005b34801561033a57600080fd5b50610355600480360381019061035091906131cb565b610a2a565b6040516103629190613927565b60405180910390f35b34801561037757600080fd5b50610380610b2d565b60405161038d9190613665565b60405180910390f35b3480156103a257600080fd5b506103ab610b56565b6040516103b89190613785565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190613171565b610be8565b005b3480156103f657600080fd5b50610411600480360381019061040c91906132cb565b610cd8565b60405161041e919061376a565b60405180910390f35b34801561043357600080fd5b5061044e600480360381019061044991906131f8565b610cf6565b005b34801561045c57600080fd5b5061047760048036038101906104729190613171565b610e32565b604051610484919061376a565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190613171565b610e88565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190613238565b610f78565b6040516104ea9190613927565b60405180910390f35b3480156104ff57600080fd5b50610508610fff565b005b34801561051657600080fd5b50610531600480360381019061052c9190613171565b6115dc565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613171565b61172e565b005b34801561056857600080fd5b50610583600480360381019061057e9190613171565b6118e7565b005b6060600b805461059490613bcd565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090613bcd565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611bc9565b8484611bd1565b6001905092915050565b6000674563918244f40000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610684611bc9565b73ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190613887565b60405180910390fd5b6106e48282611d9c565b6000811115610746576001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061075784848461211f565b61081884610763611bc9565b6108138560405180606001604052806028815260200161407660289139601460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c9611bc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d79092919063ffffffff16565b611bd1565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610879611bc9565b73ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690613887565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b8611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590613887565b60405180910390fd5b610a218142611b2190919063ffffffff16565b60168190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990613887565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b1a57610b19613cd5565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610b6590613bcd565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9190613bcd565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c27611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490613887565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cec610ce5611bc9565b848461211f565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d35611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613887565b60405180910390fd5b610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611d9c565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610e2e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611d9c565b5050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec7611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490613887565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103e611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613887565b60405180910390fd5b601060009054906101000a900460ff16156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906137c7565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16674563918244f40000611bd1565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111be57600080fd5b505afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f6919061319e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611290919061319e565b6040518363ffffffff1660e01b81526004016112ad929190613680565b602060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff919061319e565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833061138830610930565b60008030426040518863ffffffff1660e01b81526004016113ae96959493929190613709565b6060604051808303818588803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114009190613365565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a29291906136a9565b602060405180830381600087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f4919061330b565b50601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d704363a600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661156c6203f48042611b2190919063ffffffff16565b336040518463ffffffff1660e01b815260040161158b939291906136d2565b600060405180830381600087803b1580156115a557600080fd5b505af11580156115b9573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161b611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166890613887565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179857600080fd5b505af11580156117ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d0919061319e565b73ffffffffffffffffffffffffffffffffffffffff166117ee611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614806118645750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184c611bc9565b73ffffffffffffffffffffffffffffffffffffffff16145b6118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a906137e7565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611926611bc9565b73ffffffffffffffffffffffffffffffffffffffff161461197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197390613887565b60405180910390fd5b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a04906138a7565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390613847565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243b565b905092915050565b6000808284611b309190613a0c565b905083811015611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613827565b60405180910390fd5b8091505092915050565b6000611bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123d7565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613907565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613807565b60405180910390fd5b80601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8f9190613927565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ddb611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890613887565b60405180910390fd5b600a60009054906101000a900460ff1615611eff57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611efe57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611edd611bc9565b73ffffffffffffffffffffffffffffffffffffffff1614611efd57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561207057612904611f6483600954611b2190919063ffffffff16565b1115611f6f57600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905061200d9190613aed565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206582600954611b2190919063ffffffff16565b60098190555061211a565b60006006828154811061208657612085613cd5565b5b906000526020600020015490506129046120bd826120af86600954611b2190919063ffffffff16565b611b7f90919063ffffffff16565b11156120c857600080fd5b82600683815481106120dd576120dc613cd5565b5b90600052602060002001819055506121128161210485600954611b2190919063ffffffff16565b611b7f90919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612186906138e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f6906137a7565b60405180910390fd5b60008111612242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612239906138c7565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122e65750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561233c5750601160003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234557600080fd5b61234e8261249e565b1561236a57600f5461235f83610930565b1061236957600080fd5b5b60006123768484612575565b156123c55760165442101561238a57600080fd5b6123948484612621565b156123ae576123a161272c565b8211156123ad57600080fd5b5b6123b984848461277d565b90506123c484612881565b5b6123d1848484846128b2565b50505050565b600083831115829061241f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124169190613785565b60405180910390fd5b506000838561242e9190613aed565b9050809150509392505050565b60008083118290612482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124799190613785565b60405180910390fd5b50600083856124919190613a62565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561254c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561256e575061256a610e10601654611b2190919063ffffffff16565b4211155b9050919050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126185750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126ce5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127245750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000612745610e10601654611b2190919063ffffffff16565b421161276e576127676064674563918244f40000611ad790919063ffffffff16565b905061277a565b674563918244f4000090505b90565b60008060009050601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128255750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612833578091505061287a565b612873612864612841612af4565b61285660185487611ad790919063ffffffff16565b612afe90919063ffffffff16565b82611b2190919063ffffffff16565b9050809150505b9392505050565b61288a81612b79565b156128af57600061289a30610930565b90506128a581612bed565b6128ad612e75565b505b50565b60006128c78284611b7f90919063ffffffff16565b905061291b83601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7f90919063ffffffff16565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129b081601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2190919063ffffffff16565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a4582601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2190919063ffffffff16565b601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae59190613927565b60405180910390a35050505050565b6000600954905090565b600080831415612b115760009050612b73565b60008284612b1f9190613a93565b9050828482612b2e9190613a62565b14612b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6590613867565b60405180910390fd5b809150505b92915050565b6000601760009054906101000a900460ff16158015612be65750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601760006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c2557612c24613d04565b5b604051908082528060200260200182016040528015612c535781602001602082028036833780820191505090505b5090503081600081518110612c6b57612c6a613cd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d0d57600080fd5b505afa158015612d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d45919061319e565b81600181518110612d5957612d58613cd5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612dc030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e24959493929190613942565b600060405180830381600087803b158015612e3e57600080fd5b505af1158015612e52573d6000803e3d6000fd5b50505050506000601760006101000a81548160ff02191690831515021790555050565b60004790506015548111612e895750612ed4565b6000612ea060155483611b7f90919063ffffffff16565b90506000612eac612ed6565b90506001811015612ebf57505050612ed4565b612ec98282612f00565b476015819055505050505b565b60008060009050612ef7612ee8612af4565b82611b2190919063ffffffff16565b90508091505090565b6000600190505b6006805490508110156130ee57600060068281548110612f2a57612f29613cd5565b5b90600052602060002001549050600060078381548110612f4d57612f4c613cd5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000612fa185612f938589612afe90919063ffffffff16565b611ad790919063ffffffff16565b905060018111156130d8578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ff2573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130d757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016130a49190613927565b600060405180830381600087803b1580156130be57600080fd5b505af11580156130d2573d6000803e3d6000fd5b505050505b5b50505080806130e690613bff565b915050612f07565b505050565b60008135905061310281614019565b92915050565b60008151905061311781614019565b92915050565b60008135905061312c81614030565b92915050565b60008151905061314181614047565b92915050565b6000813590506131568161405e565b92915050565b60008151905061316b8161405e565b92915050565b60006020828403121561318757613186613d33565b5b6000613195848285016130f3565b91505092915050565b6000602082840312156131b4576131b3613d33565b5b60006131c284828501613108565b91505092915050565b6000602082840312156131e1576131e0613d33565b5b60006131ef8482850161311d565b91505092915050565b6000806040838503121561320f5761320e613d33565b5b600061321d8582860161311d565b925050602061322e85828601613147565b9150509250929050565b6000806040838503121561324f5761324e613d33565b5b600061325d858286016130f3565b925050602061326e858286016130f3565b9150509250929050565b60008060006060848603121561329157613290613d33565b5b600061329f868287016130f3565b93505060206132b0868287016130f3565b92505060406132c186828701613147565b9150509250925092565b600080604083850312156132e2576132e1613d33565b5b60006132f0858286016130f3565b925050602061330185828601613147565b9150509250929050565b60006020828403121561332157613320613d33565b5b600061332f84828501613132565b91505092915050565b60006020828403121561334e5761334d613d33565b5b600061335c84828501613147565b91505092915050565b60008060006060848603121561337e5761337d613d33565b5b600061338c8682870161315c565b935050602061339d8682870161315c565b92505060406133ae8682870161315c565b9150509250925092565b60006133c483836133d0565b60208301905092915050565b6133d981613b21565b82525050565b6133e881613b21565b82525050565b60006133f9826139c7565b61340381856139ea565b935061340e836139b7565b8060005b8381101561343f57815161342688826133b8565b9750613431836139dd565b925050600181019050613412565b5085935050505092915050565b61345581613b45565b82525050565b61346481613b88565b82525050565b6000613475826139d2565b61347f81856139fb565b935061348f818560208601613b9a565b61349881613d38565b840191505092915050565b60006134b06023836139fb565b91506134bb82613d49565b604082019050919050565b60006134d36018836139fb565b91506134de82613d98565b602082019050919050565b60006134f6600c836139fb565b915061350182613dc1565b602082019050919050565b60006135196022836139fb565b915061352482613dea565b604082019050919050565b600061353c601b836139fb565b915061354782613e39565b602082019050919050565b600061355f6018836139fb565b915061356a82613e62565b602082019050919050565b60006135826021836139fb565b915061358d82613e8b565b604082019050919050565b60006135a56020836139fb565b91506135b082613eda565b602082019050919050565b60006135c86017836139fb565b91506135d382613f03565b602082019050919050565b60006135eb6029836139fb565b91506135f682613f2c565b604082019050919050565b600061360e6025836139fb565b915061361982613f7b565b604082019050919050565b60006136316024836139fb565b915061363c82613fca565b604082019050919050565b61365081613b71565b82525050565b61365f81613b7b565b82525050565b600060208201905061367a60008301846133df565b92915050565b600060408201905061369560008301856133df565b6136a260208301846133df565b9392505050565b60006040820190506136be60008301856133df565b6136cb6020830184613647565b9392505050565b60006060820190506136e760008301866133df565b6136f46020830185613647565b61370160408301846133df565b949350505050565b600060c08201905061371e60008301896133df565b61372b6020830188613647565b613738604083018761345b565b613745606083018661345b565b61375260808301856133df565b61375f60a0830184613647565b979650505050505050565b600060208201905061377f600083018461344c565b92915050565b6000602082019050818103600083015261379f818461346a565b905092915050565b600060208201905081810360008301526137c0816134a3565b9050919050565b600060208201905081810360008301526137e0816134c6565b9050919050565b60006020820190508181036000830152613800816134e9565b9050919050565b600060208201905081810360008301526138208161350c565b9050919050565b600060208201905081810360008301526138408161352f565b9050919050565b6000602082019050818103600083015261386081613552565b9050919050565b6000602082019050818103600083015261388081613575565b9050919050565b600060208201905081810360008301526138a081613598565b9050919050565b600060208201905081810360008301526138c0816135bb565b9050919050565b600060208201905081810360008301526138e0816135de565b9050919050565b6000602082019050818103600083015261390081613601565b9050919050565b6000602082019050818103600083015261392081613624565b9050919050565b600060208201905061393c6000830184613647565b92915050565b600060a0820190506139576000830188613647565b613964602083018761345b565b818103604083015261397681866133ee565b905061398560608301856133df565b6139926080830184613647565b9695505050505050565b60006020820190506139b16000830184613656565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a1782613b71565b9150613a2283613b71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a5757613a56613c48565b5b828201905092915050565b6000613a6d82613b71565b9150613a7883613b71565b925082613a8857613a87613c77565b5b828204905092915050565b6000613a9e82613b71565b9150613aa983613b71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ae257613ae1613c48565b5b828202905092915050565b6000613af882613b71565b9150613b0383613b71565b925082821015613b1657613b15613c48565b5b828203905092915050565b6000613b2c82613b51565b9050919050565b6000613b3e82613b51565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b9382613b71565b9050919050565b60005b83811015613bb8578082015181840152602081019050613b9d565b83811115613bc7576000848401525b50505050565b60006002820490506001821680613be557607f821691505b60208210811415613bf957613bf8613ca6565b5b50919050565b6000613c0a82613b71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c3d57613c3c613c48565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e277420626c61636b6c69737420636f6e74726163740000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f43616e277420626c61636b6c69737420556e6973776170000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61402281613b21565b811461402d57600080fd5b50565b61403981613b33565b811461404457600080fd5b50565b61405081613b45565b811461405b57600080fd5b50565b61406781613b71565b811461407257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a7d6c4197832c6de164fe6ef4bfacac7aecfd5daff4c781320cb954213255b064736f6c63430008070033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.