ETH Price: $2,316.34 (-6.86%)

Token

BTYCEC Coin (BTYCEC)
 

Overview

Max Total Supply

43,200,000 BTYCEC

Holders

1,495

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12.550659022408386337 BTYCEC

Value
$0.00
0x83e2acb59003ac207b046a77a16a04ed06bdf3e6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BTYCEC

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-01-22
*/

pragma solidity ^ 0.4.24;

// ----------------------------------------------------------------------------
// 安全的加减乘除
// ----------------------------------------------------------------------------
library SafeMath {
	function add(uint a, uint b) internal pure returns(uint c) {
		c = a + b;
		require(c >= a);
	}

	function sub(uint a, uint b) internal pure returns(uint c) {
		require(b <= a);
		c = a - b;
	}

	function mul(uint a, uint b) internal pure returns(uint c) {
		c = a * b;
		require(a == 0 || c / a == b);
	}

	function div(uint a, uint b) internal pure returns(uint c) {
		require(b > 0);
		c = a / b;
	}
}

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
	function totalSupply() public constant returns(uint);

	function balanceOf(address tokenOwner) public constant returns(uint balance);

	function allowance(address tokenOwner, address spender) public constant returns(uint remaining);

	function transfer(address to, uint tokens) public returns(bool success);

	function approve(address spender, uint tokens) public returns(bool success);

	function transferFrom(address from, address to, uint tokens) public returns(bool success);

	event Transfer(address indexed from, address indexed to, uint tokens);
	event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}



interface btycInterface {
    function balanceOf(address _addr) external view returns (uint256);
    function getcanuse(address tokenOwner) external view returns(uint);
}
// ----------------------------------------------------------------------------
// 核心类
// ----------------------------------------------------------------------------
contract BTYCEC is ERC20Interface {
	using SafeMath
	for uint;

	string public symbol;
	string public name;
	uint8 public decimals;
	uint _totalSupply;//总发行
	uint public sysusermoney;//流通 
	uint public sysoutmoney;//矿池 

	uint public sellPrice; //出售价格 1枚代币换多少以太 /1000
	uint public buyPrice; //购买价格 多少以太可购买1枚代币 /1000
	uint public btycbuyPrice; //购买价格 多少btyc可购买1枚代币 /1000
	uint public btycsellPrice; 
	uint public sysPer; //挖矿的增量百分比 /2%
	uint public sysPrice1; //挖矿的衡量值300
	uint public sysPer1; //挖矿的增量百分比 /3.2%
	uint public systime1;//120
	uint public sysPrice2; //挖矿的衡量值900
	uint public sysPer2; //挖矿的增量百分比 /4%
	uint public systime2;//200
	uint public transper; //转账手续费 /3%
	
	bool public actived;
	uint public onceAddTime; //挖矿的时间 10 days
	uint public upper1;//团队奖% 
	uint public upper2;//团队奖% 
	uint public teamper1;//团队奖% 
	uint public teamper2;//团队奖% 
	uint public outper1;//退出锁仓
	uint public outper2;//退出锁仓
	uint public sellper;//
	uint public sysday;
	//bool public openout;
    uint public sysminteth;
    uint public hasoutmony;
    uint public hasbuymoney;
    uint public hassellmoney;
    uint public hasbuyeth;
    uint public hasselleth;
    uint public hasbtycbuymoney;
    uint public hasbtycsellmoney;
	mapping(address => uint) balances;//总计
	mapping(address => uint) myeth;//本金
	mapping(address => uint) froeth;//冻结
	//mapping(address => uint) used;
	mapping(address => mapping(address => uint)) allowed;

	/* 冻结账户 */
	mapping(address => bool) public frozenAccount;

	//上家地址
	mapping(address => address) public fromaddr;

	// 记录各个账户的增量时间
	mapping(address => uint) public crontime;
	// 挖矿次数
	mapping(address => uint) public mintnum;
	uint[] public permans;
	mapping(address => uint) public teamget;
	struct sunsdata{
	    uint n1;
	    uint n2;
	    uint getmoney;
	}
    mapping(address => sunsdata) public suns;
    btycInterface public btycBase = btycInterface(0x25FDf7f507D6124377e48409713292022D9fB69e);
	/* 通知 */
	event FrozenFunds(address target, bool frozen);
	address public owner;
    modifier onlyOwner {
		require(msg.sender == owner);
		_;
	}
	// ------------------------------------------------------------------------
	// Constructor
	// ------------------------------------------------------------------------
	constructor() public {

		symbol = "BTYCEC";
		name = "BTYCEC Coin";
		decimals = 18;
		_totalSupply = 43200000 ether;//总发行
		sysusermoney = 21000000 ether;//流通
		sysoutmoney  = 22200000 ether;//矿池

		sellPrice = 19.545 ether; //出售价格 1btyc can buy how much eth
		buyPrice = 19.545 ether; //购买价格 1eth can buy how much btyc
		btycbuyPrice = 0.00001 ether;
		btycsellPrice = 1 ether;
		sysPrice1 = 300 ether; //挖矿的衡量值
		//sysPrice1 = 3 ether;//test
		sysPer  = 20; //挖矿的增量百分比 /1000
		sysPer1 = 32; //挖矿的增量百分比 /1000
		sysPrice2 = 900 ether; //挖矿的衡量值
		//sysPrice2 = 9 ether; //test
		sysPer2 = 40; //挖矿的增量百分比 /1000
		transper = 3;//转账手续费 /100
		upper1 = 20;//第1代挖矿分润
		upper2 = 10;//第2代挖矿分润
		teamper1 = 10;//团队奖% /100
		teamper2 = 20;//团队奖% /100
		outper1 = 80;//退出锁仓 /100
		outper2 = 70;//退出锁仓 /100
		sellper = 85;// /100
		actived = true;
		onceAddTime = 10 days; //挖矿的时间 正式
		//onceAddTime = 300 seconds;//test
		sysday = 1 days; 
		//sysday = 30 seconds;//test
        systime1 = 13;
        systime2 = 21;
        permans = [40,20,12,6];
        //permans = [8,6,4,2];//test
		balances[this] = _totalSupply;
		owner = msg.sender;
		emit Transfer(address(0), owner, _totalSupply);

	}

	/* 获取用户金额 */
	function balanceOf(address user) public view returns(uint balance) {
		return balances[user];
	}
	function ethbalance(address user) public view returns(uint balance) {
		return user.balance;
	}
	
	function btycbalanceOf(address user) public view returns(uint balance) {
		return btycBase.balanceOf(user);
	}
    function addcrontime(address addr) private{
        if(crontime[addr] < now) {
            crontime[addr] = now + onceAddTime;
        }
        
    }
    function addusertime(address addr) private{
        if(balances[addr] < 2) {
            addcrontime(addr);
        }
    }
	/*
	 * 获取用户的挖矿时间
	 * @param {Object} address
	 */
	function getaddtime(address _addr) public view returns(uint) {
		if(crontime[_addr] < 2) {
			return(0);
		}else{
		    return(crontime[_addr]);
		}
		
	}
	function getmy(address user) public view returns(
	    uint myblance,
	    uint mybtyc,
	    uint meth,
	    uint myeths,
	    uint mypro,
	    uint mytime,
	    uint bprice,
	    uint sprice,
	    uint cprice,
	    uint tmoney,
	    uint myall
	){
	    myblance = balances[user];//0
	    mybtyc = btycbalanceOf(user);//1
	    meth = address(user).balance;//2
	    myeths = myeth[user];//3
	    mypro = froeth[user];//4
	    mytime = crontime[user];//5
	    bprice = buyPrice;//6
	    sprice = sellPrice;//7
	    cprice = btycbuyPrice;//8
	    tmoney = balances[this];//9
	    myall = myblance.add(mypro);//10
	}
	function geteam(address user) public view returns(
	    uint nn1,//0
	    uint nn2,//1
	    uint ms,//2
	    uint tm,//3
	    uint mintmoneys,//4
	    uint usermoneys,//5
	    uint fromoneys,//6
	    uint lid,//7
	    uint tmoney
	){
	    nn1 = suns[user].n1;
	    nn2 = suns[user].n2;
	    ms = teamget[user];
	    tm = getaddtime(user);
	    mintmoneys = sysoutmoney;
	    usermoneys = sysusermoney;
	    fromoneys = sysminteth;
	    if(suns[user].n2 > permans[2] && suns[user].n1 > permans[3]){
	        lid = 1;
	    }
	    if(suns[user].n2 > permans[0] && suns[user].n1 > permans[1]){
	        lid = 2;
	    }
	    tmoney = _totalSupply.sub(balances[this]);//9
	}
	function getsys() public view returns(
	    uint tmoney,//0
	    uint outm,//1
	    uint um,//2
	    uint from,//3
	    uint hasout,//4
	    uint hasbuy,//5
	    uint hassell,//6
	    uint hasbtycbuy,//7
	    uint hasbtycsell,//8
	    uint hasbuyeths,//9
	    uint hasselleths//10
	){
	    tmoney = _totalSupply.sub(balances[this]);
	    outm = sysoutmoney;
	    um = sysusermoney;
	    from = sysminteth;
	    hasout = hasoutmony;
	    hasbuy = hasbuymoney;
	    hassell = hassellmoney;
	    hasbtycbuy = hasbtycbuymoney;
	    hasbtycsell = hasbtycsellmoney;
	    hasbuyeths = hasbuyeth;
	    hasselleths = hasselleth;
	}

	/*
	 * 用户转账
	 * @param {Object} address
	 */
	function transfer(address to, uint tokens) public returns(bool success) {
	    address from = msg.sender;
		require(!frozenAccount[from]);
		require(!frozenAccount[to]);
		require(tokens > 1 && tokens < _totalSupply);
		require(actived == true);
		uint addper = tokens*transper/100;
		uint allmoney = tokens + addper;
		require(balances[from] >= allmoney);
		require(addper < balances[from] && addper > 0);
		// 防止转移到0x0, 用burn代替这个功能
        require(to != 0x0);
		require(from != to);
		// 将此保存为将来的断言, 函数最后会有一个检验103 - 3 + 10
        uint previousBalances = balances[from] - addper + balances[to];
		//如果用户没有上家
		if(fromaddr[to] == address(0) && fromaddr[from] != to) {
			//指定上家地址
			fromaddr[to] = from;
			suns[from].n1++;
			if(fromaddr[from] != address(0)) {
			    suns[fromaddr[from]].n2++;
			}
		} 
		
		balances[from] = balances[from].sub(allmoney);
		if(balances[from] < myeth[from]) {
		    myeth[from] = balances[from];
		}
		balances[this] = balances[this].add(addper);
		balances[to] = balances[to].add(tokens);
		myeth[to] = myeth[to].add(tokens);
		addcrontime(to);
		emit Transfer(from, this, addper);
		emit Transfer(from, to, tokens);
		// 断言检测, 不应该为错
        assert(balances[from] + balances[to] == previousBalances);//90 10
		return true;
	}

	function getfrom(address _addr) public view returns(address) {
		return(fromaddr[_addr]);
	}

	function approve(address spender, uint tokens) public returns(bool success) {
	    require(balances[msg.sender] >= tokens);
		allowed[msg.sender][spender] = tokens;
		emit Approval(msg.sender, spender, tokens);
		return true;
	}
	/*
	 * 授权转账
	 * @param {Object} address
	 */
	function transferFrom(address from, address to, uint tokens) public returns(bool success) {
		require(actived == true);
		require(!frozenAccount[from]);
		require(!frozenAccount[to]);
		require(balances[from] >= tokens);
		require(tokens > 1 && tokens < _totalSupply);
		balances[from] = balances[from].sub(tokens);
		allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
		balances[to] = balances[to].add(tokens);
		emit Transfer(from, to, tokens);
		return true;
	}

	/*
	 * 获取授权信息
	 * @param {Object} address
	 */
	function allowance(address tokenOwner, address spender) public view returns(uint remaining) {
		return allowed[tokenOwner][spender];
	}

	/*
	 * 授权
	 * @param {Object} address
	 */
	function approveAndCall(address spender, uint tokens) public returns(bool success) {
	    require(!frozenAccount[spender]);
	    require(balances[msg.sender] >= tokens);
	    require(tokens > 1 && tokens < _totalSupply);
		allowed[msg.sender][spender] = tokens;
		emit Approval(msg.sender, spender, tokens);
		//ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
		return true;
	}

	/// 冻结 or 解冻账户
	function freezeAccount(address target, bool freeze) onlyOwner public {
		frozenAccount[target] = freeze;
		emit FrozenFunds(target, freeze);
	}

	/*
	 * 系统设置
	 * @param {Object} uint
	 	
	 */
	function setconf(
    	uint newonceaddtime, 
    	uint newBuyPrice, 
    	uint newSellPrice, 
    	uint sysPermit,
    	uint systyPrice1, 
    	uint sysPermit1, 
    	uint systyPrice2, 
    	uint sysPermit2,
    	uint systime1s,
    	uint systime2s,
    	uint transpers,
    	uint sellpers,
    	uint outper1s,
    	uint outper2s
    ) onlyOwner public{
		onceAddTime = newonceaddtime;
		buyPrice = newBuyPrice;
		sellPrice = newSellPrice;
		sysPer = sysPermit;
		sysPrice2 = systyPrice2;
		sysPer2 = sysPermit2;
		sysPrice1 = systyPrice1;
		sysPer1 = sysPermit1;
		systime1 = systime1s + 1;
		systime2 = systime2s + 1;
		transper = transpers;
		sellper = sellpers;
		outper1 = outper1s;
		outper2 = outper2s;
		
	}
	/*
	 * 获取系统设置
	 */
	function getconf() public view returns(
	    uint newonceaddtime, 
    	uint newBuyPrice, 
    	uint newSellPrice, 
    	uint sysPermit,
    	uint systyPrice1, 
    	uint sysPermit1, 
    	uint systyPrice2, 
    	uint sysPermit2,
    	uint systime1s,
    	uint systime2s,
    	uint transpers,
    	uint sellpers,
    	uint outper1s,
    	uint outper2s
	) {
		newonceaddtime = onceAddTime;//0
		newBuyPrice = buyPrice;//1
	    newSellPrice = 	sellPrice;//2
		sysPermit = sysPer;//3
		systyPrice1 = sysPrice1;//4
		sysPermit1 = sysPer1;//5
		systyPrice2 = sysPrice2;//6
		sysPermit2 = sysPer2;//7
		systime1s = systime1 - 1;//8
		systime2s = systime2 - 1;//9
		transpers = transper;//10
		sellpers = sellper;//11
		outper1s = outper1;//12
		outper2s = outper2;//13
	}
	function setother(
	    uint upper1s,
    	uint upper2s,
    	uint teamper1s,
    	uint teamper2s,
    	uint btycbuyPrices,
    	uint btycsellPrices,
    	uint t1,
    	uint t2,
    	uint t3,
    	uint t4
	) public onlyOwner{
	    upper1 = upper1s;
		upper2 = upper2s;
		teamper1 = teamper1s;
		teamper2 = teamper2s;
		btycbuyPrice = btycbuyPrices;
		btycsellPrice = btycsellPrices;
		permans = [t1,t2,t3,t4];
	}
	function getother() public view returns(
	    uint upper1s,
    	uint upper2s,
    	uint teamper1s,
    	uint teamper2s,
    	uint btycbuyPrices,
    	uint btycsellPrices,
    	uint t1,
    	uint t2,
    	uint t3,
    	uint t4
	){
	    upper1s = upper1;
		upper2s = upper2;
		teamper1s = teamper1;
		teamper2s = teamper2;
		btycbuyPrices = btycbuyPrice;
		btycsellPrices = btycsellPrice;
		t1 = permans[0];
		t2 = permans[1];
		t3 = permans[2];
		t4 = permans[3];
	}
	/*
	 * 设置是否开启
	 * @param {Object} bool
	 */
	function setactive(bool tags) public onlyOwner {
		actived = tags;
	}
	/*
	function setbtyctoken(address token) onlyOwner public {
	    btyctoken = token;
	    //btycBase = btycInterface(token);
	    settoken(token, true);
	}*/
	/*
	 * 获取总发行
	 */
	function totalSupply() public view returns(uint) {
		return _totalSupply;
	}
	/*
	 * 向指定账户拨发资金
	 * @param {Object} address
	 */
	function adduser(address target, uint256 mintedAmount) public onlyOwner{
		require(!frozenAccount[target]);
		require(actived == true);
        require(balances[this] > mintedAmount);
		balances[target] = balances[target].add(mintedAmount);
		myeth[target] = myeth[target].add(mintedAmount);
		balances[this] = balances[this].sub(mintedAmount);
		sysusermoney = sysusermoney.sub(mintedAmount);
		hasoutmony = hasoutmony.add(mintedAmount);
		addcrontime(target);
		emit Transfer(this, target, mintedAmount);
	}
	function subuser(address target, uint256 mintedAmount) public onlyOwner{
		require(!frozenAccount[target]);
		require(actived == true);
        require(balances[target] > mintedAmount);
		balances[target] = balances[target].sub(mintedAmount);
		if(balances[target] < myeth[target]) {
		    myeth[target] = balances[target];
		}
		balances[this] = balances[this].add(mintedAmount);
		sysusermoney = sysusermoney.add(mintedAmount);
		emit Transfer( target,this, mintedAmount);
	}

	function mintadd() public{
	    address user = msg.sender;
	    uint money = balances[user];
		require(!frozenAccount[user]);
		require(actived == true);
		require(money >= sysPrice1);
		froeth[user] = froeth[user].add(money);
		sysminteth = sysminteth.add(money);
		balances[user] = 1;
		myeth[user] = 1;
		if(froeth[user] >= sysPrice2) {
		    mintnum[user] = systime2;
		}else{
		    mintnum[user] = systime1;
		}
		crontime[user] = now + onceAddTime;
		emit Transfer(user, this, money);
		
	}
	function mintsub() public{
	    address user = msg.sender;
		require(!frozenAccount[user]);
		require(actived == true);
		require(mintnum[user] > 1);
		require(froeth[user] >= sysPrice1);
		uint getamount = froeth[user]*outper1/100;
		if(froeth[user] >= sysPrice2) {
		    getamount = froeth[user]*outper2/100;
		}
		
		uint addthis = froeth[user].sub(getamount);
		balances[this] = balances[this].add(addthis);
		emit Transfer(user, this, addthis);
		if(sysminteth == froeth[user]){
		    sysminteth = sysminteth.add(1);
		}
		sysminteth = sysminteth.sub(froeth[user]);
		froeth[user] = 1;
		mintnum[user] = 1;
		balances[user] = balances[user].add(getamount);
		myeth[user] = myeth[user].add(getamount);
		emit Transfer(this, user, getamount);
		
	}
	function setteam(address user, uint amount) private returns(bool) {
	    if(suns[user].n2 >= permans[2] && suns[user].n1 >= permans[3]){
	        teamget[user] = teamget[user].add(amount);
	        uint chkmoney = sysPrice1;
	        uint sendmoney = teamget[user]*teamper1/100;
	        if(suns[user].n2 >= permans[0] && suns[user].n1 >= permans[1]){
	            chkmoney = sysPrice2;
	            sendmoney = teamget[user]*teamper2/100;
	        }
	        if(teamget[user] >= chkmoney) {
	            suns[user].getmoney = suns[user].getmoney.add(sendmoney);
	            balances[user] = balances[user].add(sendmoney);
	            teamget[user] = 1;
	            balances[this] = balances[this].sub(sendmoney);
		        sysoutmoney = sysoutmoney.sub(sendmoney);
		        sysusermoney = sysusermoney.add(sendmoney);
		        emit Transfer(this, user, sendmoney);
	        }
	        return(true);
	    }
	}
	/*
	 * 用户每隔10天挖矿一次
	 */
	function mint() public {
	    address user = msg.sender;
		require(!frozenAccount[user]);
		require(actived == true);
		require(crontime[user] > 1);
		require(now > crontime[user]);
		uint amount;
		uint usmoney;
		uint mintmoney;
		//require(balances[user] >= sysPrice1);
		if(myeth[user] > 1) {
		    usmoney = myeth[user] * sysPer / 1000;
		    //amount = amount.add(myeth[user] * sysPer / 1000);
		}
		if(froeth[user] >= sysPrice1 && mintnum[user] > 1) {
		    mintmoney = froeth[user] * sysPer1 / 1000;
		    if(froeth[user] >= sysPrice2) {
    		    mintmoney = froeth[user] * sysPer2 / 1000;
    		}
		}
		amount = usmoney.add(mintmoney);
		require(balances[this] > amount);
		require(sysoutmoney > amount);
		balances[user] = balances[user].add(amount);
		balances[this] = balances[this].sub(amount);
		sysoutmoney = sysoutmoney.sub(amount);
		sysusermoney = sysusermoney.add(amount);
		crontime[user] = now + onceAddTime;
		
		if(usmoney > 0) {
		    emit Transfer(this, user, usmoney);
		}
		if(mintmoney > 0) {
		    emit Transfer(this, user, mintmoney);
		    mintnum[user]--;
		    if(mintnum[user] < 2) {
		        balances[user] = balances[user].add(froeth[user]);
		        myeth[user] = myeth[user].add(froeth[user]);
		        sysminteth = sysminteth.sub(froeth[user]);
		        emit Transfer(this, user, froeth[user]);
		        froeth[user] = 1; 
		    }
		}
		address top1 = fromaddr[user];
		if(top1 != address(0) && top1 != user) {
		    uint upmoney1 = amount*upper1/100;
		    balances[top1] = balances[top1].add(upmoney1);
		    balances[this] = balances[this].sub(upmoney1);
		    sysoutmoney = sysoutmoney.sub(upmoney1);
		    sysusermoney = sysusermoney.add(upmoney1);
		    emit Transfer(this, top1, upmoney1);
		    setteam(top1, upmoney1);
		    address top2 = fromaddr[top1];
		    if(top2 != address(0) && top2 != user) {
    		    uint upmoney2 = amount*upper2/100;
    		    balances[top2] = balances[top2].add(upmoney2);
    		    balances[this] = balances[this].sub(upmoney2);
    		    sysoutmoney = sysoutmoney.sub(upmoney2);
    		    sysusermoney = sysusermoney.add(upmoney2);
    		    emit Transfer(this, top2, upmoney2);
    		    setteam(top2, upmoney2);
    		}
		}
		//emit Transfer(this, user, amount);
		

	}
	/*
	 * 获取总账目
	 */
	function getall() public view returns(uint256 money) {
		money = address(this).balance;
	}
	function gettoday() public view returns(uint d) {
	    d = now - now%sysday;
	}
	/*
	 * 购买
	 */
	function buy() public payable returns(uint) {
		require(actived == true);
		address user = msg.sender;
		require(!frozenAccount[user]);
		require(msg.value > 0);
		uint amount = (msg.value * buyPrice)/1 ether;
		require(balances[this] > amount);
		require(amount > 1 && amount < _totalSupply);
		balances[user] = balances[user].add(amount);
		myeth[user] = myeth[user].add(amount);
		balances[this] = balances[this].sub(amount);
		sysusermoney = sysusermoney.sub(amount);
		hasbuymoney = hasbuymoney.add(amount);
		hasbuyeth = hasbuyeth.add(msg.value);
		addcrontime(user);
		owner.transfer(msg.value);
		emit Transfer(this, user, amount);
		return(amount);
	}

	/*
	 * 系统充值
	 */
	function charge() public payable returns(bool) {
		return(true);
	}
	
	function() payable public {
		buy();
	}
	/*
	 * 系统提现
	 * @param {Object} address
	 */
	function withdraw(address _to, uint money) public onlyOwner {
		require(actived == true);
		require(!frozenAccount[_to]);
		require(address(this).balance > money);
		require(money > 0);
		_to.transfer(money);
	}
	/*
	 * 出售
	 * @param {Object} uint256
	 */
	function sell(uint256 amount) public returns(bool success) {
		require(actived == true);
		address user = msg.sender;
		require(!frozenAccount[user]);
		require(amount < _totalSupply);
		require(amount > 1);
		require(balances[user] >= amount);
		//uint moneys = (amount * sellPrice) / 10 ** uint(decimals);
		uint moneys = (amount * sellper * 10 finney)/sellPrice;
		//uint moneys = (amount * sellPrice * sellper)/100 ether;
		require(address(this).balance > moneys);
		user.transfer(moneys);
		uint previousBalances = balances[user] + balances[this];
		balances[user] = balances[user].sub(amount);
		if(balances[user] < myeth[user]) {
		    myeth[user] = balances[user];
		}
		balances[this] = balances[this].add(amount);
        sysusermoney = sysusermoney.add(amount);
        hassellmoney = hassellmoney.add(amount);
        hasselleth = hasselleth.add(moneys);
		emit Transfer(user, this, amount);
		// 断言检测, 不应该为错
        assert(balances[user] + balances[this] == previousBalances);
		return(true);
	}

	/*
	 * 批量发币
	 * @param {Object} address
	 */
	function addBalances(address[] recipients, uint256[] moenys) public onlyOwner{
		uint256 sum = 0;
		for(uint256 i = 0; i < recipients.length; i++) {
			balances[recipients[i]] = balances[recipients[i]].add(moenys[i]);
			sum = sum.add(moenys[i]);
			addusertime(recipients[i]);
			emit Transfer(this, recipients[i], moenys[i]);
		}
		balances[this] = balances[this].sub(sum);
		sysusermoney = sysusermoney.sub(sum);
	}
	/*
	 * 批量减币
	 * @param {Object} address
	 */
	function subBalances(address[] recipients, uint256[] moenys) public onlyOwner{
		uint256 sum = 0;
		for(uint256 i = 0; i < recipients.length; i++) {
			balances[recipients[i]] = balances[recipients[i]].sub(moenys[i]);
			sum = sum.add(moenys[i]);
			emit Transfer(recipients[i], this, moenys[i]);
		}
		balances[this] = balances[this].add(sum);
		sysusermoney = sysusermoney.add(sum);
	}

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"btycBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysPer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"systime1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onceAddTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"btycsellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"btycbalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hassellmoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getaddtime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"adduser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gettoday","outputs":[{"name":"d","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getother","outputs":[{"name":"upper1s","type":"uint256"},{"name":"upper2s","type":"uint256"},{"name":"teamper1s","type":"uint256"},{"name":"teamper2s","type":"uint256"},{"name":"btycbuyPrices","type":"uint256"},{"name":"btycsellPrices","type":"uint256"},{"name":"t1","type":"uint256"},{"name":"t2","type":"uint256"},{"name":"t3","type":"uint256"},{"name":"t4","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"upper1s","type":"uint256"},{"name":"upper2s","type":"uint256"},{"name":"teamper1s","type":"uint256"},{"name":"teamper2s","type":"uint256"},{"name":"btycbuyPrices","type":"uint256"},{"name":"btycsellPrices","type":"uint256"},{"name":"t1","type":"uint256"},{"name":"t2","type":"uint256"},{"name":"t3","type":"uint256"},{"name":"t4","type":"uint256"}],"name":"setother","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sysminteth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upper2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getconf","outputs":[{"name":"newonceaddtime","type":"uint256"},{"name":"newBuyPrice","type":"uint256"},{"name":"newSellPrice","type":"uint256"},{"name":"sysPermit","type":"uint256"},{"name":"systyPrice1","type":"uint256"},{"name":"sysPermit1","type":"uint256"},{"name":"systyPrice2","type":"uint256"},{"name":"sysPermit2","type":"uint256"},{"name":"systime1s","type":"uint256"},{"name":"systime2s","type":"uint256"},{"name":"transpers","type":"uint256"},{"name":"sellpers","type":"uint256"},{"name":"outper1s","type":"uint256"},{"name":"outper2s","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"moenys","type":"uint256[]"}],"name":"subBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"fromaddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasbuyeth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getmy","outputs":[{"name":"myblance","type":"uint256"},{"name":"mybtyc","type":"uint256"},{"name":"meth","type":"uint256"},{"name":"myeths","type":"uint256"},{"name":"mypro","type":"uint256"},{"name":"mytime","type":"uint256"},{"name":"bprice","type":"uint256"},{"name":"sprice","type":"uint256"},{"name":"cprice","type":"uint256"},{"name":"tmoney","type":"uint256"},{"name":"myall","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"outper2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"charge","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"outper1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasselleth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"permans","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"teamget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysPer2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"ethbalance","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamper2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"btycbuyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mintadd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transper","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysPrice1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysPer1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upper1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getall","outputs":[{"name":"money","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasbtycbuymoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"crontime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"geteam","outputs":[{"name":"nn1","type":"uint256"},{"name":"nn2","type":"uint256"},{"name":"ms","type":"uint256"},{"name":"tm","type":"uint256"},{"name":"mintmoneys","type":"uint256"},{"name":"usermoneys","type":"uint256"},{"name":"fromoneys","type":"uint256"},{"name":"lid","type":"uint256"},{"name":"tmoney","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellper","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"sysPrice2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newonceaddtime","type":"uint256"},{"name":"newBuyPrice","type":"uint256"},{"name":"newSellPrice","type":"uint256"},{"name":"sysPermit","type":"uint256"},{"name":"systyPrice1","type":"uint256"},{"name":"sysPermit1","type":"uint256"},{"name":"systyPrice2","type":"uint256"},{"name":"sysPermit2","type":"uint256"},{"name":"systime1s","type":"uint256"},{"name":"systime2s","type":"uint256"},{"name":"transpers","type":"uint256"},{"name":"sellpers","type":"uint256"},{"name":"outper1s","type":"uint256"},{"name":"outper2s","type":"uint256"}],"name":"setconf","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamper1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mintsub","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasbuymoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"mintnum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"suns","outputs":[{"name":"n1","type":"uint256"},{"name":"n2","type":"uint256"},{"name":"getmoney","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"systime2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysoutmoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"subuser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sysusermoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"moenys","type":"uint256[]"}],"name":"addBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sell","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getsys","outputs":[{"name":"tmoney","type":"uint256"},{"name":"outm","type":"uint256"},{"name":"um","type":"uint256"},{"name":"from","type":"uint256"},{"name":"hasout","type":"uint256"},{"name":"hasbuy","type":"uint256"},{"name":"hassell","type":"uint256"},{"name":"hasbtycbuy","type":"uint256"},{"name":"hasbtycsell","type":"uint256"},{"name":"hasbuyeths","type":"uint256"},{"name":"hasselleths","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"actived","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getfrom","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasbtycsellmoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"money","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tags","type":"bool"}],"name":"setactive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hasoutmony","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

6080604052602f8054600160a060020a0319167325fdf7f507d6124377e48409713292022d9fb69e1790553480156200003757600080fd5b506040805180820190915260068082527f425459434543000000000000000000000000000000000000000000000000000060209092019182526200007e9160009162000248565b5060408051808201909152600b8082527f42545943454320436f696e0000000000000000000000000000000000000000006020909201918252620000c59160019162000248565b5060028054601260ff1991821681179092556a23bbf4b14c2e7ff800000060039081556a115eec47f6cf7e3500000060049081556a125d0869555f01c300000060055568010f3dc9f23702800060068181556007919091556509184e72a000600855670de0b6b3a7640000600955681043561a8829300000600b556014600a8181556020600c8181556830ca024f987b900000600e556028600f81905560119790975583805560158381556016939093556017849055605060185560466019556055601a558854909716600117909755620d2f0060135562015180601b55600d80556010556040805160808101825294855295840152938201929092526060810192909252620001d891602c91620002cd565b5060035430600090815260246020908152604080832084905560308054600160a060020a03191633179081905581519485529051600160a060020a0391909116937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a362000330565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028b57805160ff1916838001178555620002bb565b82800160010185558215620002bb579182015b82811115620002bb5782518255916020019190600101906200029e565b50620002c992915062000310565b5090565b828054828255906000526020600020908101928215620002bb579160200282015b82811115620002bb578251829060ff16905591602001919060010190620002ee565b6200032d91905b80821115620002c9576000815560010162000317565b90565b61376b80620003406000396000f3006080604052600436106103845763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461038f578063095ea7b3146104195780630de0626a146104515780630eea10b1146104825780631249c58b146104a95780631565cf3a146104c057806316496a15146104d557806318160ddd146104ea57806323b872dd146104ff57806326dc097d1461052957806329d11b321461053e578063313ce5671461055f5780633177029f1461058a578063327f0eaf146105ae57806332eb5e44146105c35780633435ea80146105e45780633670e072146106085780633abd8e4e1461061d5780633ac83b9d146106825780633bdcaf63146106b75780633f691c5b146106cc57806343463b98146106e157806346e3606014610764578063478904eb146107f25780634b75033414610813578063509f31021461082857806353813af81461083d578063547921a8146108b457806355161913146108c957806358657841146108d15780635ba98896146108e657806360cb613e146108fb5780636a3c6067146109135780636d89dd1a146109345780636eb09ce2146109495780636ee7578a1461096a57806370a082311461097f57806374547fec146109a05780637642249c146109b557806379931772146109ca5780637e00e381146109df578063827c2b24146109f45780638620410b14610a0957806387de581c14610a1e5780638da5cb5b14610a335780638f448a3814610a485780639097479514610a5d57806391d058da14610a72578063936f73c614610a8757806394dafb1614610aa857806395d89b4114610b105780639a24fb4814610b25578063a6f2ae3a14610b3a578063a755e41014610b42578063a9059cbb14610b57578063acec0e1d14610b7b578063afcf28cd14610bc0578063b1347e9d14610bd5578063b414d4b614610bea578063b868203314610c0b578063bd39519a14610c20578063bda4802614610c41578063cb92a2bc14610c80578063d12869dc14610c95578063d4e3293814610caa578063dcd62cf114610cce578063dd62ed3e14610ce3578063ddf0c07014610d0a578063e4849b3214610d98578063e4be47e714610db0578063e724529c14610dc5578063e736f03c14610deb578063e987cc4514610e00578063f2b3affe14610e21578063f3fef3a314610e36578063f43a72b014610e5a578063f8fe778f14610e74575b61038c610e89565b50005b34801561039b57600080fd5b506103a461107b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103de5781810151838201526020016103c6565b50505050905090810190601f16801561040b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042557600080fd5b5061043d600160a060020a0360043516602435611108565b604080519115158252519081900360200190f35b34801561045d57600080fd5b5061046661118c565b60408051600160a060020a039092168252519081900360200190f35b34801561048e57600080fd5b5061049761119b565b60408051918252519081900360200190f35b3480156104b557600080fd5b506104be6111a1565b005b3480156104cc57600080fd5b506104976117e7565b3480156104e157600080fd5b506104976117ed565b3480156104f657600080fd5b506104976117f3565b34801561050b57600080fd5b5061043d600160a060020a03600435811690602435166044356117fa565b34801561053557600080fd5b50610497611997565b34801561054a57600080fd5b50610497600160a060020a036004351661199d565b34801561056b57600080fd5b50610574611a3c565b6040805160ff9092168252519081900360200190f35b34801561059657600080fd5b5061043d600160a060020a0360043516602435611a45565b3480156105ba57600080fd5b50610497611aa3565b3480156105cf57600080fd5b50610497600160a060020a0360043516611aa9565b3480156105f057600080fd5b506104be600160a060020a0360043516602435611af1565b34801561061457600080fd5b50610497611c6a565b34801561062957600080fd5b50610632611c81565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b34801561068e57600080fd5b506104be60043560243560443560643560843560a43560c43560e4356101043561012435611d1a565b3480156106c357600080fd5b50610497611d8b565b3480156106d857600080fd5b50610497611d91565b3480156106ed57600080fd5b506106f6611d97565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561077057600080fd5b50604080516020600480358082013583810280860185019096528085526104be95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de59650505050505050565b3480156107fe57600080fd5b50610466600160a060020a0360043516611f88565b34801561081f57600080fd5b50610497611fa3565b34801561083457600080fd5b50610497611fa9565b34801561084957600080fd5b5061085e600160a060020a0360043516611faf565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945260a088019290925260c087015260e086015261010085015261012084015261014083015251908190036101600190f35b3480156108c057600080fd5b506104976120bd565b61043d6120c3565b3480156108dd57600080fd5b506104976120c8565b3480156108f257600080fd5b506104976120ce565b34801561090757600080fd5b506104976004356120d4565b34801561091f57600080fd5b50610497600160a060020a03600435166120f3565b34801561094057600080fd5b50610497612105565b34801561095557600080fd5b50610497600160a060020a036004351661210b565b34801561097657600080fd5b50610497612118565b34801561098b57600080fd5b50610497600160a060020a036004351661211e565b3480156109ac57600080fd5b50610497612139565b3480156109c157600080fd5b506104be61213f565b3480156109d657600080fd5b506104976122a4565b3480156109eb57600080fd5b506104976122aa565b348015610a0057600080fd5b506104976122b0565b348015610a1557600080fd5b506104976122b6565b348015610a2a57600080fd5b506104976122bc565b348015610a3f57600080fd5b506104666122c2565b348015610a5457600080fd5b506104976122d1565b348015610a6957600080fd5b506104976122d7565b348015610a7e57600080fd5b506104976122dc565b348015610a9357600080fd5b50610497600160a060020a03600435166122e2565b348015610ab457600080fd5b50610ac9600160a060020a03600435166122f4565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b348015610b1c57600080fd5b506103a4612471565b348015610b3157600080fd5b506104976124cc565b610497610e89565b348015610b4e57600080fd5b506104976124d2565b348015610b6357600080fd5b5061043d600160a060020a03600435166024356124d8565b348015610b8757600080fd5b506104be60043560243560443560643560843560a43560c43560e43561010435610124356101443561016435610184356101a4356128a8565b348015610bcc57600080fd5b50610497612909565b348015610be157600080fd5b506104be61290f565b348015610bf657600080fd5b5061043d600160a060020a0360043516612b96565b348015610c1757600080fd5b50610497612bab565b348015610c2c57600080fd5b50610497600160a060020a0360043516612bb1565b348015610c4d57600080fd5b50610c62600160a060020a0360043516612bc3565b60408051938452602084019290925282820152519081900360600190f35b348015610c8c57600080fd5b50610497612be4565b348015610ca157600080fd5b50610497612bea565b348015610cb657600080fd5b506104be600160a060020a0360043516602435612bf0565b348015610cda57600080fd5b50610497612d5a565b348015610cef57600080fd5b50610497600160a060020a0360043581169060243516612d60565b348015610d1657600080fd5b50604080516020600480358082013583810280860185019096528085526104be95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750612d8b9650505050505050565b348015610da457600080fd5b5061043d600435612f2e565b348015610dbc57600080fd5b5061085e613169565b348015610dd157600080fd5b506104be600160a060020a036004351660243515156131f5565b348015610df757600080fd5b5061043d613270565b348015610e0c57600080fd5b50610466600160a060020a0360043516613279565b348015610e2d57600080fd5b50610497613297565b348015610e4257600080fd5b506104be600160a060020a036004351660243561329d565b348015610e6657600080fd5b506104be6004351515613343565b348015610e8057600080fd5b5061049761336d565b6012546000908190819060ff161515600114610ea457600080fd5b3360008181526028602052604090205490925060ff1615610ec457600080fd5b60003411610ed157600080fd5b600754670de0b6b3a76400009034023060009081526024602052604090205491900491508110610f0057600080fd5b600181118015610f11575060035481105b1515610f1c57600080fd5b600160a060020a038216600090815260246020526040902054610f45908263ffffffff61337316565b600160a060020a038316600090815260246020908152604080832093909355602590522054610f7a908263ffffffff61337316565b600160a060020a038316600090815260256020908152604080832093909355308252602490522054610fb2908263ffffffff61338316565b30600090815260246020526040902055600454610fd5908263ffffffff61338316565b600455601e54610feb908263ffffffff61337316565b601e55602054611001903463ffffffff61337316565b60205561100d82613398565b603054604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611046573d6000803e3d6000fd5b50604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a392915050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111005780601f106110d557610100808354040283529160200191611100565b820191906000526020600020905b8154815290600101906020018083116110e357829003601f168201915b505050505081565b3360009081526024602052604081205482111561112457600080fd5b336000818152602760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b602f54600160a060020a031681565b600a5481565b3360008181526028602052604081205481908190819081908190819060ff16156111ca57600080fd5b60125460ff1615156001146111de57600080fd5b600160a060020a0388166000908152602a602052604090205460011061120357600080fd5b600160a060020a0388166000908152602a6020526040902054421161122757600080fd5b600160a060020a0388166000908152602560205260409020546001101561126d57600a54600160a060020a0389166000908152602560205260409020546103e891020495505b600b54600160a060020a038916600090815260266020526040902054108015906112af5750600160a060020a0388166000908152602b60205260409020546001105b1561130957600c54600160a060020a038916600090815260266020526040902054600e546103e89282029290920496501061130957600f54600160a060020a0389166000908152602660205260409020546103e891020494505b611319868663ffffffff61337316565b30600090815260246020526040902054909750871061133757600080fd5b600554871061134557600080fd5b600160a060020a03881660009081526024602052604090205461136e908863ffffffff61337316565b600160a060020a0389166000908152602460205260408082209290925530815220546113a0908863ffffffff61338316565b306000908152602460205260409020556005546113c3908863ffffffff61338316565b6005556004546113d9908863ffffffff61337316565b600455601354600160a060020a0389166000908152602a602052604081204290920190915586111561143457604080518781529051600160a060020a038a169130916000805160206137208339815191529181900360200190a35b600085111561159c57604080518681529051600160a060020a038a169130916000805160206137208339815191529181900360200190a3600160a060020a0388166000908152602b60205260409020805460001901908190556002111561159c57600160a060020a0388166000908152602660209081526040808320546024909252909120546114c99163ffffffff61337316565b600160a060020a03891660009081526024602090815260408083209390935560268152828220546025909152919020546115089163ffffffff61337316565b600160a060020a038916600090815260256020908152604080832093909355602690522054601c5461153f9163ffffffff61338316565b601c55600160a060020a0388166000818152602660209081526040918290205482519081529151309260008051602061372083398151915292908290030190a3600160a060020a0388166000908152602660205260409020600190555b600160a060020a0380891660009081526029602052604090205416935083158015906115da575087600160a060020a031684600160a060020a031614155b156117dd576014546064908802600160a060020a0386166000908152602460205260409020549190049350611615908463ffffffff61337316565b600160a060020a038516600090815260246020526040808220929092553081522054611647908463ffffffff61338316565b3060009081526024602052604090205560055461166a908463ffffffff61338316565b600555600454611680908463ffffffff61337316565b600455604080518481529051600160a060020a0386169130916000805160206137208339815191529181900360200190a36116bb84846133dd565b50600160a060020a0380851660009081526029602052604090205416915081158015906116fa575087600160a060020a031682600160a060020a031614155b156117dd576015546064908802600160a060020a0384166000908152602460205260409020549190049150611735908263ffffffff61337316565b600160a060020a038316600090815260246020526040808220929092553081522054611767908263ffffffff61338316565b3060009081526024602052604090205560055461178a908263ffffffff61338316565b6005556004546117a0908263ffffffff61337316565b600455604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a36117db82826133dd565b505b5050505050505050565b600d5481565b60135481565b6003545b90565b60125460009060ff16151560011461181157600080fd5b600160a060020a03841660009081526028602052604090205460ff161561183757600080fd5b600160a060020a03831660009081526028602052604090205460ff161561185d57600080fd5b600160a060020a03841660009081526024602052604090205482111561188257600080fd5b600182118015611893575060035482105b151561189e57600080fd5b600160a060020a0384166000908152602460205260409020546118c7908363ffffffff61338316565b600160a060020a0385166000908152602460209081526040808320939093556027815282822033835290522054611904908363ffffffff61338316565b600160a060020a038086166000908152602760209081526040808320338452825280832094909455918616815260249091522054611948908363ffffffff61337316565b600160a060020a03808516600081815260246020908152604091829020949094558051868152905191939288169260008051602061372083398151915292918290030190a35060019392505050565b60095481565b602f54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009392909216916370a082319160248082019260209290919082900301818787803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b505050506040513d6020811015611a3257600080fd5b505190505b919050565b60025460ff1681565b600160a060020a03821660009081526028602052604081205460ff1615611a6b57600080fd5b33600090815260246020526040902054821115611a8757600080fd5b600182118015611a98575060035482105b151561112457600080fd5b601f5481565b600160a060020a0381166000908152602a602052604081205460021115611ad257506000611a37565b50600160a060020a0381166000908152602a6020526040902054611a37565b603054600160a060020a03163314611b0857600080fd5b600160a060020a03821660009081526028602052604090205460ff1615611b2e57600080fd5b60125460ff161515600114611b4257600080fd5b306000908152602460205260409020548110611b5d57600080fd5b600160a060020a038216600090815260246020526040902054611b86908263ffffffff61337316565b600160a060020a038316600090815260246020908152604080832093909355602590522054611bbb908263ffffffff61337316565b600160a060020a038316600090815260256020908152604080832093909355308252602490522054611bf3908263ffffffff61338316565b30600090815260246020526040902055600454611c16908263ffffffff61338316565b600455601d54611c2c908263ffffffff61337316565b601d55611c3882613398565b604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a35050565b6000601b5442811515611c7957fe5b064203905090565b601454601554601654601754600854600954602c805460009182918291829182908110611caa57fe5b90600052602060002001549350602c6001815481101515611cc757fe5b90600052602060002001549250602c6002815481101515611ce457fe5b90600052602060002001549150602c6003815481101515611d0157fe5b9060005260206000200154905090919293949596979899565b603054600160a060020a03163314611d3157600080fd5b60148a905560158990556016889055601787905560088690556009859055604080516080810182528581526020810185905290810183905260608101829052611d7e90602c9060046136ba565b5050505050505050505050565b601c5481565b60155481565b601354600754600654600a54600b54600c54600e54600f54600d54601054601154601a546018546019549c9d9b9c9a9b999a9899979896979596600019958601969490950194929391929091565b6030546000908190600160a060020a03163314611e0157600080fd5b5060009050805b8351811015611f3c57611e6d8382815181101515611e2257fe5b90602001906020020151602460008785815181101515611e3e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61338316565b602460008684815181101515611e7f57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251611ecb90849083908110611eb457fe5b60209081029091010151839063ffffffff61337316565b915030600160a060020a03168482815181101515611ee557fe5b90602001906020020151600160a060020a03166000805160206137208339815191528584815181101515611f1557fe5b906020019060200201516040518082815260200191505060405180910390a3600101611e08565b30600090815260246020526040902054611f5c908363ffffffff61337316565b30600090815260246020526040902055600454611f7f908363ffffffff61337316565b60045550505050565b602960205260009081526040902054600160a060020a031681565b60065481565b60205481565b600160a060020a03811660009081526024602052604081205490808080808080808080611fdb8c61199d565b99508b600160a060020a0316319850602560008d600160a060020a0316600160a060020a03168152602001908152602001600020549750602660008d600160a060020a0316600160a060020a03168152602001908152602001600020549650602a60008d600160a060020a0316600160a060020a031681526020019081526020016000205495506007549450600654935060085492506024600030600160a060020a0316600160a060020a031681526020019081526020016000205491506120ac878c61337390919063ffffffff16565b905091939597999b90929496989a50565b60195481565b600190565b60185481565b60215481565b602c8054829081106120e257fe5b600091825260209091200154905081565b602d6020526000908152604090205481565b600f5481565b600160a060020a03163190565b60175481565b600160a060020a031660009081526024602052604090205490565b60085481565b3360008181526024602090815260408083205460289092529091205460ff161561216857600080fd5b60125460ff16151560011461217c57600080fd5b600b5481101561218b57600080fd5b600160a060020a0382166000908152602660205260409020546121b4908263ffffffff61337316565b600160a060020a038316600090815260266020526040902055601c546121e0908263ffffffff61337316565b601c55600160a060020a03821660009081526024602090815260408083206001908190556025835281842055600e546026909252909120541061223e57601054600160a060020a0383166000908152602b602052604090205561225b565b600d54600160a060020a0383166000908152602b60205260409020555b601354600160a060020a0383166000818152602a602090815260409182902042909401909355805184815290513093600080516020613720833981519152928290030190a35050565b60115481565b601b5481565b600b5481565b60075481565b600c5481565b603054600160a060020a031681565b60145481565b303190565b60225481565b602a6020526000908152604090205481565b600160a060020a0381166000908152602e602090815260408083208054600190910154602d90935290832054909280808080806123308a611aa9565b955060055494506004549350601c549250602c600281548110151561235157fe5b6000918252602080832090910154600160a060020a038d168352602e9091526040909120600101541180156123b75750602c8054600390811061239057fe5b6000918252602080832090910154600160a060020a038d168352602e909152604090912054115b156123c157600191505b602c805460009081106123d057fe5b6000918252602080832090910154600160a060020a038d168352602e9091526040909120600101541180156124365750602c8054600190811061240f57fe5b6000918252602080832090910154600160a060020a038d168352602e909152604090912054115b1561244057600291505b306000908152602460205260409020546003546124629163ffffffff61338316565b90509193959799909294969850565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111005780601f106110d557610100808354040283529160200191611100565b601a5481565b600e5481565b3360008181526028602052604081205490919082908190819060ff16156124fe57600080fd5b600160a060020a03871660009081526028602052604090205460ff161561252457600080fd5b600186118015612535575060035486105b151561254057600080fd5b60125460ff16151560011461255457600080fd5b6011546064908702600160a060020a0386166000908152602460205260409020549190049350868401925082111561258b57600080fd5b600160a060020a038416600090815260246020526040902054831080156125b25750600083115b15156125bd57600080fd5b600160a060020a03871615156125d257600080fd5b600160a060020a0384811690881614156125eb57600080fd5b50600160a060020a038087166000818152602460209081526040808320548886168452818420549484526029909252909120549185900301911615801561264f5750600160a060020a03848116600090815260296020526040902054811690881614155b156126e257600160a060020a038781166000908152602960208181526040808420805473ffffffffffffffffffffffffffffffffffffffff19168a87169081179091558452602e82528084208054600101905591905290205416156126e257600160a060020a038085166000908152602960209081526040808320549093168252602e9052206001908101805490910190555b600160a060020a03841660009081526024602052604090205461270b908363ffffffff61338316565b600160a060020a038516600090815260246020818152604080842085905560258252909220549152111561275f57600160a060020a0384166000908152602460209081526040808320546025909252909120555b3060009081526024602052604090205461277f908463ffffffff61337316565b3060009081526024602052604080822092909255600160a060020a038916815220546127b1908763ffffffff61337316565b600160a060020a0388166000908152602460209081526040808320939093556025905220546127e6908763ffffffff61337316565b600160a060020a03881660009081526025602052604090205561280887613398565b6040805184815290513091600160a060020a038716916000805160206137208339815191529181900360200190a386600160a060020a031684600160a060020a0316600080516020613720833981519152886040518082815260200191505060405180910390a3600160a060020a0380881660009081526024602052604080822054928716825290205401811461289b57fe5b5060019695505050505050565b603054600160a060020a031633146128bf57600080fd5b60139d909d5560079b909b55600699909955600a97909755600e93909355600f91909155600b93909355600c919091556001918201600d5501601055601155601a55601855601955565b60165481565b33600081815260286020526040812054819060ff161561292e57600080fd5b60125460ff16151560011461294257600080fd5b600160a060020a0383166000908152602b602052604090205460011061296757600080fd5b600b54600160a060020a038416600090815260266020526040902054101561298e57600080fd5b601854600160a060020a038416600090815260266020526040902054600e546064928202929092049350106129e157601954600160a060020a038416600090815260266020526040902054606491020491505b600160a060020a038316600090815260266020526040902054612a0a908363ffffffff61338316565b30600090815260246020526040902054909150612a2d908263ffffffff61337316565b3060008181526024602090815260409182902093909355805184815290519192600160a060020a038716926000805160206137208339815191529281900390910190a3600160a060020a038316600090815260266020526040902054601c541415612aaa57601c54612aa690600163ffffffff61337316565b601c555b600160a060020a038316600090815260266020526040902054601c54612ad59163ffffffff61338316565b601c55600160a060020a0383166000908152602660209081526040808320600190819055602b8352818420556024909152902054612b19908363ffffffff61337316565b600160a060020a038416600090815260246020908152604080832093909355602590522054612b4e908363ffffffff61337316565b600160a060020a0384166000818152602560209081526040918290209390935580518581529051919230926000805160206137208339815191529281900390910190a3505050565b60286020526000908152604090205460ff1681565b601e5481565b602b6020526000908152604090205481565b602e6020526000908152604090208054600182015460029092015490919083565b60105481565b60055481565b603054600160a060020a03163314612c0757600080fd5b600160a060020a03821660009081526028602052604090205460ff1615612c2d57600080fd5b60125460ff161515600114612c4157600080fd5b600160a060020a0382166000908152602460205260409020548110612c6557600080fd5b600160a060020a038216600090815260246020526040902054612c8e908263ffffffff61338316565b600160a060020a0383166000908152602460208181526040808420859055602582529092205491521115612ce257600160a060020a0382166000908152602460209081526040808320546025909252909120555b30600090815260246020526040902054612d02908263ffffffff61337316565b30600090815260246020526040902055600454612d25908263ffffffff61337316565b6004556040805182815290513091600160a060020a038516916000805160206137208339815191529181900360200190a35050565b60045481565b600160a060020a03918216600090815260276020908152604080832093909416825291909152205490565b6030546000908190600160a060020a03163314612da757600080fd5b5060009050805b8351811015612eeb57612e138382815181101515612dc857fe5b90602001906020020151602460008785815181101515612de457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61337316565b602460008684815181101515612e2557fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251612e5a90849083908110611eb457fe5b9150612e7c8482815181101515612e6d57fe5b90602001906020020151613690565b8381815181101515612e8a57fe5b90602001906020020151600160a060020a031630600160a060020a03166000805160206137208339815191528584815181101515612ec457fe5b906020019060200201516040518082815260200191505060405180910390a3600101612dae565b30600090815260246020526040902054612f0b908363ffffffff61338316565b30600090815260246020526040902055600454611f7f908363ffffffff61338316565b60125460009081908190819060ff161515600114612f4b57600080fd5b3360008181526028602052604090205490935060ff1615612f6b57600080fd5b6003548510612f7957600080fd5b60018511612f8657600080fd5b600160a060020a038316600090815260246020526040902054851115612fab57600080fd5b600654601a548602662386f26fc1000002811515612fc557fe5b04915030318210612fd557600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f1935050505015801561300b573d6000803e3d6000fd5b50503060009081526024602052604080822054600160a060020a038516835291205490810190613041908663ffffffff61338316565b600160a060020a038416600090815260246020818152604080842085905560258252909220549152111561309557600160a060020a0383166000908152602460209081526040808320546025909252909120555b306000908152602460205260409020546130b5908663ffffffff61337316565b306000908152602460205260409020556004546130d8908663ffffffff61337316565b600455601f546130ee908663ffffffff61337316565b601f55602154613104908363ffffffff61337316565b6021556040805186815290513091600160a060020a038616916000805160206137208339815191529181900360200190a33060009081526024602052604080822054600160a060020a038616835291205401811461315e57fe5b506001949350505050565b60008060008060008060008060008060006131b46024600030600160a060020a0316600160a060020a031681526020019081526020016000205460035461338390919063ffffffff16565b9a5060055499506004549850601c549750601d549650601e549550601f5494506022549350602354925060205491506021549050909192939495969798999a565b603054600160a060020a0316331461320c57600080fd5b600160a060020a038216600081815260286020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b60125460ff1681565b600160a060020a039081166000908152602960205260409020541690565b60235481565b603054600160a060020a031633146132b457600080fd5b60125460ff1615156001146132c857600080fd5b600160a060020a03821660009081526028602052604090205460ff16156132ee57600080fd5b303181106132fb57600080fd5b6000811161330857600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015801561333e573d6000803e3d6000fd5b505050565b603054600160a060020a0316331461335a57600080fd5b6012805460ff1916911515919091179055565b601d5481565b8181018281101561118657600080fd5b60008282111561339257600080fd5b50900390565b600160a060020a0381166000908152602a60205260409020544211156133da57601354600160a060020a0382166000908152602a602052604090204290910190555b50565b6000806000602c60028154811015156133f257fe5b6000918252602080832090910154600160a060020a0388168352602e9091526040909120600101541080159061345a5750602c8054600390811061343257fe5b6000918252602080832090910154600160a060020a0388168352602e90915260409091205410155b1561368857600160a060020a0385166000908152602d6020526040902054613488908563ffffffff61337316565b600160a060020a0386166000908152602d60205260408120829055600b54601654602c805492965060649190940204935081106134c157fe5b6000918252602080832090910154600160a060020a0388168352602e909152604090912060010154108015906135295750602c8054600190811061350157fe5b6000918252602080832090910154600160a060020a0388168352602e90915260409091205410155b15613555575050600e54601754600160a060020a0385166000908152602d602052604090205460649102045b600160a060020a0385166000908152602d6020526040902054821161368357600160a060020a0385166000908152602e60205260409020600201546135a0908263ffffffff61337316565b600160a060020a0386166000908152602e60209081526040808320600201939093556024905220546135d8908263ffffffff61337316565b600160a060020a038616600090815260246020818152604080842094909455602d815283832060019055308352522054613618908263ffffffff61338316565b3060009081526024602052604090205560055461363b908263ffffffff61338316565b600555600454613651908263ffffffff61337316565b600455604080518281529051600160a060020a0387169130916000805160206137208339815191529181900360200190a35b600192505b505092915050565b600160a060020a038116600090815260246020526040902054600211156133da576133da81613398565b8280548282559060005260206000209081019282156136f5579160200282015b828111156136f55782518255916020019190600101906136da565b50613701929150613705565b5090565b6117f791905b80821115613701576000815560010161370b5600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204f75009fbb40ecada2309bb4accd39dc2a679d7a000af7783b2a42282436ae650029

Deployed Bytecode

0x6080604052600436106103845763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461038f578063095ea7b3146104195780630de0626a146104515780630eea10b1146104825780631249c58b146104a95780631565cf3a146104c057806316496a15146104d557806318160ddd146104ea57806323b872dd146104ff57806326dc097d1461052957806329d11b321461053e578063313ce5671461055f5780633177029f1461058a578063327f0eaf146105ae57806332eb5e44146105c35780633435ea80146105e45780633670e072146106085780633abd8e4e1461061d5780633ac83b9d146106825780633bdcaf63146106b75780633f691c5b146106cc57806343463b98146106e157806346e3606014610764578063478904eb146107f25780634b75033414610813578063509f31021461082857806353813af81461083d578063547921a8146108b457806355161913146108c957806358657841146108d15780635ba98896146108e657806360cb613e146108fb5780636a3c6067146109135780636d89dd1a146109345780636eb09ce2146109495780636ee7578a1461096a57806370a082311461097f57806374547fec146109a05780637642249c146109b557806379931772146109ca5780637e00e381146109df578063827c2b24146109f45780638620410b14610a0957806387de581c14610a1e5780638da5cb5b14610a335780638f448a3814610a485780639097479514610a5d57806391d058da14610a72578063936f73c614610a8757806394dafb1614610aa857806395d89b4114610b105780639a24fb4814610b25578063a6f2ae3a14610b3a578063a755e41014610b42578063a9059cbb14610b57578063acec0e1d14610b7b578063afcf28cd14610bc0578063b1347e9d14610bd5578063b414d4b614610bea578063b868203314610c0b578063bd39519a14610c20578063bda4802614610c41578063cb92a2bc14610c80578063d12869dc14610c95578063d4e3293814610caa578063dcd62cf114610cce578063dd62ed3e14610ce3578063ddf0c07014610d0a578063e4849b3214610d98578063e4be47e714610db0578063e724529c14610dc5578063e736f03c14610deb578063e987cc4514610e00578063f2b3affe14610e21578063f3fef3a314610e36578063f43a72b014610e5a578063f8fe778f14610e74575b61038c610e89565b50005b34801561039b57600080fd5b506103a461107b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103de5781810151838201526020016103c6565b50505050905090810190601f16801561040b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042557600080fd5b5061043d600160a060020a0360043516602435611108565b604080519115158252519081900360200190f35b34801561045d57600080fd5b5061046661118c565b60408051600160a060020a039092168252519081900360200190f35b34801561048e57600080fd5b5061049761119b565b60408051918252519081900360200190f35b3480156104b557600080fd5b506104be6111a1565b005b3480156104cc57600080fd5b506104976117e7565b3480156104e157600080fd5b506104976117ed565b3480156104f657600080fd5b506104976117f3565b34801561050b57600080fd5b5061043d600160a060020a03600435811690602435166044356117fa565b34801561053557600080fd5b50610497611997565b34801561054a57600080fd5b50610497600160a060020a036004351661199d565b34801561056b57600080fd5b50610574611a3c565b6040805160ff9092168252519081900360200190f35b34801561059657600080fd5b5061043d600160a060020a0360043516602435611a45565b3480156105ba57600080fd5b50610497611aa3565b3480156105cf57600080fd5b50610497600160a060020a0360043516611aa9565b3480156105f057600080fd5b506104be600160a060020a0360043516602435611af1565b34801561061457600080fd5b50610497611c6a565b34801561062957600080fd5b50610632611c81565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b34801561068e57600080fd5b506104be60043560243560443560643560843560a43560c43560e4356101043561012435611d1a565b3480156106c357600080fd5b50610497611d8b565b3480156106d857600080fd5b50610497611d91565b3480156106ed57600080fd5b506106f6611d97565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561077057600080fd5b50604080516020600480358082013583810280860185019096528085526104be95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611de59650505050505050565b3480156107fe57600080fd5b50610466600160a060020a0360043516611f88565b34801561081f57600080fd5b50610497611fa3565b34801561083457600080fd5b50610497611fa9565b34801561084957600080fd5b5061085e600160a060020a0360043516611faf565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945260a088019290925260c087015260e086015261010085015261012084015261014083015251908190036101600190f35b3480156108c057600080fd5b506104976120bd565b61043d6120c3565b3480156108dd57600080fd5b506104976120c8565b3480156108f257600080fd5b506104976120ce565b34801561090757600080fd5b506104976004356120d4565b34801561091f57600080fd5b50610497600160a060020a03600435166120f3565b34801561094057600080fd5b50610497612105565b34801561095557600080fd5b50610497600160a060020a036004351661210b565b34801561097657600080fd5b50610497612118565b34801561098b57600080fd5b50610497600160a060020a036004351661211e565b3480156109ac57600080fd5b50610497612139565b3480156109c157600080fd5b506104be61213f565b3480156109d657600080fd5b506104976122a4565b3480156109eb57600080fd5b506104976122aa565b348015610a0057600080fd5b506104976122b0565b348015610a1557600080fd5b506104976122b6565b348015610a2a57600080fd5b506104976122bc565b348015610a3f57600080fd5b506104666122c2565b348015610a5457600080fd5b506104976122d1565b348015610a6957600080fd5b506104976122d7565b348015610a7e57600080fd5b506104976122dc565b348015610a9357600080fd5b50610497600160a060020a03600435166122e2565b348015610ab457600080fd5b50610ac9600160a060020a03600435166122f4565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b348015610b1c57600080fd5b506103a4612471565b348015610b3157600080fd5b506104976124cc565b610497610e89565b348015610b4e57600080fd5b506104976124d2565b348015610b6357600080fd5b5061043d600160a060020a03600435166024356124d8565b348015610b8757600080fd5b506104be60043560243560443560643560843560a43560c43560e43561010435610124356101443561016435610184356101a4356128a8565b348015610bcc57600080fd5b50610497612909565b348015610be157600080fd5b506104be61290f565b348015610bf657600080fd5b5061043d600160a060020a0360043516612b96565b348015610c1757600080fd5b50610497612bab565b348015610c2c57600080fd5b50610497600160a060020a0360043516612bb1565b348015610c4d57600080fd5b50610c62600160a060020a0360043516612bc3565b60408051938452602084019290925282820152519081900360600190f35b348015610c8c57600080fd5b50610497612be4565b348015610ca157600080fd5b50610497612bea565b348015610cb657600080fd5b506104be600160a060020a0360043516602435612bf0565b348015610cda57600080fd5b50610497612d5a565b348015610cef57600080fd5b50610497600160a060020a0360043581169060243516612d60565b348015610d1657600080fd5b50604080516020600480358082013583810280860185019096528085526104be95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750612d8b9650505050505050565b348015610da457600080fd5b5061043d600435612f2e565b348015610dbc57600080fd5b5061085e613169565b348015610dd157600080fd5b506104be600160a060020a036004351660243515156131f5565b348015610df757600080fd5b5061043d613270565b348015610e0c57600080fd5b50610466600160a060020a0360043516613279565b348015610e2d57600080fd5b50610497613297565b348015610e4257600080fd5b506104be600160a060020a036004351660243561329d565b348015610e6657600080fd5b506104be6004351515613343565b348015610e8057600080fd5b5061049761336d565b6012546000908190819060ff161515600114610ea457600080fd5b3360008181526028602052604090205490925060ff1615610ec457600080fd5b60003411610ed157600080fd5b600754670de0b6b3a76400009034023060009081526024602052604090205491900491508110610f0057600080fd5b600181118015610f11575060035481105b1515610f1c57600080fd5b600160a060020a038216600090815260246020526040902054610f45908263ffffffff61337316565b600160a060020a038316600090815260246020908152604080832093909355602590522054610f7a908263ffffffff61337316565b600160a060020a038316600090815260256020908152604080832093909355308252602490522054610fb2908263ffffffff61338316565b30600090815260246020526040902055600454610fd5908263ffffffff61338316565b600455601e54610feb908263ffffffff61337316565b601e55602054611001903463ffffffff61337316565b60205561100d82613398565b603054604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611046573d6000803e3d6000fd5b50604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a392915050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111005780601f106110d557610100808354040283529160200191611100565b820191906000526020600020905b8154815290600101906020018083116110e357829003601f168201915b505050505081565b3360009081526024602052604081205482111561112457600080fd5b336000818152602760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b602f54600160a060020a031681565b600a5481565b3360008181526028602052604081205481908190819081908190819060ff16156111ca57600080fd5b60125460ff1615156001146111de57600080fd5b600160a060020a0388166000908152602a602052604090205460011061120357600080fd5b600160a060020a0388166000908152602a6020526040902054421161122757600080fd5b600160a060020a0388166000908152602560205260409020546001101561126d57600a54600160a060020a0389166000908152602560205260409020546103e891020495505b600b54600160a060020a038916600090815260266020526040902054108015906112af5750600160a060020a0388166000908152602b60205260409020546001105b1561130957600c54600160a060020a038916600090815260266020526040902054600e546103e89282029290920496501061130957600f54600160a060020a0389166000908152602660205260409020546103e891020494505b611319868663ffffffff61337316565b30600090815260246020526040902054909750871061133757600080fd5b600554871061134557600080fd5b600160a060020a03881660009081526024602052604090205461136e908863ffffffff61337316565b600160a060020a0389166000908152602460205260408082209290925530815220546113a0908863ffffffff61338316565b306000908152602460205260409020556005546113c3908863ffffffff61338316565b6005556004546113d9908863ffffffff61337316565b600455601354600160a060020a0389166000908152602a602052604081204290920190915586111561143457604080518781529051600160a060020a038a169130916000805160206137208339815191529181900360200190a35b600085111561159c57604080518681529051600160a060020a038a169130916000805160206137208339815191529181900360200190a3600160a060020a0388166000908152602b60205260409020805460001901908190556002111561159c57600160a060020a0388166000908152602660209081526040808320546024909252909120546114c99163ffffffff61337316565b600160a060020a03891660009081526024602090815260408083209390935560268152828220546025909152919020546115089163ffffffff61337316565b600160a060020a038916600090815260256020908152604080832093909355602690522054601c5461153f9163ffffffff61338316565b601c55600160a060020a0388166000818152602660209081526040918290205482519081529151309260008051602061372083398151915292908290030190a3600160a060020a0388166000908152602660205260409020600190555b600160a060020a0380891660009081526029602052604090205416935083158015906115da575087600160a060020a031684600160a060020a031614155b156117dd576014546064908802600160a060020a0386166000908152602460205260409020549190049350611615908463ffffffff61337316565b600160a060020a038516600090815260246020526040808220929092553081522054611647908463ffffffff61338316565b3060009081526024602052604090205560055461166a908463ffffffff61338316565b600555600454611680908463ffffffff61337316565b600455604080518481529051600160a060020a0386169130916000805160206137208339815191529181900360200190a36116bb84846133dd565b50600160a060020a0380851660009081526029602052604090205416915081158015906116fa575087600160a060020a031682600160a060020a031614155b156117dd576015546064908802600160a060020a0384166000908152602460205260409020549190049150611735908263ffffffff61337316565b600160a060020a038316600090815260246020526040808220929092553081522054611767908263ffffffff61338316565b3060009081526024602052604090205560055461178a908263ffffffff61338316565b6005556004546117a0908263ffffffff61337316565b600455604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a36117db82826133dd565b505b5050505050505050565b600d5481565b60135481565b6003545b90565b60125460009060ff16151560011461181157600080fd5b600160a060020a03841660009081526028602052604090205460ff161561183757600080fd5b600160a060020a03831660009081526028602052604090205460ff161561185d57600080fd5b600160a060020a03841660009081526024602052604090205482111561188257600080fd5b600182118015611893575060035482105b151561189e57600080fd5b600160a060020a0384166000908152602460205260409020546118c7908363ffffffff61338316565b600160a060020a0385166000908152602460209081526040808320939093556027815282822033835290522054611904908363ffffffff61338316565b600160a060020a038086166000908152602760209081526040808320338452825280832094909455918616815260249091522054611948908363ffffffff61337316565b600160a060020a03808516600081815260246020908152604091829020949094558051868152905191939288169260008051602061372083398151915292918290030190a35060019392505050565b60095481565b602f54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915160009392909216916370a082319160248082019260209290919082900301818787803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b505050506040513d6020811015611a3257600080fd5b505190505b919050565b60025460ff1681565b600160a060020a03821660009081526028602052604081205460ff1615611a6b57600080fd5b33600090815260246020526040902054821115611a8757600080fd5b600182118015611a98575060035482105b151561112457600080fd5b601f5481565b600160a060020a0381166000908152602a602052604081205460021115611ad257506000611a37565b50600160a060020a0381166000908152602a6020526040902054611a37565b603054600160a060020a03163314611b0857600080fd5b600160a060020a03821660009081526028602052604090205460ff1615611b2e57600080fd5b60125460ff161515600114611b4257600080fd5b306000908152602460205260409020548110611b5d57600080fd5b600160a060020a038216600090815260246020526040902054611b86908263ffffffff61337316565b600160a060020a038316600090815260246020908152604080832093909355602590522054611bbb908263ffffffff61337316565b600160a060020a038316600090815260256020908152604080832093909355308252602490522054611bf3908263ffffffff61338316565b30600090815260246020526040902055600454611c16908263ffffffff61338316565b600455601d54611c2c908263ffffffff61337316565b601d55611c3882613398565b604080518281529051600160a060020a0384169130916000805160206137208339815191529181900360200190a35050565b6000601b5442811515611c7957fe5b064203905090565b601454601554601654601754600854600954602c805460009182918291829182908110611caa57fe5b90600052602060002001549350602c6001815481101515611cc757fe5b90600052602060002001549250602c6002815481101515611ce457fe5b90600052602060002001549150602c6003815481101515611d0157fe5b9060005260206000200154905090919293949596979899565b603054600160a060020a03163314611d3157600080fd5b60148a905560158990556016889055601787905560088690556009859055604080516080810182528581526020810185905290810183905260608101829052611d7e90602c9060046136ba565b5050505050505050505050565b601c5481565b60155481565b601354600754600654600a54600b54600c54600e54600f54600d54601054601154601a546018546019549c9d9b9c9a9b999a9899979896979596600019958601969490950194929391929091565b6030546000908190600160a060020a03163314611e0157600080fd5b5060009050805b8351811015611f3c57611e6d8382815181101515611e2257fe5b90602001906020020151602460008785815181101515611e3e57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61338316565b602460008684815181101515611e7f57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251611ecb90849083908110611eb457fe5b60209081029091010151839063ffffffff61337316565b915030600160a060020a03168482815181101515611ee557fe5b90602001906020020151600160a060020a03166000805160206137208339815191528584815181101515611f1557fe5b906020019060200201516040518082815260200191505060405180910390a3600101611e08565b30600090815260246020526040902054611f5c908363ffffffff61337316565b30600090815260246020526040902055600454611f7f908363ffffffff61337316565b60045550505050565b602960205260009081526040902054600160a060020a031681565b60065481565b60205481565b600160a060020a03811660009081526024602052604081205490808080808080808080611fdb8c61199d565b99508b600160a060020a0316319850602560008d600160a060020a0316600160a060020a03168152602001908152602001600020549750602660008d600160a060020a0316600160a060020a03168152602001908152602001600020549650602a60008d600160a060020a0316600160a060020a031681526020019081526020016000205495506007549450600654935060085492506024600030600160a060020a0316600160a060020a031681526020019081526020016000205491506120ac878c61337390919063ffffffff16565b905091939597999b90929496989a50565b60195481565b600190565b60185481565b60215481565b602c8054829081106120e257fe5b600091825260209091200154905081565b602d6020526000908152604090205481565b600f5481565b600160a060020a03163190565b60175481565b600160a060020a031660009081526024602052604090205490565b60085481565b3360008181526024602090815260408083205460289092529091205460ff161561216857600080fd5b60125460ff16151560011461217c57600080fd5b600b5481101561218b57600080fd5b600160a060020a0382166000908152602660205260409020546121b4908263ffffffff61337316565b600160a060020a038316600090815260266020526040902055601c546121e0908263ffffffff61337316565b601c55600160a060020a03821660009081526024602090815260408083206001908190556025835281842055600e546026909252909120541061223e57601054600160a060020a0383166000908152602b602052604090205561225b565b600d54600160a060020a0383166000908152602b60205260409020555b601354600160a060020a0383166000818152602a602090815260409182902042909401909355805184815290513093600080516020613720833981519152928290030190a35050565b60115481565b601b5481565b600b5481565b60075481565b600c5481565b603054600160a060020a031681565b60145481565b303190565b60225481565b602a6020526000908152604090205481565b600160a060020a0381166000908152602e602090815260408083208054600190910154602d90935290832054909280808080806123308a611aa9565b955060055494506004549350601c549250602c600281548110151561235157fe5b6000918252602080832090910154600160a060020a038d168352602e9091526040909120600101541180156123b75750602c8054600390811061239057fe5b6000918252602080832090910154600160a060020a038d168352602e909152604090912054115b156123c157600191505b602c805460009081106123d057fe5b6000918252602080832090910154600160a060020a038d168352602e9091526040909120600101541180156124365750602c8054600190811061240f57fe5b6000918252602080832090910154600160a060020a038d168352602e909152604090912054115b1561244057600291505b306000908152602460205260409020546003546124629163ffffffff61338316565b90509193959799909294969850565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111005780601f106110d557610100808354040283529160200191611100565b601a5481565b600e5481565b3360008181526028602052604081205490919082908190819060ff16156124fe57600080fd5b600160a060020a03871660009081526028602052604090205460ff161561252457600080fd5b600186118015612535575060035486105b151561254057600080fd5b60125460ff16151560011461255457600080fd5b6011546064908702600160a060020a0386166000908152602460205260409020549190049350868401925082111561258b57600080fd5b600160a060020a038416600090815260246020526040902054831080156125b25750600083115b15156125bd57600080fd5b600160a060020a03871615156125d257600080fd5b600160a060020a0384811690881614156125eb57600080fd5b50600160a060020a038087166000818152602460209081526040808320548886168452818420549484526029909252909120549185900301911615801561264f5750600160a060020a03848116600090815260296020526040902054811690881614155b156126e257600160a060020a038781166000908152602960208181526040808420805473ffffffffffffffffffffffffffffffffffffffff19168a87169081179091558452602e82528084208054600101905591905290205416156126e257600160a060020a038085166000908152602960209081526040808320549093168252602e9052206001908101805490910190555b600160a060020a03841660009081526024602052604090205461270b908363ffffffff61338316565b600160a060020a038516600090815260246020818152604080842085905560258252909220549152111561275f57600160a060020a0384166000908152602460209081526040808320546025909252909120555b3060009081526024602052604090205461277f908463ffffffff61337316565b3060009081526024602052604080822092909255600160a060020a038916815220546127b1908763ffffffff61337316565b600160a060020a0388166000908152602460209081526040808320939093556025905220546127e6908763ffffffff61337316565b600160a060020a03881660009081526025602052604090205561280887613398565b6040805184815290513091600160a060020a038716916000805160206137208339815191529181900360200190a386600160a060020a031684600160a060020a0316600080516020613720833981519152886040518082815260200191505060405180910390a3600160a060020a0380881660009081526024602052604080822054928716825290205401811461289b57fe5b5060019695505050505050565b603054600160a060020a031633146128bf57600080fd5b60139d909d5560079b909b55600699909955600a97909755600e93909355600f91909155600b93909355600c919091556001918201600d5501601055601155601a55601855601955565b60165481565b33600081815260286020526040812054819060ff161561292e57600080fd5b60125460ff16151560011461294257600080fd5b600160a060020a0383166000908152602b602052604090205460011061296757600080fd5b600b54600160a060020a038416600090815260266020526040902054101561298e57600080fd5b601854600160a060020a038416600090815260266020526040902054600e546064928202929092049350106129e157601954600160a060020a038416600090815260266020526040902054606491020491505b600160a060020a038316600090815260266020526040902054612a0a908363ffffffff61338316565b30600090815260246020526040902054909150612a2d908263ffffffff61337316565b3060008181526024602090815260409182902093909355805184815290519192600160a060020a038716926000805160206137208339815191529281900390910190a3600160a060020a038316600090815260266020526040902054601c541415612aaa57601c54612aa690600163ffffffff61337316565b601c555b600160a060020a038316600090815260266020526040902054601c54612ad59163ffffffff61338316565b601c55600160a060020a0383166000908152602660209081526040808320600190819055602b8352818420556024909152902054612b19908363ffffffff61337316565b600160a060020a038416600090815260246020908152604080832093909355602590522054612b4e908363ffffffff61337316565b600160a060020a0384166000818152602560209081526040918290209390935580518581529051919230926000805160206137208339815191529281900390910190a3505050565b60286020526000908152604090205460ff1681565b601e5481565b602b6020526000908152604090205481565b602e6020526000908152604090208054600182015460029092015490919083565b60105481565b60055481565b603054600160a060020a03163314612c0757600080fd5b600160a060020a03821660009081526028602052604090205460ff1615612c2d57600080fd5b60125460ff161515600114612c4157600080fd5b600160a060020a0382166000908152602460205260409020548110612c6557600080fd5b600160a060020a038216600090815260246020526040902054612c8e908263ffffffff61338316565b600160a060020a0383166000908152602460208181526040808420859055602582529092205491521115612ce257600160a060020a0382166000908152602460209081526040808320546025909252909120555b30600090815260246020526040902054612d02908263ffffffff61337316565b30600090815260246020526040902055600454612d25908263ffffffff61337316565b6004556040805182815290513091600160a060020a038516916000805160206137208339815191529181900360200190a35050565b60045481565b600160a060020a03918216600090815260276020908152604080832093909416825291909152205490565b6030546000908190600160a060020a03163314612da757600080fd5b5060009050805b8351811015612eeb57612e138382815181101515612dc857fe5b90602001906020020151602460008785815181101515612de457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61337316565b602460008684815181101515612e2557fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251612e5a90849083908110611eb457fe5b9150612e7c8482815181101515612e6d57fe5b90602001906020020151613690565b8381815181101515612e8a57fe5b90602001906020020151600160a060020a031630600160a060020a03166000805160206137208339815191528584815181101515612ec457fe5b906020019060200201516040518082815260200191505060405180910390a3600101612dae565b30600090815260246020526040902054612f0b908363ffffffff61338316565b30600090815260246020526040902055600454611f7f908363ffffffff61338316565b60125460009081908190819060ff161515600114612f4b57600080fd5b3360008181526028602052604090205490935060ff1615612f6b57600080fd5b6003548510612f7957600080fd5b60018511612f8657600080fd5b600160a060020a038316600090815260246020526040902054851115612fab57600080fd5b600654601a548602662386f26fc1000002811515612fc557fe5b04915030318210612fd557600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f1935050505015801561300b573d6000803e3d6000fd5b50503060009081526024602052604080822054600160a060020a038516835291205490810190613041908663ffffffff61338316565b600160a060020a038416600090815260246020818152604080842085905560258252909220549152111561309557600160a060020a0383166000908152602460209081526040808320546025909252909120555b306000908152602460205260409020546130b5908663ffffffff61337316565b306000908152602460205260409020556004546130d8908663ffffffff61337316565b600455601f546130ee908663ffffffff61337316565b601f55602154613104908363ffffffff61337316565b6021556040805186815290513091600160a060020a038616916000805160206137208339815191529181900360200190a33060009081526024602052604080822054600160a060020a038616835291205401811461315e57fe5b506001949350505050565b60008060008060008060008060008060006131b46024600030600160a060020a0316600160a060020a031681526020019081526020016000205460035461338390919063ffffffff16565b9a5060055499506004549850601c549750601d549650601e549550601f5494506022549350602354925060205491506021549050909192939495969798999a565b603054600160a060020a0316331461320c57600080fd5b600160a060020a038216600081815260286020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b60125460ff1681565b600160a060020a039081166000908152602960205260409020541690565b60235481565b603054600160a060020a031633146132b457600080fd5b60125460ff1615156001146132c857600080fd5b600160a060020a03821660009081526028602052604090205460ff16156132ee57600080fd5b303181106132fb57600080fd5b6000811161330857600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015801561333e573d6000803e3d6000fd5b505050565b603054600160a060020a0316331461335a57600080fd5b6012805460ff1916911515919091179055565b601d5481565b8181018281101561118657600080fd5b60008282111561339257600080fd5b50900390565b600160a060020a0381166000908152602a60205260409020544211156133da57601354600160a060020a0382166000908152602a602052604090204290910190555b50565b6000806000602c60028154811015156133f257fe5b6000918252602080832090910154600160a060020a0388168352602e9091526040909120600101541080159061345a5750602c8054600390811061343257fe5b6000918252602080832090910154600160a060020a0388168352602e90915260409091205410155b1561368857600160a060020a0385166000908152602d6020526040902054613488908563ffffffff61337316565b600160a060020a0386166000908152602d60205260408120829055600b54601654602c805492965060649190940204935081106134c157fe5b6000918252602080832090910154600160a060020a0388168352602e909152604090912060010154108015906135295750602c8054600190811061350157fe5b6000918252602080832090910154600160a060020a0388168352602e90915260409091205410155b15613555575050600e54601754600160a060020a0385166000908152602d602052604090205460649102045b600160a060020a0385166000908152602d6020526040902054821161368357600160a060020a0385166000908152602e60205260409020600201546135a0908263ffffffff61337316565b600160a060020a0386166000908152602e60209081526040808320600201939093556024905220546135d8908263ffffffff61337316565b600160a060020a038616600090815260246020818152604080842094909455602d815283832060019055308352522054613618908263ffffffff61338316565b3060009081526024602052604090205560055461363b908263ffffffff61338316565b600555600454613651908263ffffffff61337316565b600455604080518281529051600160a060020a0387169130916000805160206137208339815191529181900360200190a35b600192505b505092915050565b600160a060020a038116600090815260246020526040902054600211156133da576133da81613398565b8280548282559060005260206000209081019282156136f5579160200282015b828111156136f55782518255916020019190600101906136da565b50613701929150613705565b5090565b6117f791905b80821115613701576000815560010161370b5600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204f75009fbb40ecada2309bb4accd39dc2a679d7a000af7783b2a42282436ae650029

Swarm Source

bzzr://4f75009fbb40ecada2309bb4accd39dc2a679d7a000af7783b2a42282436ae65
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.