Amoy Testnet

Token

DWC (DWC)
ERC-20

Overview

Max Total Supply

32,500,000 DWC

Holders

9

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
50.835535812855800603 DWC
0x53888f004f49e78a41ace9261104956fe8c1199a
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
DWCChina

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at amoy.polygonscan.com on 2024-12-11
*/

// SPDX-License-Identifier: UNLISCENSED
pragma solidity ^0.6.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract DWCChina  {
    IERC20 public dai;
    string public name = "DWC";
    string public symbol = "DWC";
    uint256 public totalSupply =32500000*10**18; // 325 lakh tokens
    uint8 public decimals = 18;
    struct User {
        uint id;        
        address referrer;
        uint partnersCount;        
        uint256 teamCount;    
        address[] directIds;    
        uint256 totalDeposit;  
        uint256 lastDeposit;
        uint256 directBusiness; 
        uint256 reward;
        uint256 levelincome;
        uint256 roraltyincome;
        uint256 maturityincome;
        uint256 totalreward;
        uint256 totalwithdraw;     
         
    }
    struct OrderInfo {
        uint256 amount; 
        uint256 holdingbonus;
        uint256 deposit_time;
        uint256 freeze_time;
        uint256 reward_time;
        bool ishelp;
        bool isactive;
        bool isdai;
        uint256 dayRewardPercents;
        uint256 withdraw_time;
        uint withno;
    }
    struct Rank
    {
        uint id;
        uint activedirect;
        uint activeteam;
    }
    struct UserRank
    {
        uint rank;
    }
    struct UserCapping
    {
        uint256 totalCapping;
        uint256 useCapping;
    }
    mapping(address => User) public users;
    mapping(address => UserRank) public userranks;
    mapping(address => UserCapping) public userscapping;
    mapping(address => OrderInfo[]) public orderInfos;
    mapping(uint=>Rank) public map_ranks;
    uint256 private constant minDeposit = 50e18;
    uint256 private constant  maxDeposit=5000e18;
    uint256 public liquidityPool_tokenAmount;
    uint256 public liquidityPool_daiAmount;
    uint256 public _burnToken;
    address public id1=0x9Ed2CFa3ebdE315FdbfC60859f093E07a52d131f;
    address public communityHoldingFund=0x3BB195603e1ec562CfE406047b2718B4226cfa2A;
    address public dwctokenPool=0x5427F55e590f70bE2967A891EA119e66c20262fF;    
    address public liquidityPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc;
    address public extraPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc;
    address public creater;
    address[5] public feewallet=[0x53888f004F49e78a41acE9261104956fE8c1199a,0x91D1eBdEBa71A59661C914C849F9dF45C812CFAf,0xfecc9357583a2F0b8Dc62335447e62f5A882477A];
    uint256[5] private feePercents = [300,50,50,50,50];
    uint public lastUserId = 2;
    uint256 private constant referDepth = 21;
    uint256 private constant interval=5*60;
    uint256 private constant timeStepdaily=interval;
    uint256 private timeLiquidityLock;
    uint256 private dayRewardPercents = 1;
    uint256[21] private levelPercents = [500,200,100,50,25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20];
    uint256[21] private levelwPercents = [1000,100,100,100,100,100,100,100,100,100,100,50,50,50,50,50,50,50,50,50,50];
    uint256[21] private levelRank = [0,1,1,2,2,3,3,3,4,4,5,5,5,5,5,6,6,6,6,6,6];
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner,address indexed _spender,uint256 _value);

    event Deposit(address indexed addr, uint256 amount, uint256 token);
    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);   
    event Transaction(address indexed user,address indexed from,uint256 value, uint8 level,uint8 Type);
    event Withdraw(address indexed user,uint256 value);
    event Swap(address indexed user,uint256 token,uint256 value);
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;    
     
    constructor(address _daiAddr) public {
        creater=msg.sender;
        dai = IERC20(_daiAddr);   
        balanceOf[dwctokenPool] =100000*10**18;
        balanceOf[communityHoldingFund] =31890000*10**18;
        balanceOf[liquidityPool] =10000*10**18;
        balanceOf[extraPool] =500000*10**18;
        emit Transfer(address(0), dwctokenPool, 100000*10**18);
        emit Transfer(address(0), communityHoldingFund, 31890000*10**18);
        emit Transfer(address(0), liquidityPool, 10000*10**18);
        emit Transfer(address(0), extraPool, 500000*10**18);
        User memory user = User({
            id: 1,            
            referrer: address(0),
            partnersCount: 0,
            teamCount: 0,
            directIds:new address[](0),
            directBusiness:0,
            totalDeposit:500e18,
            lastDeposit:500e18,
            reward:0,
            levelincome:0,
            roraltyincome:0,
            maturityincome:0,
            totalreward:0,
            totalwithdraw:0
            
        }); 
        users[id1] = user;
        userranks[id1].rank = 6;
        userscapping[id1].totalCapping =500e18; 
        orderInfos[id1].push(OrderInfo(
            500e18, 
            0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,true,100,block.timestamp+20*interval,3
        ));
        map_ranks[1] = Rank({id:1,activedirect:2,activeteam:0}); 
        map_ranks[2] = Rank({id:2,activedirect:1,activeteam:5}); 
        map_ranks[3] = Rank({id:3,activedirect:2,activeteam:10}); 
        map_ranks[4] = Rank({id:4,activedirect:3,activeteam:13}); 
        map_ranks[5] = Rank({id:5,activedirect:4,activeteam:15}); 
        map_ranks[6] = Rank({id:6,activedirect:5,activeteam:18});
        liquidityPool_tokenAmount=10000e18;
        liquidityPool_daiAmount=10000e18;
        timeLiquidityLock=block.timestamp;
    } 
    function register(address referrerAddress) external  {        
        registration(msg.sender, referrerAddress);
    }
    function registration(address userAddress, address referrerAddress) private {
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
        User memory user = User({
            id: lastUserId,            
            referrer: referrerAddress,
            partnersCount: 0,
            teamCount: 0,
            directIds:new address[](0),
            directBusiness:0,
            totalDeposit:0,
            lastDeposit:0,
            reward:0,
            levelincome:0,
            roraltyincome:0,
            maturityincome:0,
            totalreward:0,
            totalwithdraw:0
        });        
        users[userAddress] = user;
        users[userAddress].referrer = referrerAddress;
        lastUserId++;        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    function deposit(uint256 _amount) external {
        dai.transferFrom(msg.sender,address(this),_amount);
        _amount=_amount*2;
        require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min");
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender);  
        _deposit(msg.sender,_amount);
    }
    function depositdwc(uint256 _amount) external {
        uint256 _token=_daiToTokens(_amount);
        _transfer(msg.sender,communityHoldingFund,_token);
        _amount=_amount*2;
        require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min");
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender);  
        _depositdwc(msg.sender,_amount);
    }
    function deposit2(uint rewardindex) external {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        inactivedHolding(msg.sender); 
        bool _flag=false; 
        OrderInfo storage order = orderInfos[msg.sender][rewardindex];		 
		if(!order.ishelp)
        {
			if(block.timestamp>=order.freeze_time && block.timestamp<order.freeze_time+2*interval) { 
                _flag=true;
		    }
			else {
                _flag=false;
            }
            dai.transferFrom(msg.sender, address(this), order.amount/2);
            orderInfos[msg.sender][rewardindex].ishelp=true;
            uint256 _token=_daiToTokens(order.amount/2);
            liquidityPool_daiAmount+=order.amount/2;
            if(balanceOf[dwctokenPool]>=_token) {
                liquidityPool_tokenAmount+=_token*90/100;        
                _transfer(dwctokenPool,communityHoldingFund, _token*10/100); 
                _transfer(dwctokenPool,liquidityPool, _token*90/100);
            }
            else {
                liquidityPool_tokenAmount-=_token;  
                _transfer(liquidityPool,communityHoldingFund, _token);
            }
            if(!_flag){
                order.reward_time=block.timestamp;
                order.withdraw_time=block.timestamp+20*interval;
                order.isactive=true;
            }
		}
    }
   
    function _deposit(address userAddress,uint256 _amount) private {        
        
        address referrerAddress= users[userAddress].referrer;
        users[referrerAddress].directBusiness+=_amount;        
        if(users[userAddress].totalDeposit==0)        
        {
            users[referrerAddress].partnersCount++;
            users[referrerAddress].directIds.push(userAddress);            
            _updateTeamNum(msg.sender,1);
        }  
        else {
            _updateTeamNum(msg.sender,0);
        }
        users[userAddress].totalDeposit +=_amount; 
        userscapping[userAddress].totalCapping +=_amount;
        uint256 _rate=coinRate();
        uint256 _token=_daiToTokens(_amount/2);
        liquidityPool_daiAmount+=_amount/2;
        if(balanceOf[dwctokenPool]>=_token) {
            liquidityPool_tokenAmount+=_token*90/100;        
            _transfer(dwctokenPool,communityHoldingFund, _token*10/100); 
            _transfer(dwctokenPool,liquidityPool, _token*90/100);
        }
        else {
            liquidityPool_tokenAmount-=_token;  
            _transfer(liquidityPool,communityHoldingFund, _token);
        }
        users[userAddress].lastDeposit=_amount;
        orderInfos[userAddress].push(OrderInfo(
            _amount, 0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,
            true,100,block.timestamp+20*interval,3
        ));
        for(uint i=0;i<5;i++)
        {
            _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); 
        }
        _distributelevelreward(userAddress,_amount,_rate); 
        _distributeroyaltyreward(userAddress,_amount,_rate);        
        emit Deposit(userAddress,_amount,_token*2);
        
    }
    function _depositdwc(address userAddress,uint256 _amount) private {        
        
        address referrerAddress= users[userAddress].referrer;
        users[referrerAddress].directBusiness+=_amount;        
        if(users[userAddress].totalDeposit==0)        
        {
            users[referrerAddress].partnersCount++;
            users[referrerAddress].directIds.push(userAddress);
            _updateTeamNum(msg.sender,1);
        }  
        else {
            _updateTeamNum(msg.sender,0);
        }
        users[userAddress].totalDeposit +=_amount; 
        userscapping[userAddress].totalCapping +=_amount;  
        uint256 _rate=coinRate();        
        uint256 _token=_daiToTokens(_amount/2);

        users[userAddress].lastDeposit=_amount;
        orderInfos[userAddress].push(OrderInfo(
            _amount, 0,
            block.timestamp, 
            block.timestamp+15*interval, 
            block.timestamp,
            false,
            true,
            false,100,block.timestamp+20*interval,3
        ));
        for(uint i=0;i<5;i++)
        {
            _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); 
        } 
        _distributelevelreward(userAddress,_amount,_rate); 
        _distributeroyaltyreward(userAddress,_amount,_rate);        
        emit Deposit(userAddress,_amount,_token*2);
        
    }
    function _distributelevelreward(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        for(uint8 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(userranks[upline].rank>=levelRank[i])
                {
                    if(users[upline].totalDeposit>0)
                    {                        
                        uint256 reward=_amount*levelPercents[i]/10000;                        
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].levelincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),2); 
                        }
                    }
                }
                upline = users[upline].referrer;                
            }else{
                break;
            }
        }
    }
    function _distributeroyaltyreward(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        uint levelranks=0;
        uint isbreak=0;
        uint256 differentincome=0;
        uint256 secondlevelincome=0;
        for(uint8 i = 0; i < 50; i++){            
            if(upline != address(0)){
                if(userranks[upline].rank==5 || userranks[upline].rank==6) {
                    if(levelranks==0)
                    {
                        if(userranks[upline].rank==6) {                   
                            differentincome=2;
                            secondlevelincome=1;
                            levelranks=5;
                        }
                        else {
                            differentincome=1;
                            secondlevelincome=2;
                            levelranks=6;
                        }
                    }
                    else {
                        if(userranks[upline].rank==levelranks) {                   
                            differentincome=secondlevelincome;
                            isbreak=1;                        
                        }
                    }
                    if(differentincome>0){
                        uint256 reward=_amount*differentincome/100;  
                        differentincome=0;                      
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].roraltyincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),3); 
                        }
                        if(isbreak==1 || upline == id1) break;
                    }
                }
                upline = users[upline].referrer;    
                        
            }else{
                break;
            }
        }
    }
    function _distributelevelwithdraw(address _user, uint256 _amount,uint256 _rate) private {
        address upline = users[_user].referrer;
        for(uint8 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(userranks[upline].rank>=levelRank[i])
                {
                    if(users[upline].totalDeposit>0)
                    {                        
                        uint256 reward=_amount*levelwPercents[i]/10000;                        
                        uint256 _remainingCapping=this.maxPayoutOf(upline);  
                        if(_remainingCapping>0)
                        {
                            if(_remainingCapping<reward){
                                reward=_remainingCapping;                        
                            }
                            users[upline].maturityincome +=reward;                       
                            users[upline].totalreward +=reward; 
                            userscapping[upline].useCapping +=reward;
                            _transfer(communityHoldingFund,upline,reward*1e18/_rate);
                            emit Transaction(upline,_user,reward,(i+1),4); 
                        }
                    }
                }
                upline = users[upline].referrer;                
            }else{
                break;
            }
        }
    }
    function _calLevelNow(address _user) private {        
        uint256 totaldirect  = users[_user].partnersCount;
        uint256 directBusiness  = users[_user].directBusiness;
        uint currentRank = userranks[_user].rank;
        if(currentRank>=1 && currentRank<6){            
            uint nextRank = currentRank+1;
            (, uint256 otherTeam) = getTeamCount(_user);
            uint activedirect=getActiveCount(_user,1);
            if(activedirect>=map_ranks[nextRank].activedirect && otherTeam>=map_ranks[nextRank].activeteam){
                userranks[_user].rank = nextRank;
            }
            
        }else if(totaldirect>=5 && directBusiness>=1000e18 && currentRank==0){
            userranks[_user].rank=1;
        }
    }
    function getTeamCount(address _user) public view returns(uint256, uint256){        
        uint256 maxTeam;
        uint256 otherTeam;
        uint256 totalTeam;
        for(uint256 i = 0; i < users[_user].directIds.length; i++){
            uint256 userTotalTeam =users[users[_user].directIds[i]].teamCount+1;            
            totalTeam+=userTotalTeam;
            if(userTotalTeam > maxTeam){
                maxTeam = userTotalTeam;
            }
        }
        otherTeam = totalTeam-maxTeam;
        return(maxTeam, otherTeam);
    }
    function getActiveCount(address _user,uint _rank) public view returns(uint256){        
        uint256 activedirect=0;
        for(uint256 i = 0; i < users[_user].directIds.length; i++){
            if(userranks[users[_user].directIds[i]].rank >= _rank){
                activedirect += 1;
            }
        }
        return activedirect;
    }
    function _updateTeamNum(address _user,uint isnew) private {
        address upline = users[_user].referrer;
        for(uint256 i = 0; i < referDepth; i++){
            if(upline != address(0)){
                if(isnew==1)
                    users[upline].teamCount = users[upline].teamCount+1;
                _calLevelNow(upline);
                if(upline == id1) break;
                upline = users[upline].referrer;
            }else{
                break;
            }
        }
    }
	
    function _daiToTokens(uint256 _daiamount) public view returns(uint256)
    {
        return _daiamount*1e18/coinRate();      
    }
    function _tokensTodai(uint _tokenAmount) public view returns(uint)
    {
        return _tokenAmount*coinRate()/1e18;
    }
    
    function coinRate() public view returns(uint)
    {
        return liquidityPool_daiAmount*1e18/liquidityPool_tokenAmount;
    }
    function maxPayoutOf(address _user) external returns(uint256) {    
        inactivedHolding(_user);    
        if(userranks[_user].rank==0 || userranks[_user].rank==1)
            return (userscapping[_user].totalCapping*2-userscapping[_user].useCapping);
        else if(userranks[_user].rank==2 || userranks[_user].rank==3)
            return (userscapping[_user].totalCapping*3-userscapping[_user].useCapping);
        else if(userranks[_user].rank==4 || userranks[_user].rank==5)
            return (userscapping[_user].totalCapping*4-userscapping[_user].useCapping);
        else 
            return (userscapping[_user].totalCapping*5-userscapping[_user].useCapping);
    }
    function inactivedHolding(address _user) public {
        for(uint256 i = 0; i < orderInfos[_user].length; i++){
    	    OrderInfo storage order = orderInfos[_user][i];
            if(!order.ishelp && order.isactive)
            {
    	    	if(block.timestamp>order.freeze_time+2*interval)
    	        {
    	    	    order.isactive=false;
                }  
    	    }
        }   
    }     
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }    
    function getOrderLength(address _user) external view returns(uint256) {
        return orderInfos[_user].length;
    }  
    function dailyPayoutOf(address _user,uint rewardindex) private returns(uint256) {
        
		uint256 reward=0;
        OrderInfo storage order = orderInfos[_user][rewardindex];
        uint256 _remainingCapping = this.maxPayoutOf(_user);             
        if(_remainingCapping>0)
        {
            uint period=(order.withdraw_time - order.reward_time) / timeStepdaily;
            if(period>200)
            period=200;
            uint256 dailypayout =(order.amount*order.dayRewardPercents*period / 10000)-order.holdingbonus; 
            if(_remainingCapping<dailypayout){
                dailypayout = _remainingCapping;                            
            }
            if(dailypayout>0)
            { 
                reward=dailypayout;
            }                    
        }
        else {
            order.isactive=true;
        }
		return (reward);
    }
    function rewardWithdraw(uint rewardindex) public
    {
		OrderInfo storage order = orderInfos[msg.sender][rewardindex];
		if(order.isactive && order.ishelp && order.withdraw_time<block.timestamp){
            (uint256 dailypayout)=dailyPayoutOf(msg.sender,rewardindex); 
            uint256 _rate=coinRate();
		    users[msg.sender].reward +=dailypayout;
		    users[msg.sender].totalreward +=dailypayout;
            userscapping[msg.sender].useCapping +=dailypayout;
            emit Transaction(msg.sender,msg.sender,dailypayout,1,1); 
            //order.reward_time+=order.withdraw_time; 
			order.withdraw_time+=(order.withno)*10*interval;    
            order.withno+=1;
            order.holdingbonus+=dailypayout;              
            users[msg.sender].totalwithdraw+=dailypayout;
            _transfer(communityHoldingFund,msg.sender,dailypayout*1e18/_rate);
            _distributelevelreward(msg.sender,dailypayout,_rate);
            
            emit Withdraw(msg.sender,dailypayout);
		}
    }
    function tokenSwap(uint256 _tokenAmount) public
    {
        require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied");
        uint256 _dai;
		require(balanceOf[msg.sender]>=_tokenAmount, "Insufficient token balance!"); 
        uint256 deduction=_tokenAmount*2/100;
        if((_burnToken+deduction)>10000000e18){
            deduction=10000000e18-_burnToken;
        }
        if(deduction>0){      
            uint256 tokenAmount=_tokenAmount-deduction; 
            _dai=_tokensTodai(tokenAmount);
            liquidityPool_tokenAmount+=tokenAmount;
            liquidityPool_daiAmount-=_dai;
            _dai=_tokensTodai(tokenAmount);
            _transfer(msg.sender,liquidityPool,tokenAmount);
            dai.transfer(msg.sender, _dai); 
            _burnToken+=deduction;
            _burn(msg.sender,deduction);
            emit Transfer(msg.sender,address(0), deduction);
        }
        else {
            _dai=_tokensTodai(_tokenAmount);
            liquidityPool_tokenAmount+=_tokenAmount;
            liquidityPool_daiAmount-=_dai;
            _dai=_tokensTodai(_tokenAmount);
            _transfer(msg.sender,liquidityPool,_tokenAmount);
            dai.transfer(msg.sender, _dai);            
        }
        emit Swap(msg.sender,_tokenAmount,_dai);
    }
    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied");
        _transfer(msg.sender,_to,_value);
        return true;
    }
    function _transfer(address _from,address _to, uint256 _value) internal {
        require(balanceOf[_from] >= _value);
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        emit Transfer(_from, _to, _value);
    }
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }    
    function transferFrom(address _from,address _to,uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);
        _transfer(msg.sender,_to,_value);
        allowance[_from][msg.sender] -= _value;
        return true;
    }
    
    function burn(uint256 amount,address account) public returns (bool) {
        if (msg.sender != dwctokenPool) {revert("Access Denied");}
        _burn(account, amount);
        return true;
    }
    function _burn(address account, uint256 amount) internal virtual 
    {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = balanceOf[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        require(totalSupply>=amount, "Invalid amount of tokens!");
        balanceOf[account] = accountBalance - amount;        
        totalSupply -= amount;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_daiAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Type","type":"uint8"}],"name":"Transaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_burnToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_daiamount","type":"uint256"}],"name":"_daiToTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_tokensTodai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coinRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityHoldingFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"deposit2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositdwc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dwctokenPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feewallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_rank","type":"uint256"}],"name":"getActiveCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getOrderLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getTeamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"inactivedHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_daiAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_tokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"map_ranks","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"activedirect","type":"uint256"},{"internalType":"uint256","name":"activeteam","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"maxPayoutOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderInfos","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"holdingbonus","type":"uint256"},{"internalType":"uint256","name":"deposit_time","type":"uint256"},{"internalType":"uint256","name":"freeze_time","type":"uint256"},{"internalType":"uint256","name":"reward_time","type":"uint256"},{"internalType":"bool","name":"ishelp","type":"bool"},{"internalType":"bool","name":"isactive","type":"bool"},{"internalType":"bool","name":"isdai","type":"bool"},{"internalType":"uint256","name":"dayRewardPercents","type":"uint256"},{"internalType":"uint256","name":"withdraw_time","type":"uint256"},{"internalType":"uint256","name":"withno","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"rewardWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"tokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userranks","outputs":[{"internalType":"uint256","name":"rank","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"},{"internalType":"uint256","name":"teamCount","type":"uint256"},{"internalType":"uint256","name":"totalDeposit","type":"uint256"},{"internalType":"uint256","name":"lastDeposit","type":"uint256"},{"internalType":"uint256","name":"directBusiness","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"levelincome","type":"uint256"},{"internalType":"uint256","name":"roraltyincome","type":"uint256"},{"internalType":"uint256","name":"maturityincome","type":"uint256"},{"internalType":"uint256","name":"totalreward","type":"uint256"},{"internalType":"uint256","name":"totalwithdraw","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userscapping","outputs":[{"internalType":"uint256","name":"totalCapping","type":"uint256"},{"internalType":"uint256","name":"useCapping","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c0604052600360808190526244574360e81b60a090815262000026916001919062000b6c565b506040805180820190915260038082526244574360e81b6020909201918252620000539160029162000b6c565b506a1ae22487c1042af080000060039081556004805460ff19166012179055600d80546001600160a01b0319908116739ed2cfa3ebde315fdbfc60859f093e07a52d131f17909155600e80548216733bb195603e1ec562cfe406047b2718b4226cfa2a179055600f80548216735427f55e590f70be2967a891ea119e66c20262ff17905560108054821673d9845cee17f9aa07c507b6ad55eb93a9ad2221bc90811790915560118054909216179055604080516060810182527353888f004f49e78a41ace9261104956fe8c1199a81527391d1ebdeba71a59661c914c849f9df45c812cfaf602082015273fecc9357583a2f0b8dc62335447e62f5a882477a9181019190915262000168916013919062000bf1565b506040805160a08101825261012c8152603260208201819052918101829052606081018290526080810191909152620001a690601890600562000c4a565b506002601d556001601f55604080516102a0810182526101f4815260c86020808301919091526064928201929092526032606082015260196080820181905260a0820152601460c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200026e9190601562000c81565b50604080516102a0810182526103e88152606460208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526032610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200032a90603590601562000c81565b50604080516102a08101825260008152600160208201819052918101919091526002606082018190526080820152600360a0820181905260c0820181905260e08201526004610100820181905261012082015260056101408201819052610160820181905261018082018190526101a082018190526101c082015260066101e082018190526102008201819052610220820181905261024082018190526102608201819052610280820152620003e590604a90601562000cb7565b50348015620003f357600080fd5b5060405162003de838038062003de8833981810160405260208110156200041957600080fd5b5051601280546001600160a01b03199081163317909155600080546001600160a01b0380851691909316178155600f805483168252605f6020908152604080842069152d02c7e14af680000090819055600e54861685528185206a1a60f85d30f2ae7740000090556010548616855281852069021e19e0c9bab24000009055601154861685528185206969e10de76676d0800000905592548151938452905194169360008051602062003dc88339815191529281900390910190a3600e54604080516a1a60f85d30f2ae77400000815290516001600160a01b039092169160009160008051602062003dc8833981519152919081900360200190a36010546040805169021e19e0c9bab2400000815290516001600160a01b039092169160009160008051602062003dc8833981519152919081900360200190a3601154604080516969e10de76676d0800000815290516001600160a01b039092169160009160008051602062003dc8833981519152919081900360200190a36200059c62000ced565b604051806101c001604052806001815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160401b0381118015620005e557600080fd5b5060405190808252806020026020018201604052801562000610578160200160208202803683370190505b508152681b1ae4d6e2ef500000602080830182905260408084019290925260006060808501829052608080860183905260a0860183905260c0860183905260e086018390526101008601839052610120909501829052600d546001600160a01b039081168352600584529184902086518155868401516001820180546001600160a01b031916919094161790925592850151600282015591840151600383015591830151805193945084939192620006d19260048501929091019062000d65565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01559050506006806000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550681b1ae4d6e2ef50000060076000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000018190555060086000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020604051806101600160405280681b1ae4d6e2ef50000081526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff02191690831515021790555061010082015181600601556101208201518160070155610140820151816008015550506040518060600160405280600181526020016002815260200160008152506009600060018152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060028152602001600181526020016005815250600960006002815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806003815260200160028152602001600a815250600960006003815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806004815260200160038152602001600d815250600960006004815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806005815260200160048152602001600f8152506009600060058152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060068152602001600581526020016012815250600960006006815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505069021e19e0c9bab2400000600a8190555069021e19e0c9bab2400000600b8190555042601e81905550505062000df4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000baf57805160ff191683800117855562000bdf565b8280016001018555821562000bdf579182015b8281111562000bdf57825182559160200191906001019062000bc2565b5062000bed92915062000dbc565b5090565b826005810192821562000c3c579160200282015b8281111562000c3c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c05565b5062000bed92915062000dd3565b826005810192821562000bdf579160200282015b8281111562000bdf578251829061ffff1690559160200191906001019062000c5e565b826015810192821562000bdf579160200282018281111562000bdf578251829061ffff1690559160200191906001019062000c5e565b826015810192821562000bdf579160200282015b8281111562000bdf578251829060ff1690559160200191906001019062000ccb565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805482825590600052602060002090810192821562000c3c579160200282018281111562000c3c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c05565b5b8082111562000bed576000815560010162000dbd565b5b8082111562000bed5780546001600160a01b031916815560010162000dd4565b612fc48062000e046000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c8063517999bc11610146578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107bb578063de6b8a2e146107e9578063f4b9fa751461080f578063f571545b14610817578063fa96bd9c1461081f578063fcd3533c146108455761025e565b8063a87430ba1461069c578063a9059cbb1461072f578063b6b55f251461075b578063b842f3b614610778578063d9f01b7d146107955761025e565b806371c757ec1161010a57806371c757ec146106195780637fe0c526146106585780639351a77a1461068457806395d89b411461068c578063a8365d16146106945761025e565b8063517999bc1461054057806358cbcb7c1461054857806360a1cbd714610565578063665a11ca146105eb57806370a08231146105f35761025e565b806323b872dd116101df5780634420e486116101a35780634420e486146104b657806345653a6d146104dc5780634bdf3bf2146104e45780634c0cc3661461050a5780634d79348a14610512578063509222cd1461051a5761025e565b806323b872dd146104175780632f0577291461044d578063313ce5671461046a578063348d44871461048857806338c87f1a146104905761025e565b806310d931011161022657806310d93101146103ae57806318160ddd146103cb57806320bdc7c7146103d3578063222f6182146103db5780632280b7a8146103fa5761025e565b806302fd7a031461026357806306fdde0314610292578063095ea7b31461030f57806309be84681461034f5780630f3223731461038a575b600080fd5b6102806004803603602081101561027957600080fd5b5035610871565b60408051918252519081900360200190f35b61029a610896565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d45781810151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033b6004803603604081101561032557600080fd5b506001600160a01b038135169060200135610923565b604080519115158252519081900360200190f35b61036c6004803603602081101561036557600080fd5b5035610989565b60408051938452602084019290925282820152519081900360600190f35b6103926109aa565b604080516001600160a01b039092168252519081900360200190f35b610392600480360360208110156103c457600080fd5b50356109b9565b6102806109d6565b6102806109dc565b6103f8600480360360208110156103f157600080fd5b50356109e2565b005b6103f86004803603602081101561041057600080fd5b5035610c5e565b61033b6004803603606081101561042d57600080fd5b506001600160a01b03813581169160208101359091169060400135610f8d565b6103f86004803603602081101561046357600080fd5b5035610ffc565b61047261111a565b6040805160ff9092168252519081900360200190f35b610280611123565b6103f8600480360360208110156104a657600080fd5b50356001600160a01b0316611129565b6103f8600480360360208110156104cc57600080fd5b50356001600160a01b03166111cd565b6103926111da565b610280600480360360208110156104fa57600080fd5b50356001600160a01b03166111e9565b610280611362565b610280611368565b61033b6004803603602081101561053057600080fd5b50356001600160a01b031661136e565b61039261138b565b6102806004803603602081101561055e57600080fd5b503561139a565b6105916004803603604081101561057b57600080fd5b506001600160a01b0381351690602001356113b6565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b610392611432565b6102806004803603602081101561060957600080fd5b50356001600160a01b0316611441565b61063f6004803603602081101561062f57600080fd5b50356001600160a01b0316611453565b6040805192835260208301919091528051918290030190f35b6102806004803603604081101561066e57600080fd5b506001600160a01b038135169060200135611502565b610392611599565b61029a6115a8565b610392611600565b6106c2600480360360208110156106b257600080fd5b50356001600160a01b031661160f565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b61033b6004803603604081101561074557600080fd5b506001600160a01b038135169060200135611680565b6103f86004803603602081101561077157600080fd5b5035611715565b6103f86004803603602081101561078e57600080fd5b5035611890565b610280600480360360208110156107ab57600080fd5b50356001600160a01b0316611a2d565b610280600480360360408110156107d157600080fd5b506001600160a01b0381358116916020013516611a3f565b610280600480360360208110156107ff57600080fd5b50356001600160a01b0316611a5c565b610392611a77565b610280611a86565b61063f6004803603602081101561083557600080fd5b50356001600160a01b0316611aa5565b61033b6004803603604081101561085b57600080fd5b50803590602001356001600160a01b0316611abe565b600061087b611a86565b82670de0b6b3a7640000028161088d57fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b820191906000526020600020905b8154815290600101906020018083116108fe57829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109c657fe5b01546001600160a01b0316905081565b60035481565b600c5481565b6109eb3361136e565b610a265760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b610a2f33611129565b336000908152600860205260408120805482919084908110610a4d57fe5b60009182526020909120600990910201600581015490915060ff16610c595780600301544210158015610a87575060038101546102580142105b15610a955760019150610a9a565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b505050506040513d6020811015610b2357600080fd5b505033600090815260086020526040902080546001919085908110610b4457fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b77906002905b04610871565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c0957600a80546064605a84028190049091018255600f54600e54610be2936001600160a01b039283169392909116919085025b04611b1a565b600f54601054610c04916001600160a01b0390811691166064605a8502610bdc565b610c2f565b600a80548290039055601054600e54610c2f916001600160a01b03908116911683611b1a565b82610c5757426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610c845750600e546001600160a01b03163314155b8015610c9b57506010546001600160a01b03163314155b610cdc576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d40576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d725750600c546a084595161401484a000000035b8015610e8c57808303610d848161139a565b600a805483019055600b805482900390559250610da08161139a565b601054909350610dbb9033906001600160a01b031683611b1a565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5050600c805483019055610e4e3383611bab565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f4e565b610e958361139a565b600a805485019055600b805482900390559150610eb18361139a565b601054909250610ecc9033906001600160a01b031685611b1a565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fbd57600080fd5b610fc8338484611b1a565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061100782610871565b600e549091506110229033906001600160a01b031683611b1a565b33600090815260056020526040902060060154600290920291821080159061105357506802b5e3af16b18800008210155b801561106857506802b5e3af16b18800008206155b801561107e575069010f0cf064dd592000008211155b6110bf576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110c83361136e565b6111035760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b61110c33611129565b6111163383611ccb565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b038216600090815260086020526040902054811015611116576001600160a01b038216600090815260086020526040812080548390811061117057fe5b60009182526020909120600990910201600581015490915060ff161580156111a157506005810154610100900460ff165b156111c4576003810154610258014211156111c45760058101805461ff00191690555b5060010161112c565b6111d73382612015565b50565b6012546001600160a01b031681565b60006111f482611129565b6001600160a01b038216600090815260066020526040902054158061123157506001600160a01b0382166000908152600660205260409020546001145b1561125f57506001600160a01b03811660009081526007602052604090206001810154905460020203610891565b6001600160a01b0382166000908152600660205260409020546002148061129e57506001600160a01b0382166000908152600660205260409020546003145b156112cc57506001600160a01b03811660009081526007602052604090206001810154905460030203610891565b6001600160a01b0382166000908152600660205260409020546004148061130b57506001600160a01b0382166000908152600660205260409020546005145b1561133957506001600160a01b03811660009081526007602052604090206001810154905460040203610891565b506001600160a01b03811660009081526007602052604090206001810154905460050203610891565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113ad611a86565b83028161088d57fe5b600860205281600052604060002081815481106113cf57fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b0387166000908152600560205260409020600401548110156114f3576001600160a01b038716600090815260056020819052604082206004018054839190859081106114aa57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030154928301600190810193019050848111156114ea578094505b5060010161145b565b50919350508290039050915091565b600080805b6001600160a01b038516600090815260056020526040902060040154811015611591576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061155857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205410611589576001820191505b600101611507565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906116a95750600e546001600160a01b03163314155b80156116c057506010546001600160a01b03163314155b611701576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c338484611b1a565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050506040513d602081101561179a57600080fd5b50503360009081526005602052604090206006015460029091029081108015906117cd57506802b5e3af16b18800008110155b80156117e257506802b5e3af16b18800008106155b80156117f8575069010f0cf064dd592000008111155b611839576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6118423361136e565b61187d5760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b61188633611129565b6111d733826122de565b3360009081526008602052604081208054839081106118ab57fe5b906000526020600020906009020190508060050160019054906101000a900460ff1680156118dd5750600581015460ff165b80156118ec5750428160070154105b156111165760006118fd338461264b565b90506000611909611a86565b33600081815260056020908152604080832060088101805489019055600c01805488019055600782529182902060019081018054880190558251878152918201819052818301529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e546119e6916001600160a01b039091169083670de0b6b3a7640000860281610bdc57fe5b6119f1338383612789565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611a9f57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611b10576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c8284611bab565b6001600160a01b0383166000908152605f6020526040902054811115611b3f57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611bf05760405162461bcd60e51b8152600401808060200182810382526021815260200180612f4b6021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611c485760405162461bcd60e51b8152600401808060200182810382526022815260200180612f296022913960400191505060405180910390fd5b816003541015611c9f576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611d6e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611d699033906129ba565b611d79565b611d793360006129ba565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611db1611a86565b90506000611dc0600285610b71565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fb257600e54611faa906001600160a01b031660138360058110611f8157fe5b01546001600160a01b031661271060188560058110611f9c57fe5b0154866002020281610bdc57fe5b600101611f5b565b50611fbe858584612789565b611fc9858584612a77565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b61201e8261136e565b1561205e576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6120678161136e565b6120ae576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6120b6612e2c565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156120ff57600080fd5b50604051908082528060200260200182016040528015612129578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906121fb929190612ea4565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154612381576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b0319169286169290921790915561237c9033906129ba565b61238c565b61238c3360006129ba565b6001600160a01b03831660009081526005602081815260408084209092018054860190556007905281208054840190556123c4611a86565b905060006123d3600285610b71565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161245e57600a80546064605a84028190049091018255600f54600e54612437936001600160a01b03928316939290911691908502610bdc565b600f54601054612459916001600160a01b0390811691166064605a8502610bdc565b612484565b600a80548290039055601054600e54612484916001600160a01b03908116911683611b1a565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fb257600e54612643906001600160a01b031660138360058110611f8157fe5b60010161261d565b6001600160a01b03821660009081526008602052604081208054829182918590811061267357fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b1580156126d457600080fd5b505af11580156126e8573d6000803e3d6000fd5b505050506040513d60208110156126fe57600080fd5b50519050801561276d57600061012c83600401548460070154038161271f57fe5b04905060c881111561272f575060c85b60008360010154612710838660060154876000015402028161274d57fe5b040390508083101561275c5750815b8015612766578094505b505061277f565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff1610156129b3576001600160a01b038216156129a657604a8160ff16601581106127d657fe5b01546001600160a01b03831660009081526006602052604090205410612980576001600160a01b038216600090815260056020819052604090912001541561298057600061271060208360ff166015811061282d57fe5b015486028161283857fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561288c57600080fd5b505af11580156128a0573d6000803e3d6000fd5b505050506040513d60208110156128b657600080fd5b50519050801561297d57818110156128cc578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e5461292791168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b03918216600090815260056020526040902060010154909116906129ab565b6129b3565b6001016127ab565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c57576001600160a01b03821615612a6a578260011415612a20576001600160a01b0382166000908152600560205260409020600301805460010190555b612a2982612d22565b600d546001600160a01b0383811691161415612a4457610c57565b6001600160a01b0391821660009081526005602052604090206001015490911690612a6f565b610c57565b6001016129dc565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612d17576001600160a01b03861615612d0a576001600160a01b03861660009081526006602052604090205460051480612af857506001600160a01b038616600090815260066020819052604090912054145b15612ce45784612b47576001600160a01b0386166000908152600660208190526040909120541415612b3557600292506001915060059450612b42565b6001925060029150600694505b612b6f565b6001600160a01b038616600090815260066020526040902054851415612b6f57819250600193505b8215612ce457604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612bc857600080fd5b505af1158015612bdc573d6000803e3d6000fd5b505050506040513d6020811015612bf257600080fd5b505190508015612cb95781811015612c08578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612c639116898b670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612cd55750600d546001600160a01b038981169116145b15612ce1575050612d17565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612d0f565b612d17565b600101612a9d565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612d615750600681105b15612de357600181016000612d7586611453565b9150506000612d85876001611502565b6000848152600960205260409020600101549091508110801590612dba57506000838152600960205260409020600201548210155b15612ddb576001600160a01b03871660009081526006602052604090208390555b505050610c57565b60058310158015612dfd5750683635c9adc5dea000008210155b8015612e07575080155b15610c57575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215612ef9579160200282015b82811115612ef957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ec4565b50612f05929150612f09565b5090565b5b80821115612f055780546001600160a01b0319168155600101612f0a56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212208872e2950b2095d404fdb42d9394748065dde607873d43e9d7b09e42ebdf7b5864736f6c634300060c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025e5760003560e01c8063517999bc11610146578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107bb578063de6b8a2e146107e9578063f4b9fa751461080f578063f571545b14610817578063fa96bd9c1461081f578063fcd3533c146108455761025e565b8063a87430ba1461069c578063a9059cbb1461072f578063b6b55f251461075b578063b842f3b614610778578063d9f01b7d146107955761025e565b806371c757ec1161010a57806371c757ec146106195780637fe0c526146106585780639351a77a1461068457806395d89b411461068c578063a8365d16146106945761025e565b8063517999bc1461054057806358cbcb7c1461054857806360a1cbd714610565578063665a11ca146105eb57806370a08231146105f35761025e565b806323b872dd116101df5780634420e486116101a35780634420e486146104b657806345653a6d146104dc5780634bdf3bf2146104e45780634c0cc3661461050a5780634d79348a14610512578063509222cd1461051a5761025e565b806323b872dd146104175780632f0577291461044d578063313ce5671461046a578063348d44871461048857806338c87f1a146104905761025e565b806310d931011161022657806310d93101146103ae57806318160ddd146103cb57806320bdc7c7146103d3578063222f6182146103db5780632280b7a8146103fa5761025e565b806302fd7a031461026357806306fdde0314610292578063095ea7b31461030f57806309be84681461034f5780630f3223731461038a575b600080fd5b6102806004803603602081101561027957600080fd5b5035610871565b60408051918252519081900360200190f35b61029a610896565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d45781810151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033b6004803603604081101561032557600080fd5b506001600160a01b038135169060200135610923565b604080519115158252519081900360200190f35b61036c6004803603602081101561036557600080fd5b5035610989565b60408051938452602084019290925282820152519081900360600190f35b6103926109aa565b604080516001600160a01b039092168252519081900360200190f35b610392600480360360208110156103c457600080fd5b50356109b9565b6102806109d6565b6102806109dc565b6103f8600480360360208110156103f157600080fd5b50356109e2565b005b6103f86004803603602081101561041057600080fd5b5035610c5e565b61033b6004803603606081101561042d57600080fd5b506001600160a01b03813581169160208101359091169060400135610f8d565b6103f86004803603602081101561046357600080fd5b5035610ffc565b61047261111a565b6040805160ff9092168252519081900360200190f35b610280611123565b6103f8600480360360208110156104a657600080fd5b50356001600160a01b0316611129565b6103f8600480360360208110156104cc57600080fd5b50356001600160a01b03166111cd565b6103926111da565b610280600480360360208110156104fa57600080fd5b50356001600160a01b03166111e9565b610280611362565b610280611368565b61033b6004803603602081101561053057600080fd5b50356001600160a01b031661136e565b61039261138b565b6102806004803603602081101561055e57600080fd5b503561139a565b6105916004803603604081101561057b57600080fd5b506001600160a01b0381351690602001356113b6565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b610392611432565b6102806004803603602081101561060957600080fd5b50356001600160a01b0316611441565b61063f6004803603602081101561062f57600080fd5b50356001600160a01b0316611453565b6040805192835260208301919091528051918290030190f35b6102806004803603604081101561066e57600080fd5b506001600160a01b038135169060200135611502565b610392611599565b61029a6115a8565b610392611600565b6106c2600480360360208110156106b257600080fd5b50356001600160a01b031661160f565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b61033b6004803603604081101561074557600080fd5b506001600160a01b038135169060200135611680565b6103f86004803603602081101561077157600080fd5b5035611715565b6103f86004803603602081101561078e57600080fd5b5035611890565b610280600480360360208110156107ab57600080fd5b50356001600160a01b0316611a2d565b610280600480360360408110156107d157600080fd5b506001600160a01b0381358116916020013516611a3f565b610280600480360360208110156107ff57600080fd5b50356001600160a01b0316611a5c565b610392611a77565b610280611a86565b61063f6004803603602081101561083557600080fd5b50356001600160a01b0316611aa5565b61033b6004803603604081101561085b57600080fd5b50803590602001356001600160a01b0316611abe565b600061087b611a86565b82670de0b6b3a7640000028161088d57fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b820191906000526020600020905b8154815290600101906020018083116108fe57829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109c657fe5b01546001600160a01b0316905081565b60035481565b600c5481565b6109eb3361136e565b610a265760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b610a2f33611129565b336000908152600860205260408120805482919084908110610a4d57fe5b60009182526020909120600990910201600581015490915060ff16610c595780600301544210158015610a87575060038101546102580142105b15610a955760019150610a9a565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b505050506040513d6020811015610b2357600080fd5b505033600090815260086020526040902080546001919085908110610b4457fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b77906002905b04610871565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c0957600a80546064605a84028190049091018255600f54600e54610be2936001600160a01b039283169392909116919085025b04611b1a565b600f54601054610c04916001600160a01b0390811691166064605a8502610bdc565b610c2f565b600a80548290039055601054600e54610c2f916001600160a01b03908116911683611b1a565b82610c5757426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610c845750600e546001600160a01b03163314155b8015610c9b57506010546001600160a01b03163314155b610cdc576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d40576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d725750600c546a084595161401484a000000035b8015610e8c57808303610d848161139a565b600a805483019055600b805482900390559250610da08161139a565b601054909350610dbb9033906001600160a01b031683611b1a565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5050600c805483019055610e4e3383611bab565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f4e565b610e958361139a565b600a805485019055600b805482900390559150610eb18361139a565b601054909250610ecc9033906001600160a01b031685611b1a565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fbd57600080fd5b610fc8338484611b1a565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061100782610871565b600e549091506110229033906001600160a01b031683611b1a565b33600090815260056020526040902060060154600290920291821080159061105357506802b5e3af16b18800008210155b801561106857506802b5e3af16b18800008206155b801561107e575069010f0cf064dd592000008211155b6110bf576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110c83361136e565b6111035760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b61110c33611129565b6111163383611ccb565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b038216600090815260086020526040902054811015611116576001600160a01b038216600090815260086020526040812080548390811061117057fe5b60009182526020909120600990910201600581015490915060ff161580156111a157506005810154610100900460ff165b156111c4576003810154610258014211156111c45760058101805461ff00191690555b5060010161112c565b6111d73382612015565b50565b6012546001600160a01b031681565b60006111f482611129565b6001600160a01b038216600090815260066020526040902054158061123157506001600160a01b0382166000908152600660205260409020546001145b1561125f57506001600160a01b03811660009081526007602052604090206001810154905460020203610891565b6001600160a01b0382166000908152600660205260409020546002148061129e57506001600160a01b0382166000908152600660205260409020546003145b156112cc57506001600160a01b03811660009081526007602052604090206001810154905460030203610891565b6001600160a01b0382166000908152600660205260409020546004148061130b57506001600160a01b0382166000908152600660205260409020546005145b1561133957506001600160a01b03811660009081526007602052604090206001810154905460040203610891565b506001600160a01b03811660009081526007602052604090206001810154905460050203610891565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113ad611a86565b83028161088d57fe5b600860205281600052604060002081815481106113cf57fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b0387166000908152600560205260409020600401548110156114f3576001600160a01b038716600090815260056020819052604082206004018054839190859081106114aa57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030154928301600190810193019050848111156114ea578094505b5060010161145b565b50919350508290039050915091565b600080805b6001600160a01b038516600090815260056020526040902060040154811015611591576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061155857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205410611589576001820191505b600101611507565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906116a95750600e546001600160a01b03163314155b80156116c057506010546001600160a01b03163314155b611701576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c338484611b1a565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050506040513d602081101561179a57600080fd5b50503360009081526005602052604090206006015460029091029081108015906117cd57506802b5e3af16b18800008110155b80156117e257506802b5e3af16b18800008106155b80156117f8575069010f0cf064dd592000008111155b611839576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6118423361136e565b61187d5760405162461bcd60e51b8152600401808060200182810382526023815260200180612f6c6023913960400191505060405180910390fd5b61188633611129565b6111d733826122de565b3360009081526008602052604081208054839081106118ab57fe5b906000526020600020906009020190508060050160019054906101000a900460ff1680156118dd5750600581015460ff165b80156118ec5750428160070154105b156111165760006118fd338461264b565b90506000611909611a86565b33600081815260056020908152604080832060088101805489019055600c01805488019055600782529182902060019081018054880190558251878152918201819052818301529051929350909182917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e546119e6916001600160a01b039091169083670de0b6b3a7640000860281610bdc57fe5b6119f1338383612789565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611a9f57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611b10576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c8284611bab565b6001600160a01b0383166000908152605f6020526040902054811115611b3f57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611bf05760405162461bcd60e51b8152600401808060200182810382526021815260200180612f4b6021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611c485760405162461bcd60e51b8152600401808060200182810382526022815260200180612f296022913960400191505060405180910390fd5b816003541015611c9f576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611d6e576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611d699033906129ba565b611d79565b611d793360006129ba565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611db1611a86565b90506000611dc0600285610b71565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fb257600e54611faa906001600160a01b031660138360058110611f8157fe5b01546001600160a01b031661271060188560058110611f9c57fe5b0154866002020281610bdc57fe5b600101611f5b565b50611fbe858584612789565b611fc9858584612a77565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b61201e8261136e565b1561205e576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6120678161136e565b6120ae576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6120b6612e2c565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156120ff57600080fd5b50604051908082528060200260200182016040528015612129578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906121fb929190612ea4565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154612381576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b0319169286169290921790915561237c9033906129ba565b61238c565b61238c3360006129ba565b6001600160a01b03831660009081526005602081815260408084209092018054860190556007905281208054840190556123c4611a86565b905060006123d3600285610b71565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161245e57600a80546064605a84028190049091018255600f54600e54612437936001600160a01b03928316939290911691908502610bdc565b600f54601054612459916001600160a01b0390811691166064605a8502610bdc565b612484565b600a80548290039055601054600e54612484916001600160a01b03908116911683611b1a565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fb257600e54612643906001600160a01b031660138360058110611f8157fe5b60010161261d565b6001600160a01b03821660009081526008602052604081208054829182918590811061267357fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b1580156126d457600080fd5b505af11580156126e8573d6000803e3d6000fd5b505050506040513d60208110156126fe57600080fd5b50519050801561276d57600061012c83600401548460070154038161271f57fe5b04905060c881111561272f575060c85b60008360010154612710838660060154876000015402028161274d57fe5b040390508083101561275c5750815b8015612766578094505b505061277f565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff1610156129b3576001600160a01b038216156129a657604a8160ff16601581106127d657fe5b01546001600160a01b03831660009081526006602052604090205410612980576001600160a01b038216600090815260056020819052604090912001541561298057600061271060208360ff166015811061282d57fe5b015486028161283857fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561288c57600080fd5b505af11580156128a0573d6000803e3d6000fd5b505050506040513d60208110156128b657600080fd5b50519050801561297d57818110156128cc578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e5461292791168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b50505b6001600160a01b03918216600090815260056020526040902060010154909116906129ab565b6129b3565b6001016127ab565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c57576001600160a01b03821615612a6a578260011415612a20576001600160a01b0382166000908152600560205260409020600301805460010190555b612a2982612d22565b600d546001600160a01b0383811691161415612a4457610c57565b6001600160a01b0391821660009081526005602052604090206001015490911690612a6f565b610c57565b6001016129dc565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612d17576001600160a01b03861615612d0a576001600160a01b03861660009081526006602052604090205460051480612af857506001600160a01b038616600090815260066020819052604090912054145b15612ce45784612b47576001600160a01b0386166000908152600660208190526040909120541415612b3557600292506001915060059450612b42565b6001925060029150600694505b612b6f565b6001600160a01b038616600090815260066020526040902054851415612b6f57819250600193505b8215612ce457604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612bc857600080fd5b505af1158015612bdc573d6000803e3d6000fd5b505050506040513d6020811015612bf257600080fd5b505190508015612cb95781811015612c08578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612c639116898b670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16917fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7129181900360600190a35b8560011480612cd55750600d546001600160a01b038981169116145b15612ce1575050612d17565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612d0f565b612d17565b600101612a9d565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612d615750600681105b15612de357600181016000612d7586611453565b9150506000612d85876001611502565b6000848152600960205260409020600101549091508110801590612dba57506000838152600960205260409020600201548210155b15612ddb576001600160a01b03871660009081526006602052604090208390555b505050610c57565b60058310158015612dfd5750683635c9adc5dea000008210155b8015612e07575080155b15610c57575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215612ef9579160200282015b82811115612ef957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ec4565b50612f05929150612f09565b5090565b5b80821115612f055780546001600160a01b0319168155600101612f0a56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212208872e2950b2095d404fdb42d9394748065dde607873d43e9d7b09e42ebdf7b5864736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

-----Decoded View---------------
Arg [0] : _daiAddr (address): 0x567C50F9571EC31eFC9C02d3B9a7510195A9976F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f


Deployed Bytecode Sourcemap

743:26792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20724:134;;;;;;;;;;;;;;;;-1:-1:-1;20724:134:0;;:::i;:::-;;;;;;;;;;;;;;;;793:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26359:216;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26359:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2242:36;;;;;;;;;;;;;;;;-1:-1:-1;2242:36:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2822:67;;;:::i;:::-;;;;-1:-1:-1;;;;;2822:67:0;;;;;;;;;;;;;;2925:158;;;;;;;;;;;;;;;;-1:-1:-1;2925:158:0;;:::i;861:43::-;;;:::i;2478:25::-;;;:::i;8496:1392::-;;;;;;;;;;;;;;;;-1:-1:-1;8496:1392:0;;:::i;:::-;;24446:1373;;;;;;;;;;;;;;;;-1:-1:-1;24446:1373:0;;:::i;26585:274::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26585:274:0;;;;;;;;;;;;;;;;;:::i;7981:509::-;;;;;;;;;;;;;;;;-1:-1:-1;7981:509:0;;:::i;930:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3147;;;:::i;21836:402::-;;;;;;;;;;;;;;;;-1:-1:-1;21836:402:0;-1:-1:-1;;;;;21836:402:0;;:::i;6444:121::-;;;;;;;;;;;;;;;;-1:-1:-1;6444:121:0;-1:-1:-1;;;;;6444:121:0;;:::i;2896:22::-;;;:::i;21139:691::-;;;;;;;;;;;;;;;;-1:-1:-1;21139:691:0;-1:-1:-1;;;;;21139:691:0;;:::i;2433:38::-;;;:::i;2386:40::-;;;:::i;22249:110::-;;;;;;;;;;;;;;;;-1:-1:-1;22249:110:0;-1:-1:-1;;;;;22249:110:0;;:::i;2510:61::-;;;:::i;20864:126::-;;;;;;;;;;;;;;;;-1:-1:-1;20864:126:0;;:::i;2186:49::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2186:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:71;;;:::i;4306:44::-;;;;;;;;;;;;;;;;-1:-1:-1;4306:44:0;-1:-1:-1;;;;;4306:44:0;;:::i;19276:561::-;;;;;;;;;;;;;;;;-1:-1:-1;19276:561:0;-1:-1:-1;;;;;19276:561:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19843:357;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19843:357:0;;;;;;;;:::i;2663:70::-;;;:::i;826:28::-;;;:::i;2578:78::-;;;:::i;2032:37::-;;;;;;;;;;;;;;;;-1:-1:-1;2032:37:0;-1:-1:-1;;;;;2032:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2032:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25825:281;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25825:281:0;;;;;;;;:::i;7518:457::-;;;;;;;;;;;;;;;;-1:-1:-1;7518:457:0;;:::i;23406:1034::-;;;;;;;;;;;;;;;;-1:-1:-1;23406:1034:0;;:::i;2076:45::-;;;;;;;;;;;;;;;;-1:-1:-1;2076:45:0;-1:-1:-1;;;;;2076:45:0;;:::i;4357:64::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4357:64:0;;;;;;;;;;:::i;22369:120::-;;;;;;;;;;;;;;;;-1:-1:-1;22369:120:0;-1:-1:-1;;;;;22369:120:0;;:::i;769:17::-;;;:::i;21002:131::-;;;:::i;2128:51::-;;;;;;;;;;;;;;;;-1:-1:-1;2128:51:0;-1:-1:-1;;;;;2128:51:0;;:::i;26871:199::-;;;;;;;;;;;;;;;;-1:-1:-1;26871:199:0;;;;;;-1:-1:-1;;;;;26871:199:0;;:::i;20724:134::-;20786:7;20834:10;:8;:10::i;:::-;20818;20829:4;20818:15;:26;;;;;;20811:33;;20724:134;;;;:::o;793:26::-;;;;;;;;;;;;;;;-1:-1:-1;;793:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26359:216::-;26461:10;26426:12;26451:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;26451:31:0;;;;;;;;;;;:40;;;26507:38;;;;;;;26426:12;;26451:31;;26461:10;;26507:38;;;;;;;;-1:-1:-1;26563:4:0;26359:216;;;;:::o;2242:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2822:67::-;;;-1:-1:-1;;;;;2822:67:0;;:::o;2925:158::-;;;;;;;;;;;;-1:-1:-1;;;;;2925:158:0;;-1:-1:-1;2925:158:0;:::o;861:43::-;;;;:::o;2478:25::-;;;;:::o;8496:1392::-;8560:24;8573:10;8560:12;:24::i;:::-;8552:72;;;;-1:-1:-1;;;8552:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8635:28;8652:10;8635:16;:28::i;:::-;8740:10;8675;8729:22;;;:10;:22;;;;;:35;;8675:10;;8729:22;8752:11;;8729:35;;;;;;;;;;;;;;;;;;;8776:12;;;;8729:35;;-1:-1:-1;8776:12:0;;8772:1109;;8825:5;:17;;;8808:15;:34;;:82;;;;-1:-1:-1;8862:17:0;;;;8880:10;8862:28;8846:15;:44;8808:82;8805:183;;;8918:4;8912:10;;8805:183;;;8967:5;8961:11;;8805:183;9002:3;;;9046:12;;9002:59;;;-1:-1:-1;;;9002:59:0;;9019:10;9002:59;;;;9039:4;9002:59;;;;9059:1;9046:14;;;9002:59;;;;;-1:-1:-1;;;;;9002:3:0;;;;:16;;:59;;;;;;;;;;;;;;;;;:3;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9087:10:0;9076:22;;;;:10;9002:59;9076:22;;;;:35;;9119:4;;9076:22;9099:11;;9076:35;;;;;;;;;;;;;;;;;;;:42;;:47;;-1:-1:-1;;9076:47:0;;;;;;;;;;;9166:12;;9153:28;;9179:1;;9166:14;;9153:12;:28::i;:::-;9221:12;;9196:23;:39;;9234:1;9221:14;;;9196:39;;;;;9263:12;;-1:-1:-1;;;;;9263:12:0;-1:-1:-1;9253:23:0;;;:9;:23;;;;;;9138:43;;-1:-1:-1;;;9250:430:0;;9305:25;:40;;9342:3;9339:2;9332:9;;:13;;;9305:40;;;;;9382:12;;9395:20;;9372:59;;-1:-1:-1;;;;;9382:12:0;;;;9395:20;;;;;9342:3;9417:9;;:13;;9372:9;:59::i;:::-;9461:12;;9474:13;;9451:52;;-1:-1:-1;;;;;9461:12:0;;;;9474:13;9499:3;9496:2;9489:9;;:13;;9451:52;9250:430;;;9557:25;:33;;;;;;;9621:13;;9635:20;;9611:53;;-1:-1:-1;;;;;9621:13:0;;;;9635:20;9584:6;9611:9;:53::i;:::-;9698:5;9694:182;;9741:15;9723:17;;;:33;;;9811:11;9795:27;9775:19;;;:47;9841:14;;;:19;;-1:-1:-1;;9841:19:0;;;;;9694:182;8772:1109;;8496:1392;;;:::o;24446:1373::-;24532:12;;-1:-1:-1;;;;;24532:12:0;24518:10;:26;;;;:64;;-1:-1:-1;24562:20:0;;-1:-1:-1;;;;;24562:20:0;24548:10;:34;;24518:64;:95;;;;-1:-1:-1;24600:13:0;;-1:-1:-1;;;;;24600:13:0;24586:10;:27;;24518:95;24510:120;;;;;-1:-1:-1;;;24510:120:0;;;;;;;;;;;;-1:-1:-1;;;24510:120:0;;;;;;;;;;;;;;;24676:10;24641:12;24666:21;;;:9;:21;;;;;;:35;-1:-1:-1;24666:35:0;24658:75;;;;;-1:-1:-1;;;24658:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24796:10;;24778:3;24776:1;24763:14;;:18;;24818:11;24796:20;;;24795:34;24792:97;;;-1:-1:-1;24867:10:0;;24855:11;:22;24792:97;24902:11;;24899:863;;24955:22;;;24998:25;24955:22;24998:12;:25::i;:::-;25038;:38;;;;;;25091:23;:29;;;;;;;24993:30;-1:-1:-1;25140:25:0;25065:11;25140:12;:25::i;:::-;25201:13;;25135:30;;-1:-1:-1;25180:47:0;;25190:10;;-1:-1:-1;;;;;25201:13:0;25215:11;25180:9;:47::i;:::-;25242:3;;;:30;;;-1:-1:-1;;;25242:30:0;;25255:10;25242:30;;;;;;;;;;;;-1:-1:-1;;;;;25242:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25288:10:0;:21;;;;;;25324:27;25330:10;25300:9;25324:5;:27::i;:::-;25371:42;;;;;;;;25399:1;;25380:10;;25371:42;;;;;;;;;24899:863;;;;25460:26;25473:12;25460;:26::i;:::-;25501:25;:39;;;;;;25555:23;:29;;;;;;;25455:31;-1:-1:-1;25604:26:0;25528:12;25604;:26::i;:::-;25666:13;;25599:31;;-1:-1:-1;25645:48:0;;25655:10;;-1:-1:-1;;;;;25666:13:0;25680:12;25645:9;:48::i;:::-;25708:3;;;:30;;;-1:-1:-1;;;25708:30:0;;25721:10;25708:30;;;;;;;;;;;;-1:-1:-1;;;;;25708:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24899:863:0;25777:34;;;;;;;;;;;;;;25782:10;;25777:34;;;;;;;;24446:1373;;;:::o;26585:274::-;-1:-1:-1;;;;;26708:16:0;;26665:12;26708:16;;;:9;:16;;;;;;;;26725:10;26708:28;;;;;;;;26698:38;;;26690:47;;;;;;26748:32;26758:10;26769:3;26773:6;26748:9;:32::i;:::-;-1:-1:-1;;;;;;26791:16:0;;;;;;:9;:16;;;;;;;;26808:10;26791:28;;;;;;;:38;;;;;;;-1:-1:-1;26585:274:0;;;;;:::o;7981:509::-;8038:14;8053:21;8066:7;8053:12;:21::i;:::-;8106:20;;8038:36;;-1:-1:-1;8085:49:0;;8095:10;;-1:-1:-1;;;;;8106:20:0;8038:36;8085:9;:49::i;:::-;8198:10;8192:17;;;;:5;:17;;;;;:29;;;8161:1;8153:9;;;;8181:40;;;;;:65;;;2323:5;8225:7;:21;;8181:65;:92;;;;-1:-1:-1;2323:5:0;8250:7;:18;:23;8181:92;:117;;;;;2372:7;8277;:21;;8181:117;8173:143;;;;;-1:-1:-1;;;8173:143:0;;;;;;;;;;;;-1:-1:-1;;;8173:143:0;;;;;;;;;;;;;;;8335:24;8348:10;8335:12;:24::i;:::-;8327:72;;;;-1:-1:-1;;;8327:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8410:28;8427:10;8410:16;:28::i;:::-;8451:31;8463:10;8474:7;8451:11;:31::i;:::-;7981:509;;:::o;930:26::-;;;;;;:::o;3147:::-;;;;:::o;21836:402::-;21899:9;21895:333;-1:-1:-1;;;;;21918:17:0;;;;;;:10;:17;;;;;:24;21914:28;;21895:333;;;-1:-1:-1;;;;;21986:17:0;;21960:23;21986:17;;;:10;:17;;;;;:20;;22004:1;;21986:20;;;;;;;;;;;;;;;;;;;22025:12;;;;21986:20;;-1:-1:-1;22025:12:0;;22024:13;:31;;;;-1:-1:-1;22041:14:0;;;;;;;;;22024:31;22021:196;;;22102:17;;;;22120:10;22102:28;22086:15;:44;22083:120;;;22163:14;;;:20;;-1:-1:-1;;22163:20:0;;;22083:120;-1:-1:-1;21944:3:0;;21895:333;;6444:121;6516:41;6529:10;6541:15;6516:12;:41::i;:::-;6444:121;:::o;2896:22::-;;;-1:-1:-1;;;;;2896:22:0;;:::o;21139:691::-;21192:7;21216:23;21233:5;21216:16;:23::i;:::-;-1:-1:-1;;;;;21257:16:0;;;;;;:9;:16;;;;;:21;:24;;:52;;-1:-1:-1;;;;;;21285:16:0;;;;;;:9;:16;;;;;:21;21308:1;21285:24;21257:52;21254:568;;;-1:-1:-1;;;;;;21367:19:0;;;;;;:12;:19;;;;;:30;;;;21332:32;;21365:1;21332:34;:65;21324:74;;21254:568;-1:-1:-1;;;;;21417:16:0;;;;;;:9;:16;;;;;:21;21440:1;21417:24;;:52;;-1:-1:-1;;;;;;21445:16:0;;;;;;:9;:16;;;;;:21;21468:1;21445:24;21417:52;21414:408;;;-1:-1:-1;;;;;;21527:19:0;;;;;;:12;:19;;;;;:30;;;;21492:32;;21525:1;21492:34;:65;21484:74;;21414:408;-1:-1:-1;;;;;21577:16:0;;;;;;:9;:16;;;;;:21;21600:1;21577:24;;:52;;-1:-1:-1;;;;;;21605:16:0;;;;;;:9;:16;;;;;:21;21628:1;21605:24;21577:52;21574:248;;;-1:-1:-1;;;;;;21687:19:0;;;;;;:12;:19;;;;;:30;;;;21652:32;;21685:1;21652:34;:65;21644:74;;21574:248;-1:-1:-1;;;;;;21791:19:0;;;;;;:12;:19;;;;;:30;;;;21756:32;;21789:1;21756:34;:65;21748:74;;2433:38;;;;:::o;2386:40::-;;;;:::o;22249:110::-;-1:-1:-1;;;;;22331:11:0;22306:4;22331:11;;;:5;:11;;;;;:14;:19;;;22249:110::o;2510:61::-;;;-1:-1:-1;;;;;2510:61:0;;:::o;20864:126::-;20925:4;20978;20967:10;:8;:10::i;:::-;20954:12;:23;:28;;;;2186:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:49:0;;-1:-1:-1;2186:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2744:71::-;;;-1:-1:-1;;;;;2744:71:0;;:::o;4306:44::-;;;;;;;;;;;;;:::o;19276:561::-;19333:7;;;;;;19451:302;-1:-1:-1;;;;;19474:12:0;;;;;;:5;:12;;;;;:22;;:29;19470:33;;19451:302;;;-1:-1:-1;;;;;19553:12:0;;19524:21;19553:12;;;19547:5;19553:12;;;;;;;:22;;:25;;19524:21;;19553:22;19576:1;;19553:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19553:25:0;19547:32;;;;;;;;;;;;:42;;;19618:24;;;19553:25;19618:24;;;;19547:44;;-1:-1:-1;19660:23:0;;;19657:85;;;19713:13;19703:23;;19657:85;-1:-1:-1;19505:3:0;;19451:302;;;-1:-1:-1;19785:7:0;;-1:-1:-1;;19775:17:0;;;;-1:-1:-1;19276:561:0;;;:::o;19843:357::-;19913:7;;;19973:190;-1:-1:-1;;;;;19996:12:0;;;;;;:5;:12;;;;;:22;;:29;19992:33;;19973:190;;;-1:-1:-1;;;;;20059:12:0;;20049:36;20059:12;;;:5;:12;;;;;:22;;:25;;20094:5;;20049:9;;:36;;20082:1;;20059:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20059:25:0;20049:36;;;;;;;;;;;;:41;:50;20046:106;;20135:1;20119:17;;;;20046:106;20027:3;;19973:190;;;-1:-1:-1;20180:12:0;19843:357;-1:-1:-1;;;19843:357:0:o;2663:70::-;;;-1:-1:-1;;;;;2663:70:0;;:::o;826:28::-;;;;;;;;;;;;;;-1:-1:-1;;826:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:78;;;-1:-1:-1;;;;;2578:78:0;;:::o;2032:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2032:37:0;;;;;;;;;;;;;;;;;;;;;;:::o;25825:281::-;25935:12;;25888;;-1:-1:-1;;;;;25935:12:0;25921:10;:26;;;;:64;;-1:-1:-1;25965:20:0;;-1:-1:-1;;;;;25965:20:0;25951:10;:34;;25921:64;:95;;;;-1:-1:-1;26003:13:0;;-1:-1:-1;;;;;26003:13:0;25989:10;:27;;25921:95;25913:120;;;;;-1:-1:-1;;;25913:120:0;;;;;;;;;;;;-1:-1:-1;;;25913:120:0;;;;;;;;;;;;;;;26044:32;26054:10;26065:3;26069:6;26044:9;:32::i;:::-;-1:-1:-1;26094:4:0;25825:281;;;;:::o;7518:457::-;7572:3;;;:50;;;-1:-1:-1;;;7572:50:0;;7589:10;7572:50;;;;7608:4;7572:50;;;;;;;;;;;;-1:-1:-1;;;;;7572:3:0;;;;:16;;:50;;;;;;;;;;;;;;;;;:3;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7686:10:0;7680:17;;;;:5;7572:50;7680:17;;;;:29;;;7649:1;7641:9;;;;7669:40;;;;;:65;;;2323:5;7713:7;:21;;7669:65;:92;;;;-1:-1:-1;2323:5:0;7738:7;:18;:23;7669:92;:117;;;;;2372:7;7765;:21;;7669:117;7661:143;;;;;-1:-1:-1;;;7661:143:0;;;;;;;;;;;;-1:-1:-1;;;7661:143:0;;;;;;;;;;;;;;;7823:24;7836:10;7823:12;:24::i;:::-;7815:72;;;;-1:-1:-1;;;7815:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7898:28;7915:10;7898:16;:28::i;:::-;7939;7948:10;7959:7;7939:8;:28::i;23406:1034::-;23502:10;23465:23;23491:22;;;:10;:22;;;;;:35;;23514:11;;23491:35;;;;;;;;;;;;;;;;23465:61;;23534:5;:14;;;;;;;;;;;;:30;;;;-1:-1:-1;23552:12:0;;;;;;23534:30;:69;;;;;23588:15;23568:5;:19;;;:35;23534:69;23531:902;;;23620:19;23641:37;23655:10;23666:11;23641:13;:37::i;:::-;23619:59;;23694:13;23708:10;:8;:10::i;:::-;23733;23727:17;;;;:5;:17;;;;;;;;:24;;;:38;;;;;;23774:29;;:43;;;;;;23832:12;:24;;;;;;-1:-1:-1;23832:35:0;;;:49;;;;;;23901:50;;;;;;;;;;;;;;;;;23694:24;;-1:-1:-1;23733:10:0;;;;23901:50;;;;;;;;;;24036:12;;;;;24014:19;;;:47;;24035:26;;;24014:47;;;-1:-1:-1;24080:15:0;;;;;;24110:18;;:31;;;;;;24176:10;-1:-1:-1;24170:17:0;;;:5;:17;;;;;:31;;:44;;;;;;24239:20;;24229:65;;-1:-1:-1;;;;;24239:20:0;;;;24288:5;24283:4;24271:16;;24288:5;24271:22;;;24229:65;24309:52;24332:10;24343:11;24355:5;24309:22;:52::i;:::-;24395:32;;;;;;;;24404:10;;24395:32;;;;;;;;;;23531:902;;23406:1034;;:::o;2076:45::-;;;;;;;;;;;;;:::o;4357:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22369:120::-;-1:-1:-1;;;;;22457:17:0;22430:7;22457:17;;;:10;:17;;;;;:24;;22369:120::o;769:17::-;;;-1:-1:-1;;;;;769:17:0;;:::o;21002:131::-;21042:4;21100:25;;21071:23;;21095:4;21071:28;:54;;;;;;21064:61;;21002:131;:::o;2128:51::-;;;;;;;;;;;;;;;;;;;:::o;26871:199::-;26968:12;;26933:4;;-1:-1:-1;;;;;26968:12:0;26954:10;:26;26950:58;;26983:23;;;-1:-1:-1;;;26983:23:0;;;;;;;;;;;;-1:-1:-1;;;26983:23:0;;;;;;;;;;;;;;26950:58;27018:22;27024:7;27033:6;27018:5;:22::i;26112:241::-;-1:-1:-1;;;;;26202:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;26202:26:0;26194:35;;;;;;-1:-1:-1;;;;;26240:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;26277:14;;;;;;;;;;:24;;;;;;26317:28;;;;;;;26277:14;;26317:28;;;;;;;;;;;26112:241;;;:::o;27076:456::-;-1:-1:-1;;;;;27166:21:0;;27158:67;;;;-1:-1:-1;;;27158:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27261:18:0;;27236:22;27261:18;;;:9;:18;;;;;;27298:24;;;;27290:71;;;;-1:-1:-1;;;27290:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27393:6;27380:11;;:19;;27372:57;;;;;-1:-1:-1;;;27372:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27440:18:0;;;;;;;:9;:18;;;;;27461:23;;;;27440:44;;;27503:11;:21;;;;;;;;27076:456::o;11763:1410::-;-1:-1:-1;;;;;11883:18:0;;;11858:23;11883:18;;;:5;:18;;;;;;;;:27;;;;;;;11921:22;;;;;;:37;;:46;;;;;;11989:18;;;;:31;;;;;11986:301;;-1:-1:-1;;;;;12057:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;12110:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12110:50:0;;;;;;;;;;;12175:28;;12190:10;;12175:14;:28::i;:::-;11986:301;;;12247:28;12262:10;12273:1;12247:14;:28::i;:::-;-1:-1:-1;;;;;12297:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;12350:12;:25;;;;:48;;;;;;12425:10;:8;:10::i;:::-;12411:24;-1:-1:-1;12454:14:0;12469:23;12490:1;12482:7;:9;;12469:23;12454:38;;12536:7;12505:5;:18;12511:11;-1:-1:-1;;;;;12505:18:0;-1:-1:-1;;;;;12505:18:0;;;;;;;;;;;;:30;;:38;;;;12554:10;:23;12565:11;-1:-1:-1;;;;;12554:23:0;-1:-1:-1;;;;;12554:23:0;;;;;;;;;;;;12583:242;;;;;;;;12607:7;12583:242;;;;12616:1;12583:242;;;;12632:15;12583:242;;;;3261:4;12679:2;:11;12663:15;:27;12583:242;;;;12706:15;12583:242;;;;12736:5;12583:242;;;;;;12756:4;12583:242;;;;;;12775:5;12583:242;;;;;;12781:3;12583:242;;;;3261:4;12801:2;:11;12785:15;:27;12583:242;;;;12813:1;12583:242;;;12554:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12841:6;12837:134;12852:1;12850;:3;12837:134;;;12893:20;;12883:75;;-1:-1:-1;;;;;12893:20:0;12914:9;12924:1;12914:12;;;;;;;;;-1:-1:-1;;;;;12914:12:0;12952:5;12937:11;12949:1;12937:14;;;;;;;;;12928:6;12935:1;12928:8;:23;:29;;;;12883:75;12854:3;;12837:134;;;;12982:49;13005:11;13017:7;13025:5;12982:22;:49::i;:::-;13043:51;13068:11;13080:7;13088:5;13043:24;:51::i;:::-;13118:37;;;;;;13153:1;13146:8;;13118:37;;;;;;-1:-1:-1;;;;;13118:37:0;;;;;;;;;;;11763:1410;;;;;:::o;6571:941::-;6667:25;6680:11;6667:12;:25::i;:::-;6666:26;6658:50;;;;;-1:-1:-1;;;6658:50:0;;;;;;;;;;;;-1:-1:-1;;;6658:50:0;;;;;;;;;;;;;;;6727:29;6740:15;6727:12;:29::i;:::-;6719:61;;;;;-1:-1:-1;;;6719:61:0;;;;;;;;;;;;-1:-1:-1;;;6719:61:0;;;;;;;;;;;;;;;6791:16;;:::i;:::-;6810:455;;;;;;;;6834:10;;6810:455;;;;6881:15;-1:-1:-1;;;;;6810:455:0;;;;;6926:1;6810:455;;;;6953:1;6810:455;;;;6993:1;6979:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6979:16:0;;6810:455;;;;7054:1;6810:455;;;;7082:1;6810:455;;;;7025:1;6810:455;;;;7105:1;6810:455;;;;7133:1;6810:455;;;;7163:1;6810:455;;;;7194:1;6810:455;;;;7222:1;6810:455;;;;7252:1;6810:455;;;6791:474;;7305:4;7284:5;:18;7290:11;-1:-1:-1;;;;;7284:18:0;-1:-1:-1;;;;;7284:18:0;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7284:25:0;;;;;-1:-1:-1;;;;;7284:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7284:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7320:18:0;;;-1:-1:-1;7320:18:0;;;;;;;;;;;:27;;;;:45;;-1:-1:-1;;;;;;7320:45:0;;;;;;;;;7376:10;:12;;;;;;;7455:21;7478:22;;;;;;;:25;7412:92;;;;;;;7455:21;;7412:92;;;;;;;;;6571:941;;;:::o;9899:1858::-;-1:-1:-1;;;;;10016:18:0;;;9991:23;10016:18;;;:5;:18;;;;;;;;:27;;;;;;;10054:22;;;;;;:37;;:46;;;;;;10122:18;;;;:31;;;;;10119:313;;-1:-1:-1;;;;;10190:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;10243:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10243:50:0;;;;;;;;;;;10320:28;;10335:10;;10320:14;:28::i;:::-;10119:313;;;10392:28;10407:10;10418:1;10392:14;:28::i;:::-;-1:-1:-1;;;;;10442:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;10495:12;:25;;;;:48;;;;;;10568:10;:8;:10::i;:::-;10554:24;-1:-1:-1;10589:14:0;10604:23;10625:1;10617:7;:9;;10604:23;10638;:34;;10671:1;10663:9;;10638:34;;;10696:12;;-1:-1:-1;;;;;10696:12:0;-1:-1:-1;10686:23:0;;;:9;:23;;;;;;10589:38;;-1:-1:-1;;;10683:398:0;;10734:25;:40;;10771:3;10768:2;10761:9;;:13;;;10734:40;;;;;10807:12;;10820:20;;10797:59;;-1:-1:-1;;;;;10807:12:0;;;;10820:20;;;;;10771:3;10842:9;;:13;;10797:59;10882:12;;10895:13;;10872:52;;-1:-1:-1;;;;;10882:12:0;;;;10895:13;10920:3;10917:2;10910:9;;:13;;10872:52;10683:398;;;10966:25;:33;;;;;;;11026:13;;11040:20;;11016:53;;-1:-1:-1;;;;;11026:13:0;;;;11040:20;10993:6;11016:9;:53::i;:::-;11122:7;11091:5;:18;11097:11;-1:-1:-1;;;;;11091:18:0;-1:-1:-1;;;;;11091:18:0;;;;;;;;;;;;:30;;:38;;;;11140:10;:23;11151:11;-1:-1:-1;;;;;11140:23:0;-1:-1:-1;;;;;11140:23:0;;;;;;;;;;;;11169:241;;;;;;;;11193:7;11169:241;;;;11202:1;11169:241;;;;11218:15;11169:241;;;;3261:4;11265:2;:11;11249:15;:27;11169:241;;;;11292:15;11169:241;;;;11322:5;11169:241;;;;;;11342:4;11169:241;;;;;;11361:4;11169:241;;;;;;11366:3;11169:241;;;;3261:4;11386:2;:11;11370:15;:27;11169:241;;;;11398:1;11169:241;;;11140:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11426:6;11422:134;11437:1;11435;:3;11422:134;;;11478:20;;11468:75;;-1:-1:-1;;;;;11478:20:0;11499:9;11509:1;11499:12;;;;;;11468:75;11439:3;;11422:134;;22497:903;-1:-1:-1;;;;;22645:17:0;;22568:7;22645:17;;;:10;:17;;;;;:30;;22568:7;;;;22663:11;;22645:30;;;;;;;;;;;;;;;;22619:56;;22686:25;22714:4;-1:-1:-1;;;;;22714:16:0;;22731:5;22714:23;;;;;;;;;;;;;-1:-1:-1;;;;;22714:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22714:23:0;;-1:-1:-1;22764:19:0;;22761:612;;22809:11;3261:4;22844:5;:17;;;22822:5;:19;;;:39;22821:57;;;;;;22809:69;;22903:3;22896:6;:10;22893:38;;;-1:-1:-1;22928:3:0;22893:38;22946:19;23021:5;:18;;;23014:5;23005:6;22981:5;:23;;;22968:5;:12;;;:36;:43;:51;;;;;;22967:72;22946:93;;23076:11;23058:17;:29;23055:127;;;-1:-1:-1;23121:17:0;23055:127;23199:13;;23196:85;;23254:11;23247:18;;23196:85;22761:612;;;;;23342:14;;;:19;;-1:-1:-1;;23342:19:0;;;;;22761:612;-1:-1:-1;23385:6:0;;22497:903;-1:-1:-1;;;;22497:903:0:o;13179:1426::-;-1:-1:-1;;;;;13293:12:0;;;13276:14;13293:12;;;:5;:12;;;;;:21;;;;;;;13325:1273;3218:2;13342:1;:14;;;13325:1273;;;-1:-1:-1;;;;;13380:20:0;;;13377:1210;;13447:9;13457:1;13447:12;;;;;;;;;;;-1:-1:-1;;;;;13423:17:0;;;;;;:9;:17;;;;;:22;:36;13420:1042;;-1:-1:-1;;;;;13504:13:0;;13531:1;13504:13;;;:5;:13;;;;;;;;:26;;:28;13501:942;;13606:14;13646:5;13629:13;13643:1;13629:16;;;;;;;;;;;13621:7;:24;:30;;;;;;13606:45;;13702:25;13728:4;-1:-1:-1;;;;;13728:16:0;;13745:6;13728:24;;;;;;;;;;;;;-1:-1:-1;;;;;13728:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13728:24:0;;-1:-1:-1;13784:19:0;;13781:639;;13882:6;13864:17;:24;13861:143;;;13931:17;13924:24;;13861:143;-1:-1:-1;;;;;14034:13:0;;;;;;;:5;:13;;;;;;;;:25;;;:34;;;;;;14122:25;;:34;;;;;;14188:12;:20;;;;;-1:-1:-1;14188:31:0;:40;;;;;;14269:20;;14259:56;;14269:20;14040:6;14309:5;14304:4;14297:11;;14309:5;14297:17;;;14259:56;14351:40;;;;;;;14386:1;14384:3;;14351:40;;;;;14389:1;14351:40;;;;;;-1:-1:-1;;;;;14351:40:0;;;;;;;;;;;;;;;;;13781:639;13501:942;;;-1:-1:-1;;;;;14489:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;13377:1210;;;14566:5;;13377:1210;13358:3;;13325:1273;;;;13179:1426;;;;:::o;20206:509::-;-1:-1:-1;;;;;20292:12:0;;;20275:14;20292:12;;;:5;:12;;;;;:21;;;;;;;20324:384;3218:2;20343:1;:14;20324:384;;;-1:-1:-1;;;;;20381:20:0;;;20378:319;;20424:5;20431:1;20424:8;20421:85;;;-1:-1:-1;;;;;20481:13:0;;;;;;:5;:13;;;;;:23;;;;20505:1;20481:25;20455:51;;20421:85;20525:20;20538:6;20525:12;:20::i;:::-;20577:3;;-1:-1:-1;;;;;20567:13:0;;;20577:3;;20567:13;20564:23;;;20582:5;;20564:23;-1:-1:-1;;;;;20615:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;20378:319;;;20676:5;;20378:319;20359:3;;20324:384;;14611:2444;-1:-1:-1;;;;;14727:12:0;;;14710:14;14727:12;;;:5;:12;;;;;:21;;;;;;;14710:14;;;;14886:2162;14907:2;14903:1;:6;;;14886:2162;;;-1:-1:-1;;;;;14945:20:0;;;14942:2095;;-1:-1:-1;;;;;14988:17:0;;;;;;:9;:17;;;;;:22;15012:1;14988:25;;:54;;-1:-1:-1;;;;;;15017:17:0;;;;;;:9;:17;;;;;;;;:22;:25;14988:54;14985:1913;;;15070:13;15067:798;;-1:-1:-1;;;;;15136:17:0;;;;;;:9;:17;;;;;;;;:22;:25;15133:418;;;15229:1;15213:17;;15279:1;15261:19;;15322:1;15311:12;;15133:418;;;15429:1;15413:17;;15479:1;15461:19;;15522:1;15511:12;;15133:418;15067:798;;;-1:-1:-1;;;;;15631:17:0;;;;;;:9;:17;;;;;:22;:34;;15628:214;;;15733:17;15717:33;;15789:1;15781:9;;15628:214;15890:17;;15887:992;;16098:24;;;-1:-1:-1;;;16098:24:0;;-1:-1:-1;;;;;16098:24:0;;;;;;;;15935:14;;15974:3;15950:23;;;:27;;15935:14;;16098:4;;:16;;:24;;;;;;;;;;;;;;15935:14;16098:4;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16098:24:0;;-1:-1:-1;16154:19:0;;16151:641;;16252:6;16234:17;:24;16231:143;;;16301:17;16294:24;;16231:143;-1:-1:-1;;;;;16404:13:0;;;;;;;:5;:13;;;;;;;;:27;;;:36;;;;;;16494:25;;:34;;;;;;16560:12;:20;;;;;-1:-1:-1;16560:31:0;:40;;;;;;16641:20;;16631:56;;16641:20;16410:6;16681:5;16676:4;16669:11;;16681:5;16669:17;;;16631:56;16723:40;;;;;;;16758:1;16756:3;;16723:40;;;;;16761:1;16723:40;;;;;;-1:-1:-1;;;;;16723:40:0;;;;;;;;;;;;;;;;;16151:641;16821:7;16830:1;16821:10;:27;;;-1:-1:-1;16845:3:0;;-1:-1:-1;;;;;16835:13:0;;;16845:3;;16835:13;16821:27;16818:37;;;16850:5;;;;16818:37;15887:992;;;-1:-1:-1;;;;;16925:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;14942:2095;;;17016:5;;14942:2095;14911:3;;14886:2162;;;;14611:2444;;;;;;;;:::o;18499:771::-;-1:-1:-1;;;;;18586:12:0;;18563:19;18586:12;;;:5;:12;;;;;;;;:26;;;;18649:27;;;;;18706:9;:16;;;;;:21;18754:1;18741:14;;;;;:31;;;18771:1;18759:11;:13;18741:31;18738:525;;;18828:1;18816:13;;18800;18868:19;18881:5;18868:12;:19::i;:::-;18844:43;;;18902:17;18920:23;18935:5;18941:1;18920:14;:23::i;:::-;18975:19;;;;:9;:19;;;;;:32;;;18902:41;;-1:-1:-1;18961:46:0;;;;;:91;;-1:-1:-1;19022:19:0;;;;:9;:19;;;;;:30;;;19011:41;;;18961:91;18958:162;;;-1:-1:-1;;;;;19072:16:0;;;;;;:9;:16;;;;;:32;;;18958:162;18738:525;;;;;;19166:1;19153:11;:14;;:41;;;;;19187:7;19171:14;:23;;19153:41;:59;;;;-1:-1:-1;19198:14:0;;19153:59;19150:113;;;-1:-1:-1;;;;;;;;19228:16:0;;;;;:9;:16;;;;;19250:1;19228:23;;18499:771::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://8872e2950b2095d404fdb42d9394748065dde607873d43e9d7b09e42ebdf7b58
[ 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.