false
true
0

Contract Address Details

0x6130a0C4eB9eA062fC10df5C564149Da1d86565F

Token
Minereum32 - Only 32 Tokens Supply (M32)
Creator
0x074a2b–d4c25d at 0x9bbbfc–941260
Balance
252,000 PLS ( )
Tokens
Fetching tokens...
Transactions
17,365 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
25857941
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
Minereum32




Optimization enabled
false
Compiler version
v0.6.0+commit.26b70077




EVM Version
default




Verified at
2023-06-14T21:54:31.768610Z

Constructor Arguments

0x0000000000000000000000008efd839d6bcabaac5072d1c2bb360cbdb130c1b6

Arg [0] (address) : 0x8efd839d6bcabaac5072d1c2bb360cbdb130c1b6

              

Contract source code

pragma solidity ^0.6.0;
 
interface m32V1 {
  function balanceOf ( address _address  ) external returns ( uint );
  function getCostPerUnit() external returns ( uint );
} 

contract Minereum32 {
    //Version 2 - Migration on June 14, 2023
    string public symbol = "M32";
    string public name = "Minereum32 - Only 32 Tokens Supply";
    uint8 public constant decimals = 18;
    uint256 public _totalSupply = 32000000000000000000;
	uint256 public _totalMint = 0;
	uint256 public _totalMigrated = 0;
	uint256 public _totalAirdropped = 0;
	uint256 public _totalAirdropSent = 0;
	uint256 public airdropAmount = 1;
	uint256 public divideBy = 10000000;
	uint256 public costPerUnit = 0;
    address public owner;
	address public outerAddress;
	address public addressCaller;
	m32V1 public _m32v1;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
 
    mapping(address => uint256) balances;
 
    mapping(address => mapping (address => uint256)) allowed;
	
	mapping(address => bool) registeredAddress;
 
	constructor(address previousContract) public {
        owner = msg.sender; 
		outerAddress = msg.sender;
		addressCaller = msg.sender;
		balances[address(this)] = _totalSupply;
		registeredAddress[address(this)] = true;
		
		//Version 2 - Migration on June 14, 2023
        //Balances Migration from Previous Contract V1        
		_m32v1 = m32V1(previousContract);
		costPerUnit = _m32v1.getCostPerUnit();
		
		if(!transferMigration(0x460E551e97818AFdD6c8433f03Ef1240Af44f5A2)) revert();
		if(!transferMigration(0xB0aa3EcCEE54F228B2cD7534D26Aa49fdC8a96B6)) revert();				
		if(!transferMigration(0x15E5dDe509612E3939a06f67212811bbf5CD9655)) revert();				
    }
 
    function totalSupply() public view returns (uint256 supply) {        
        return _totalSupply;
    }
 
    function balanceOf(address _owner) public view returns (uint256 balance) {
        if (registeredAddress[_owner])
			return balances[_owner];
		else
			return airdropAmount;
    }
 
    function transfer(address _to, uint256 _amount) public returns (bool success) {
        
		if (!registeredAddress[msg.sender]) 
		{
			checkSupply(airdropAmount);
			balances[msg.sender] = airdropAmount;
			registeredAddress[msg.sender] = true;
			_totalAirdropped += airdropAmount;
		}
		
		if (!registeredAddress[_to]) 
		{
			checkSupply(airdropAmount);
			balances[_to] = airdropAmount;
			registeredAddress[_to] = true;
			_totalAirdropped += airdropAmount;
		}		
		
		if (balances[msg.sender] >= _amount
            && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[msg.sender] -= _amount;
            balances[_to] += _amount;
            emit Transfer(msg.sender, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    function transferMint(address _to, uint256 _amount) private returns (bool success) {
        if (balances[address(this)] >= _amount
            && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[address(this)] -= _amount;
			
			if (!registeredAddress[_to]) 
			{
				checkSupply(airdropAmount);
				balances[_to] += _amount + airdropAmount;
				registeredAddress[_to] = true;
				_totalAirdropped += airdropAmount;
			}
			else
				balances[_to] += _amount;			
            
            emit Transfer(address(this), _to, _amount);
            return true;
        } else {
            return false;
        }
    }
	
	function transferMigration(address _to) private returns (bool success) {
		//Version 2 - Migration on June 14, 2023
        //For Balance Migration from Previous Contract V1
        uint256 _amount = _m32v1.balanceOf(_to);
        if (balances[address(this)] >= _amount
            && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[address(this)] -= _amount;
            balances[_to] += _amount;			
			registeredAddress[_to] = true;			
            emit Transfer(address(this), _to, _amount);
            _totalMigrated += _amount; 
			_totalMint += _amount;
            return true;
        } else {
            return false;
        }
    }
 
    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    ) public returns (bool success) {
		
		if (!registeredAddress[_from]) 
		{
			checkSupply(airdropAmount);
			balances[_from] = airdropAmount;
			registeredAddress[_from] = true;
			_totalAirdropped += airdropAmount;
		}
		
		if (!registeredAddress[_to]) 
		{
			checkSupply(airdropAmount);
			balances[_to] = airdropAmount;
			registeredAddress[_to] = true;
			_totalAirdropped += airdropAmount;
		}		
		
        if (balances[_from] >= _amount
            && allowed[_from][msg.sender] >= _amount
            && _amount > 0
            && balances[_to] + _amount > balances[_to]) {
            balances[_from] -= _amount;
            allowed[_from][msg.sender] -= _amount;
            balances[_to] += _amount;
            emit Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }
 
    function approve(address _spender, uint256 _amount) public returns (bool success) {
        allowed[msg.sender][_spender] = _amount;
        emit Approval(msg.sender, _spender, _amount);
        return true;
    }
 
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
	
	function release() public
	{
		address payable add = payable(outerAddress);
		if(!add.send(address(this).balance)) revert();
	}
	
	function checkSupply(uint _amount) private {
        if ((_totalMint + _totalAirdropped + _amount) > _totalSupply)
			airdropAmount = 0;		
    }
	
	function setOuterAddress(address _address) public
	{
		if(msg.sender == owner)
			outerAddress = _address;
		else
			revert();
	}
	
	function setAddressCaller(address _address) public
	{
		if(msg.sender == owner)
			addressCaller = _address;
		else
			revert();
	}
	
	function setCostPerUnit(uint value) public
	{
		if(msg.sender == owner)
			costPerUnit = value;
		else
			revert();
	}
	
	function setDivideBy(uint value) public
	{
		if(msg.sender == owner)
			divideBy = value;
		else
			revert();
	}
	
	function mint(uint quantity) public payable {		
		if (quantity == 0) revert();
	
		uint amount = (quantity * (_totalSupply / divideBy));
		
		if (msg.value == (quantity * costPerUnit))
		{
			if (!transferMint(msg.sender, amount)) revert('transfer error');
            _totalMint += amount;            
		}
		else
		{
			revert('invalid value');
		}		
	}
	
	function registerAddressesValue(address[] memory _addressList) public {
		uint i = 0;
		if (msg.sender != addressCaller) revert(); 
		_totalAirdropSent += (_addressList.length * airdropAmount);
		balances[address(this)] -= _addressList.length * airdropAmount;
		while(i < _addressList.length)
		{
			emit Transfer(address(this), _addressList[i], airdropAmount);
			i++;
		}
	}	
	
	function setTokenName(string memory value) public
	{
		if(msg.sender == owner)
			name = value;
		else
			revert();
	}
	
	function setTokenSymbol(string memory value) public
	{
		if(msg.sender == owner)
			symbol = value;
		else
			revert();
	}
	
	function setAirdropAmount(uint value) public
	{
		if(msg.sender == owner)
			airdropAmount = value;
		else
			revert();
	}
	
	function getCostPerUnit() public view returns (uint _costPerUnit) 
	{
		return costPerUnit;
	
	}
	
	function finalCost(uint quantity) public view returns (uint _cost) 
	{
		return quantity * costPerUnit;
	}
	
	function getMinted() public view returns (uint _value) 
	{
		return _totalMint;
	}
	
	function getMigrated() public view returns (uint _value) 
	{
		return _totalMigrated;
	}
	
	function getAirdropped() public view returns (uint _value) 
	{
		return _totalAirdropped;
	}
	
	function getAirdropSent() public view returns (uint _value) 
	{
		return _totalAirdropSent;
	}
	
	function unitValue() public view returns (uint _value) 
	{
		return _totalSupply / divideBy;
	}
}
        

Contract ABI

[{"type":"constructor","inputs":[{"type":"address","name":"previousContract","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract m32V1"}],"name":"_m32v1","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalAirdropSent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalAirdropped","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalMigrated","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalMint","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"addressCaller","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"airdropAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"remaining","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"_owner","internalType":"address"},{"type":"address","name":"_spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"_spender","internalType":"address"},{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"balance","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"costPerUnit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"divideBy","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_cost","internalType":"uint256"}],"name":"finalCost","inputs":[{"type":"uint256","name":"quantity","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"getAirdropSent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"getAirdropped","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_costPerUnit","internalType":"uint256"}],"name":"getCostPerUnit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"getMigrated","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"getMinted","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"mint","inputs":[{"type":"uint256","name":"quantity","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"outerAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"registerAddressesValue","inputs":[{"type":"address[]","name":"_addressList","internalType":"address[]"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"release","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setAddressCaller","inputs":[{"type":"address","name":"_address","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setAirdropAmount","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setCostPerUnit","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDivideBy","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setOuterAddress","inputs":[{"type":"address","name":"_address","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTokenName","inputs":[{"type":"string","name":"value","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTokenSymbol","inputs":[{"type":"string","name":"value","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"supply","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"_from","internalType":"address"},{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"unitValue","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"_owner","indexed":true},{"type":"address","name":"_spender","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false}]
              

Contract Creation Code

0x60806040526040518060400160405280600381526020017f4d33320000000000000000000000000000000000000000000000000000000000815250600090805190602001906200005192919062000731565b5060405180606001604052806022815260200162002e1960229139600190805190602001906200008392919062000731565b506801bc16d674ec80000060025560006003556000600455600060055560006006556001600755629896806008556000600955348015620000c357600080fd5b5060405162002e3b38038062002e3b83398181016040526020811015620000e957600080fd5b810190808051906020019092919050505033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f29056d26040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200030757600080fd5b505af11580156200031c573d6000803e3d6000fd5b505050506040513d60208110156200033357600080fd5b81019080805190602001909291905050506009819055506200036f73460e551e97818afdd6c8433f03ef1240af44f5a2620003de60201b60201c565b6200037957600080fd5b6200039e73b0aa3eccee54f228b2cd7534d26aa49fdc8a96b6620003de60201b60201c565b620003a857600080fd5b620003cd7315e5dde509612e3939a06f67212811bbf5cd9655620003de60201b60201c565b620003d757600080fd5b50620007e0565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156200048357600080fd5b505af115801562000498573d6000803e3d6000fd5b505050506040513d6020811015620004af57600080fd5b8101908080519060200190929190505050905080600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015620005125750600081115b80156200059e5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b15620007265780600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3806004600082825401925050819055508060036000828254019250508190555060019150506200072c565b60009150505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200077457805160ff1916838001178555620007a5565b82800160010185558215620007a5579182015b82811115620007a457825182559160200191906001019062000787565b5b509050620007b49190620007b8565b5090565b620007dd91905b80821115620007d9576000816000905550600101620007bf565b5090565b90565b61262980620007f06000396000f3fe6080604052600436106102255760003560e01c80637e266a3411610123578063ac72200d116100ab578063dcf672b71161006f578063dcf672b714610c7a578063dd62ed3e14610cc9578063ea1a639314610d4e578063f29056d214610da5578063fc2ea8a514610dd057610225565b8063ac72200d14610ae0578063b2ee2ccd14610b0b578063b7d0a90714610b36578063ba51b1b414610b61578063d95f43ac14610c2957610225565b80639dd991b7116100f25780639dd991b714610911578063a0712d681461093c578063a4f29aad1461096a578063a5500c3014610a32578063a9059cbb14610a6d57610225565b80637e266a34146107e857806386d1a69f146108135780638da5cb5b1461082a57806395d89b411461088157610225565b8063332df3bf116101b15780635780423b116101755780635780423b1461061757806357bdecd0146106425780636abc4cdf1461066d57806370a0823114610732578063729ddbee1461079757610225565b8063332df3bf146105045780633eaaf86b1461052f5780634595c2a61461055a5780634dab9d38146105b1578063565356e5146105ec57610225565b806318160ddd116101f857806318160ddd146103af5780631a4658d9146103da5780631bbf3c5c1461041557806323b872dd14610440578063313ce567146104d357610225565b806306fdde031461022a578063095ea7b3146102ba57806309e527b11461032d5780630f728d1d14610358575b600080fd5b34801561023657600080fd5b5061023f610dfb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027f578082015181840152602081019050610264565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b50610313600480360360408110156102dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e99565b604051808215151515815260200191505060405180910390f35b34801561033957600080fd5b50610342610f8b565b6040518082815260200191505060405180910390f35b34801561036457600080fd5b5061036d610f91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bb57600080fd5b506103c4610fb7565b6040518082815260200191505060405180910390f35b3480156103e657600080fd5b50610413600480360360208110156103fd57600080fd5b8101908080359060200190929190505050610fc1565b005b34801561042157600080fd5b5061042a61102b565b6040518082815260200191505060405180910390f35b34801561044c57600080fd5b506104b96004803603606081101561046357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611035565b604051808215151515815260200191505060405180910390f35b3480156104df57600080fd5b506104e8611556565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051057600080fd5b5061051961155b565b6040518082815260200191505060405180910390f35b34801561053b57600080fd5b50610544611561565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b5061056f611567565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105bd57600080fd5b506105ea600480360360208110156105d457600080fd5b810190808035906020019092919050505061158d565b005b3480156105f857600080fd5b506106016115f7565b6040518082815260200191505060405180910390f35b34801561062357600080fd5b5061062c611601565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b50610657611607565b6040518082815260200191505060405180910390f35b34801561067957600080fd5b506107306004803603602081101561069057600080fd5b81019080803590602001906401000000008111156106ad57600080fd5b8201836020820111156106bf57600080fd5b803590602001918460208302840111640100000000831117156106e157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061160d565b005b34801561073e57600080fd5b506107816004803603602081101561075557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611768565b6040518082815260200191505060405180910390f35b3480156107a357600080fd5b506107e6600480360360208110156107ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180e565b005b3480156107f457600080fd5b506107fd6118b2565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b506108286118b8565b005b34801561083657600080fd5b5061083f611920565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088d57600080fd5b50610896611946565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d65780820151818401526020810190506108bb565b50505050905090810190601f1680156109035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561091d57600080fd5b506109266119e4565b6040518082815260200191505060405180910390f35b6109686004803603602081101561095257600080fd5b81019080803590602001909291905050506119ea565b005b34801561097657600080fd5b50610a306004803603602081101561098d57600080fd5b81019080803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1b565b005b348015610a3e57600080fd5b50610a6b60048036036020811015610a5557600080fd5b8101908080359060200190929190505050611b95565b005b348015610a7957600080fd5b50610ac660048036036040811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bff565b604051808215151515815260200191505060405180910390f35b348015610aec57600080fd5b50610af561200d565b6040518082815260200191505060405180910390f35b348015610b1757600080fd5b50610b20612017565b6040518082815260200191505060405180910390f35b348015610b4257600080fd5b50610b4b612021565b6040518082815260200191505060405180910390f35b348015610b6d57600080fd5b50610c2760048036036020811015610b8457600080fd5b8101908080359060200190640100000000811115610ba157600080fd5b820183602082011115610bb357600080fd5b80359060200191846001830284011164010000000083111715610bd557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612036565b005b348015610c3557600080fd5b50610c7860048036036020811015610c4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b0565b005b348015610c8657600080fd5b50610cb360048036036020811015610c9d57600080fd5b8101908080359060200190929190505050612154565b6040518082815260200191505060405180910390f35b348015610cd557600080fd5b50610d3860048036036040811015610cec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612162565b6040518082815260200191505060405180910390f35b348015610d5a57600080fd5b50610d636121e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db157600080fd5b50610dba61220f565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610de5612219565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e915780601f10610e6657610100808354040283529160200191610e91565b820191906000526020600020905b815481529060010190602001808311610e7457829003601f168201915b505050505081565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110235780600881905550611028565b600080fd5b50565b6000600554905090565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111445761109360075461221f565b600754600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611251576111a060075461221f565b600754600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b81600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561131c575081600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156113285750600082115b80156113b35750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b1561154a5781600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061154f565b600090505b9392505050565b601281565b60095481565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156115ef57806009819055506115f4565b600080fd5b50565b6000600654905090565b60085481565b60045481565b6000809050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166c57600080fd5b600754825102600660008282540192505081905550600754825102600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8151811015611764578181815181106116e957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a380806001019150506116d4565b5050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180357600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611809565b60075490505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118aa5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118af565b600080fd5b50565b60055481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505061191d57600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119dc5780601f106119b1576101008083540402835291602001916119dc565b820191906000526020600020905b8154815290600101906020018083116119bf57829003601f168201915b505050505081565b60035481565b60008114156119f857600080fd5b600060085460025481611a0757fe5b04820290506009548202341415611aa957611a22338261223d565b611a94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7472616e73666572206572726f7200000000000000000000000000000000000081525060200191505060405180910390fd5b80600360008282540192505081905550611b17565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642076616c75650000000000000000000000000000000000000081525060200191505060405180910390fd5b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b8d578060019080519060200190611b8792919061254e565b50611b92565b600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611bf75780600781905550611bfc565b600080fd5b50565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d0e57611c5d60075461221f565b600754600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e1b57611d6a60075461221f565b600754600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611e6a5750600082115b8015611ef55750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156120025781600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612007565b600090505b92915050565b6000600354905090565b6000600454905090565b60006008546002548161203057fe5b04905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156120a85780600090805190602001906120a292919061254e565b506120ad565b600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561214c5780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612151565b600080fd5b50565b600060095482029050919050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b60075481565b600254816005546003540101111561223a5760006007819055505b50565b600081600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561228e5750600082115b80156123195750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156125435781600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612487576123c760075461221f565b6007548201600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055506124d5565b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612548565b600090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061258f57805160ff19168380011785556125bd565b828001600101855582156125bd579182015b828111156125bc5782518255916020019190600101906125a1565b5b5090506125ca91906125ce565b5090565b6125f091905b808211156125ec5760008160009055506001016125d4565b5090565b9056fea264697066735822122069128534c5fdccc7fef9d809746884bf11c410b1e0e1db81b83227dd597a25a064736f6c634300060000334d696e657265756d3332202d204f6e6c7920333220546f6b656e7320537570706c790000000000000000000000008efd839d6bcabaac5072d1c2bb360cbdb130c1b6

Deployed ByteCode

0x6080604052600436106102255760003560e01c80637e266a3411610123578063ac72200d116100ab578063dcf672b71161006f578063dcf672b714610c7a578063dd62ed3e14610cc9578063ea1a639314610d4e578063f29056d214610da5578063fc2ea8a514610dd057610225565b8063ac72200d14610ae0578063b2ee2ccd14610b0b578063b7d0a90714610b36578063ba51b1b414610b61578063d95f43ac14610c2957610225565b80639dd991b7116100f25780639dd991b714610911578063a0712d681461093c578063a4f29aad1461096a578063a5500c3014610a32578063a9059cbb14610a6d57610225565b80637e266a34146107e857806386d1a69f146108135780638da5cb5b1461082a57806395d89b411461088157610225565b8063332df3bf116101b15780635780423b116101755780635780423b1461061757806357bdecd0146106425780636abc4cdf1461066d57806370a0823114610732578063729ddbee1461079757610225565b8063332df3bf146105045780633eaaf86b1461052f5780634595c2a61461055a5780634dab9d38146105b1578063565356e5146105ec57610225565b806318160ddd116101f857806318160ddd146103af5780631a4658d9146103da5780631bbf3c5c1461041557806323b872dd14610440578063313ce567146104d357610225565b806306fdde031461022a578063095ea7b3146102ba57806309e527b11461032d5780630f728d1d14610358575b600080fd5b34801561023657600080fd5b5061023f610dfb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027f578082015181840152602081019050610264565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b50610313600480360360408110156102dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e99565b604051808215151515815260200191505060405180910390f35b34801561033957600080fd5b50610342610f8b565b6040518082815260200191505060405180910390f35b34801561036457600080fd5b5061036d610f91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bb57600080fd5b506103c4610fb7565b6040518082815260200191505060405180910390f35b3480156103e657600080fd5b50610413600480360360208110156103fd57600080fd5b8101908080359060200190929190505050610fc1565b005b34801561042157600080fd5b5061042a61102b565b6040518082815260200191505060405180910390f35b34801561044c57600080fd5b506104b96004803603606081101561046357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611035565b604051808215151515815260200191505060405180910390f35b3480156104df57600080fd5b506104e8611556565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051057600080fd5b5061051961155b565b6040518082815260200191505060405180910390f35b34801561053b57600080fd5b50610544611561565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b5061056f611567565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105bd57600080fd5b506105ea600480360360208110156105d457600080fd5b810190808035906020019092919050505061158d565b005b3480156105f857600080fd5b506106016115f7565b6040518082815260200191505060405180910390f35b34801561062357600080fd5b5061062c611601565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b50610657611607565b6040518082815260200191505060405180910390f35b34801561067957600080fd5b506107306004803603602081101561069057600080fd5b81019080803590602001906401000000008111156106ad57600080fd5b8201836020820111156106bf57600080fd5b803590602001918460208302840111640100000000831117156106e157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061160d565b005b34801561073e57600080fd5b506107816004803603602081101561075557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611768565b6040518082815260200191505060405180910390f35b3480156107a357600080fd5b506107e6600480360360208110156107ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061180e565b005b3480156107f457600080fd5b506107fd6118b2565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b506108286118b8565b005b34801561083657600080fd5b5061083f611920565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088d57600080fd5b50610896611946565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d65780820151818401526020810190506108bb565b50505050905090810190601f1680156109035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561091d57600080fd5b506109266119e4565b6040518082815260200191505060405180910390f35b6109686004803603602081101561095257600080fd5b81019080803590602001909291905050506119ea565b005b34801561097657600080fd5b50610a306004803603602081101561098d57600080fd5b81019080803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b1b565b005b348015610a3e57600080fd5b50610a6b60048036036020811015610a5557600080fd5b8101908080359060200190929190505050611b95565b005b348015610a7957600080fd5b50610ac660048036036040811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bff565b604051808215151515815260200191505060405180910390f35b348015610aec57600080fd5b50610af561200d565b6040518082815260200191505060405180910390f35b348015610b1757600080fd5b50610b20612017565b6040518082815260200191505060405180910390f35b348015610b4257600080fd5b50610b4b612021565b6040518082815260200191505060405180910390f35b348015610b6d57600080fd5b50610c2760048036036020811015610b8457600080fd5b8101908080359060200190640100000000811115610ba157600080fd5b820183602082011115610bb357600080fd5b80359060200191846001830284011164010000000083111715610bd557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612036565b005b348015610c3557600080fd5b50610c7860048036036020811015610c4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b0565b005b348015610c8657600080fd5b50610cb360048036036020811015610c9d57600080fd5b8101908080359060200190929190505050612154565b6040518082815260200191505060405180910390f35b348015610cd557600080fd5b50610d3860048036036040811015610cec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612162565b6040518082815260200191505060405180910390f35b348015610d5a57600080fd5b50610d636121e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db157600080fd5b50610dba61220f565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610de5612219565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e915780601f10610e6657610100808354040283529160200191610e91565b820191906000526020600020905b815481529060010190602001808311610e7457829003601f168201915b505050505081565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110235780600881905550611028565b600080fd5b50565b6000600554905090565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111445761109360075461221f565b600754600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611251576111a060075461221f565b600754600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b81600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561131c575081600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156113285750600082115b80156113b35750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b1561154a5781600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061154f565b600090505b9392505050565b601281565b60095481565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156115ef57806009819055506115f4565b600080fd5b50565b6000600654905090565b60085481565b60045481565b6000809050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166c57600080fd5b600754825102600660008282540192505081905550600754825102600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8151811015611764578181815181106116e957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a380806001019150506116d4565b5050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561180357600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611809565b60075490505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118aa5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118af565b600080fd5b50565b60055481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505061191d57600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119dc5780601f106119b1576101008083540402835291602001916119dc565b820191906000526020600020905b8154815290600101906020018083116119bf57829003601f168201915b505050505081565b60035481565b60008114156119f857600080fd5b600060085460025481611a0757fe5b04820290506009548202341415611aa957611a22338261223d565b611a94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7472616e73666572206572726f7200000000000000000000000000000000000081525060200191505060405180910390fd5b80600360008282540192505081905550611b17565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642076616c75650000000000000000000000000000000000000081525060200191505060405180910390fd5b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b8d578060019080519060200190611b8792919061254e565b50611b92565b600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611bf75780600781905550611bfc565b600080fd5b50565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611d0e57611c5d60075461221f565b600754600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e1b57611d6a60075461221f565b600754600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611e6a5750600082115b8015611ef55750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156120025781600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612007565b600090505b92915050565b6000600354905090565b6000600454905090565b60006008546002548161203057fe5b04905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156120a85780600090805190602001906120a292919061254e565b506120ad565b600080fd5b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561214c5780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612151565b600080fd5b50565b600060095482029050919050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b60075481565b600254816005546003540101111561223a5760006007819055505b50565b600081600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561228e5750600082115b80156123195750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156125435781600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612487576123c760075461221f565b6007548201600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007546005600082825401925050819055506124d5565b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612548565b600090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061258f57805160ff19168380011785556125bd565b828001600101855582156125bd579182015b828111156125bc5782518255916020019190600101906125a1565b5b5090506125ca91906125ce565b5090565b6125f091905b808211156125ec5760008160009055506001016125d4565b5090565b9056fea264697066735822122069128534c5fdccc7fef9d809746884bf11c410b1e0e1db81b83227dd597a25a064736f6c63430006000033