Amoy Testnet

Token

DWC (DWC)
ERC-20

Overview

Max Total Supply

32,500,000 DWC

Holders

19

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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-13
*/

/**
 *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>=map_ranks[1].activedirect && 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.withdraw_time+=(order.withno)*10*interval;    
            order.withno+=1;
            order.holdingbonus+=dailypayout;              
            users[msg.sender].totalwithdraw+=dailypayout;
            _transfer(communityHoldingFund,msg.sender,dailypayout*1e18/_rate);
            _distributelevelwithdraw(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"}]

60c0604052600360808190526244574360e81b60a090815262000026916001919062000b6c565b506040805180820190915260038082526244574360e81b6020909201918252620000539160029162000b6c565b506a1ae22487c1042af080000060039081556004805460ff19166012179055600d80546001600160a01b0319908116739ed2cfa3ebde315fdbfc60859f093e07a52d131f17909155600e80548216733bb195603e1ec562cfe406047b2718b4226cfa2a179055600f80548216735427f55e590f70be2967a891ea119e66c20262ff17905560108054821673d9845cee17f9aa07c507b6ad55eb93a9ad2221bc90811790915560118054909216179055604080516060810182527353888f004f49e78a41ace9261104956fe8c1199a81527391d1ebdeba71a59661c914c849f9df45c812cfaf602082015273fecc9357583a2f0b8dc62335447e62f5a882477a9181019190915262000168916013919062000bf1565b506040805160a08101825261012c8152603260208201819052918101829052606081018290526080810191909152620001a690601890600562000c4a565b506002601d556001601f55604080516102a0810182526101f4815260c86020808301919091526064928201929092526032606082015260196080820181905260a0820152601460c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200026e9190601562000c81565b50604080516102a0810182526103e88152606460208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526032610160820181905261018082018190526101a082018190526101c082018190526101e0820181905261020082018190526102208201819052610240820181905261026082018190526102808201526200032a90603590601562000c81565b50604080516102a08101825260008152600160208201819052918101919091526002606082018190526080820152600360a0820181905260c0820181905260e08201526004610100820181905261012082015260056101408201819052610160820181905261018082018190526101a082018190526101c082015260066101e082018190526102008201819052610220820181905261024082018190526102608201819052610280820152620003e590604a90601562000cb7565b50348015620003f357600080fd5b506040516200400a3803806200400a833981810160405260208110156200041957600080fd5b5051601280546001600160a01b03199081163317909155600080546001600160a01b0380851691909316178155600f805483168252605f6020908152604080842069152d02c7e14af680000090819055600e54861685528185206a1a60f85d30f2ae7740000090556010548616855281852069021e19e0c9bab24000009055601154861685528185206969e10de76676d0800000905592548151938452905194169360008051602062003fea8339815191529281900390910190a3600e54604080516a1a60f85d30f2ae77400000815290516001600160a01b039092169160009160008051602062003fea833981519152919081900360200190a36010546040805169021e19e0c9bab2400000815290516001600160a01b039092169160009160008051602062003fea833981519152919081900360200190a3601154604080516969e10de76676d0800000815290516001600160a01b039092169160009160008051602062003fea833981519152919081900360200190a36200059c62000ced565b604051806101c001604052806001815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160401b0381118015620005e557600080fd5b5060405190808252806020026020018201604052801562000610578160200160208202803683370190505b508152681b1ae4d6e2ef500000602080830182905260408084019290925260006060808501829052608080860183905260a0860183905260c0860183905260e086018390526101008601839052610120909501829052600d546001600160a01b039081168352600584529184902086518155868401516001820180546001600160a01b031916919094161790925592850151600282015591840151600383015591830151805193945084939192620006d19260048501929091019062000d65565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01559050506006806000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550681b1ae4d6e2ef50000060076000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206000018190555060086000600d60009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020604051806101600160405280681b1ae4d6e2ef50000081526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff02191690831515021790555061010082015181600601556101208201518160070155610140820151816008015550506040518060600160405280600181526020016002815260200160008152506009600060018152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060028152602001600181526020016005815250600960006002815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806003815260200160028152602001600a815250600960006003815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806004815260200160038152602001600d815250600960006004815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806005815260200160048152602001600f8152506009600060058152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060068152602001600581526020016012815250600960006006815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505069021e19e0c9bab2400000600a8190555069021e19e0c9bab2400000600b8190555042601e81905550505062000df4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000baf57805160ff191683800117855562000bdf565b8280016001018555821562000bdf579182015b8281111562000bdf57825182559160200191906001019062000bc2565b5062000bed92915062000dbc565b5090565b826005810192821562000c3c579160200282015b8281111562000c3c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c05565b5062000bed92915062000dd3565b826005810192821562000bdf579160200282015b8281111562000bdf578251829061ffff1690559160200191906001019062000c5e565b826015810192821562000bdf579160200282018281111562000bdf578251829061ffff1690559160200191906001019062000c5e565b826015810192821562000bdf579160200282015b8281111562000bdf578251829060ff1690559160200191906001019062000ccb565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805482825590600052602060002090810192821562000c3c579160200282018281111562000c3c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000c05565b5b8082111562000bed576000815560010162000dbd565b5b8082111562000bed5780546001600160a01b031916815560010162000dd4565b6131e68062000e046000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c8063517999bc11610146578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107bb578063de6b8a2e146107e9578063f4b9fa751461080f578063f571545b14610817578063fa96bd9c1461081f578063fcd3533c146108455761025e565b8063a87430ba1461069c578063a9059cbb1461072f578063b6b55f251461075b578063b842f3b614610778578063d9f01b7d146107955761025e565b806371c757ec1161010a57806371c757ec146106195780637fe0c526146106585780639351a77a1461068457806395d89b411461068c578063a8365d16146106945761025e565b8063517999bc1461054057806358cbcb7c1461054857806360a1cbd714610565578063665a11ca146105eb57806370a08231146105f35761025e565b806323b872dd116101df5780634420e486116101a35780634420e486146104b657806345653a6d146104dc5780634bdf3bf2146104e45780634c0cc3661461050a5780634d79348a14610512578063509222cd1461051a5761025e565b806323b872dd146104175780632f0577291461044d578063313ce5671461046a578063348d44871461048857806338c87f1a146104905761025e565b806310d931011161022657806310d93101146103ae57806318160ddd146103cb57806320bdc7c7146103d3578063222f6182146103db5780632280b7a8146103fa5761025e565b806302fd7a031461026357806306fdde0314610292578063095ea7b31461030f57806309be84681461034f5780630f3223731461038a575b600080fd5b6102806004803603602081101561027957600080fd5b5035610871565b60408051918252519081900360200190f35b61029a610896565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d45781810151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033b6004803603604081101561032557600080fd5b506001600160a01b038135169060200135610923565b604080519115158252519081900360200190f35b61036c6004803603602081101561036557600080fd5b5035610989565b60408051938452602084019290925282820152519081900360600190f35b6103926109aa565b604080516001600160a01b039092168252519081900360200190f35b610392600480360360208110156103c457600080fd5b50356109b9565b6102806109d6565b6102806109dc565b6103f8600480360360208110156103f157600080fd5b50356109e2565b005b6103f86004803603602081101561041057600080fd5b5035610c5e565b61033b6004803603606081101561042d57600080fd5b506001600160a01b03813581169160208101359091169060400135610f8d565b6103f86004803603602081101561046357600080fd5b5035610ffc565b61047261111a565b6040805160ff9092168252519081900360200190f35b610280611123565b6103f8600480360360208110156104a657600080fd5b50356001600160a01b0316611129565b6103f8600480360360208110156104cc57600080fd5b50356001600160a01b03166111cd565b6103926111da565b610280600480360360208110156104fa57600080fd5b50356001600160a01b03166111e9565b610280611362565b610280611368565b61033b6004803603602081101561053057600080fd5b50356001600160a01b031661136e565b61039261138b565b6102806004803603602081101561055e57600080fd5b503561139a565b6105916004803603604081101561057b57600080fd5b506001600160a01b0381351690602001356113b6565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b610392611432565b6102806004803603602081101561060957600080fd5b50356001600160a01b0316611441565b61063f6004803603602081101561062f57600080fd5b50356001600160a01b0316611453565b6040805192835260208301919091528051918290030190f35b6102806004803603604081101561066e57600080fd5b506001600160a01b038135169060200135611502565b610392611599565b61029a6115a8565b610392611600565b6106c2600480360360208110156106b257600080fd5b50356001600160a01b031661160f565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b61033b6004803603604081101561074557600080fd5b506001600160a01b038135169060200135611680565b6103f86004803603602081101561077157600080fd5b5035611715565b6103f86004803603602081101561078e57600080fd5b5035611890565b610280600480360360208110156107ab57600080fd5b50356001600160a01b0316611a1b565b610280600480360360408110156107d157600080fd5b506001600160a01b0381358116916020013516611a2d565b610280600480360360208110156107ff57600080fd5b50356001600160a01b0316611a4a565b610392611a65565b610280611a74565b61063f6004803603602081101561083557600080fd5b50356001600160a01b0316611a93565b61033b6004803603604081101561085b57600080fd5b50803590602001356001600160a01b0316611aac565b600061087b611a74565b82670de0b6b3a7640000028161088d57fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b820191906000526020600020905b8154815290600101906020018083116108fe57829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109c657fe5b01546001600160a01b0316905081565b60035481565b600c5481565b6109eb3361136e565b610a265760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b610a2f33611129565b336000908152600860205260408120805482919084908110610a4d57fe5b60009182526020909120600990910201600581015490915060ff16610c595780600301544210158015610a87575060038101546102580142105b15610a955760019150610a9a565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b505050506040513d6020811015610b2357600080fd5b505033600090815260086020526040902080546001919085908110610b4457fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b77906002905b04610871565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c0957600a80546064605a84028190049091018255600f54600e54610be2936001600160a01b039283169392909116919085025b04611b08565b600f54601054610c04916001600160a01b0390811691166064605a8502610bdc565b610c2f565b600a80548290039055601054600e54610c2f916001600160a01b03908116911683611b08565b82610c5757426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610c845750600e546001600160a01b03163314155b8015610c9b57506010546001600160a01b03163314155b610cdc576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d40576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d725750600c546a084595161401484a000000035b8015610e8c57808303610d848161139a565b600a805483019055600b805482900390559250610da08161139a565b601054909350610dbb9033906001600160a01b031683611b08565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5050600c805483019055610e4e3383611b99565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f4e565b610e958361139a565b600a805485019055600b805482900390559150610eb18361139a565b601054909250610ecc9033906001600160a01b031685611b08565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fbd57600080fd5b610fc8338484611b08565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061100782610871565b600e549091506110229033906001600160a01b031683611b08565b33600090815260056020526040902060060154600290920291821080159061105357506802b5e3af16b18800008210155b801561106857506802b5e3af16b18800008206155b801561107e575069010f0cf064dd592000008211155b6110bf576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110c83361136e565b6111035760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b61110c33611129565b6111163383611cb9565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b038216600090815260086020526040902054811015611116576001600160a01b038216600090815260086020526040812080548390811061117057fe5b60009182526020909120600990910201600581015490915060ff161580156111a157506005810154610100900460ff165b156111c4576003810154610258014211156111c45760058101805461ff00191690555b5060010161112c565b6111d73382612003565b50565b6012546001600160a01b031681565b60006111f482611129565b6001600160a01b038216600090815260066020526040902054158061123157506001600160a01b0382166000908152600660205260409020546001145b1561125f57506001600160a01b03811660009081526007602052604090206001810154905460020203610891565b6001600160a01b0382166000908152600660205260409020546002148061129e57506001600160a01b0382166000908152600660205260409020546003145b156112cc57506001600160a01b03811660009081526007602052604090206001810154905460030203610891565b6001600160a01b0382166000908152600660205260409020546004148061130b57506001600160a01b0382166000908152600660205260409020546005145b1561133957506001600160a01b03811660009081526007602052604090206001810154905460040203610891565b506001600160a01b03811660009081526007602052604090206001810154905460050203610891565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113ad611a74565b83028161088d57fe5b600860205281600052604060002081815481106113cf57fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b0387166000908152600560205260409020600401548110156114f3576001600160a01b038716600090815260056020819052604082206004018054839190859081106114aa57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030154928301600190810193019050848111156114ea578094505b5060010161145b565b50919350508290039050915091565b600080805b6001600160a01b038516600090815260056020526040902060040154811015611591576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061155857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205410611589576001820191505b600101611507565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906116a95750600e546001600160a01b03163314155b80156116c057506010546001600160a01b03163314155b611701576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c338484611b08565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050506040513d602081101561179a57600080fd5b50503360009081526005602052604090206006015460029091029081108015906117cd57506802b5e3af16b18800008110155b80156117e257506802b5e3af16b18800008106155b80156117f8575069010f0cf064dd592000008111155b611839576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6118423361136e565b61187d5760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b61188633611129565b6111d733826122cc565b3360009081526008602052604081208054839081106118ab57fe5b906000526020600020906009020190508060050160019054906101000a900460ff1680156118dd5750600581015460ff165b80156118ec5750428160070154105b156111165760006118fd3384612639565b90506000611909611a74565b33600081815260056020908152604080832060088101805489019055600c0180548801905560078252918290206001908101805488019055825187815291820181905281830152905192935090918291600080516020613191833981519152919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e546119d4916001600160a01b039091169083670de0b6b3a7640000860281610bdc57fe5b6119df338383612777565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611a8d57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611afe576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c8284611b99565b6001600160a01b0383166000908152605f6020526040902054811115611b2d57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611bde5760405162461bcd60e51b815260040180806020018281038252602181526020018061314d6021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611c365760405162461bcd60e51b815260040180806020018281038252602281526020018061312b6022913960400191505060405180910390fd5b816003541015611c8d576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611d5c576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611d57903390612996565b611d67565b611d67336000612996565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611d9f611a74565b90506000611dae600285610b71565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fa057600e54611f98906001600160a01b031660138360058110611f6f57fe5b01546001600160a01b031661271060188560058110611f8a57fe5b0154866002020281610bdc57fe5b600101611f49565b50611fac858584612a53565b611fb7858584612c61565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b61200c8261136e565b1561204c576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6120558161136e565b61209c576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6120a461302e565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156120ed57600080fd5b50604051908082528060200260200182016040528015612117578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906121e99291906130a6565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461236f576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b0319169286169290921790915561236a903390612996565b61237a565b61237a336000612996565b6001600160a01b03831660009081526005602081815260408084209092018054860190556007905281208054840190556123b2611a74565b905060006123c1600285610b71565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161244c57600a80546064605a84028190049091018255600f54600e54612425936001600160a01b03928316939290911691908502610bdc565b600f54601054612447916001600160a01b0390811691166064605a8502610bdc565b612472565b600a80548290039055601054600e54612472916001600160a01b03908116911683611b08565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fa057600e54612631906001600160a01b031660138360058110611f6f57fe5b60010161260b565b6001600160a01b03821660009081526008602052604081208054829182918590811061266157fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b1580156126c257600080fd5b505af11580156126d6573d6000803e3d6000fd5b505050506040513d60208110156126ec57600080fd5b50519050801561275b57600061012c83600401548460070154038161270d57fe5b04905060c881111561271d575060c85b60008360010154612710838660060154876000015402028161273b57fe5b040390508083101561274a5750815b8015612754578094505b505061276d565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff16101561298f576001600160a01b0382161561298257604a8160ff16601581106127c457fe5b01546001600160a01b0383166000908152600660205260409020541061295c576001600160a01b038216600090815260056020819052604090912001541561295c57600061271060358360ff166015811061281b57fe5b015486028161282657fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561287a57600080fd5b505af115801561288e573d6000803e3d6000fd5b505050506040513d60208110156128a457600080fd5b50519050801561295957818110156128ba578091505b6001600160a01b038085166000908152600560209081526040808320600b8101805488019055600c0180548701905560079091529020600101805484019055600e5461291591168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260048183015290516001600160a01b03808a1692908716916000805160206131918339815191529181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612987565b61298f565b600101612799565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c57576001600160a01b03821615612a465782600114156129fc576001600160a01b0382166000908152600560205260409020600301805460010190555b612a0582612efa565b600d546001600160a01b0383811691161415612a2057610c57565b6001600160a01b0391821660009081526005602052604090206001015490911690612a4b565b610c57565b6001016129b8565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff16101561298f576001600160a01b0382161561298257604a8160ff1660158110612aa057fe5b01546001600160a01b03831660009081526006602052604090205410612c38576001600160a01b0382166000908152600560208190526040909120015415612c3857600061271060208360ff1660158110612af757fe5b0154860281612b0257fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612b5657600080fd5b505af1158015612b6a573d6000803e3d6000fd5b505050506040513d6020811015612b8057600080fd5b505190508015612c355781811015612b96578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612bf191168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716916000805160206131918339815191529181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690600101612a75565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612eef576001600160a01b03861615612ee2576001600160a01b03861660009081526006602052604090205460051480612ce257506001600160a01b038616600090815260066020819052604090912054145b15612ebc5784612d31576001600160a01b0386166000908152600660208190526040909120541415612d1f57600292506001915060059450612d2c565b6001925060029150600694505b612d59565b6001600160a01b038616600090815260066020526040902054851415612d5957819250600193505b8215612ebc57604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612db257600080fd5b505af1158015612dc6573d6000803e3d6000fd5b505050506040513d6020811015612ddc57600080fd5b505190508015612e915781811015612df2578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612e4d9116898b670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16916000805160206131918339815191529181900360600190a35b8560011480612ead5750600d546001600160a01b038981169116145b15612eb9575050612eef565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612ee7565b612eef565b600101612c87565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612f395750600681105b15612fbb57600181016000612f4d86611453565b9150506000612f5d876001611502565b6000848152600960205260409020600101549091508110801590612f9257506000838152600960205260409020600201548210155b15612fb3576001600160a01b03871660009081526006602052604090208390555b505050610c57565b600160005260096020527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a37548310801590612fff5750683635c9adc5dea000008210155b8015613009575080155b15610c57575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156130fb579160200282015b828111156130fb57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906130c6565b5061310792915061310b565b5090565b5b808211156131075780546001600160a01b031916815560010161310c56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ed37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712a2646970667358221220274785b0efdb459e38de7e66e8a112c8869068947da26d8fcdfed1c4183c13c864736f6c634300060c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025e5760003560e01c8063517999bc11610146578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e146107bb578063de6b8a2e146107e9578063f4b9fa751461080f578063f571545b14610817578063fa96bd9c1461081f578063fcd3533c146108455761025e565b8063a87430ba1461069c578063a9059cbb1461072f578063b6b55f251461075b578063b842f3b614610778578063d9f01b7d146107955761025e565b806371c757ec1161010a57806371c757ec146106195780637fe0c526146106585780639351a77a1461068457806395d89b411461068c578063a8365d16146106945761025e565b8063517999bc1461054057806358cbcb7c1461054857806360a1cbd714610565578063665a11ca146105eb57806370a08231146105f35761025e565b806323b872dd116101df5780634420e486116101a35780634420e486146104b657806345653a6d146104dc5780634bdf3bf2146104e45780634c0cc3661461050a5780634d79348a14610512578063509222cd1461051a5761025e565b806323b872dd146104175780632f0577291461044d578063313ce5671461046a578063348d44871461048857806338c87f1a146104905761025e565b806310d931011161022657806310d93101146103ae57806318160ddd146103cb57806320bdc7c7146103d3578063222f6182146103db5780632280b7a8146103fa5761025e565b806302fd7a031461026357806306fdde0314610292578063095ea7b31461030f57806309be84681461034f5780630f3223731461038a575b600080fd5b6102806004803603602081101561027957600080fd5b5035610871565b60408051918252519081900360200190f35b61029a610896565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d45781810151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033b6004803603604081101561032557600080fd5b506001600160a01b038135169060200135610923565b604080519115158252519081900360200190f35b61036c6004803603602081101561036557600080fd5b5035610989565b60408051938452602084019290925282820152519081900360600190f35b6103926109aa565b604080516001600160a01b039092168252519081900360200190f35b610392600480360360208110156103c457600080fd5b50356109b9565b6102806109d6565b6102806109dc565b6103f8600480360360208110156103f157600080fd5b50356109e2565b005b6103f86004803603602081101561041057600080fd5b5035610c5e565b61033b6004803603606081101561042d57600080fd5b506001600160a01b03813581169160208101359091169060400135610f8d565b6103f86004803603602081101561046357600080fd5b5035610ffc565b61047261111a565b6040805160ff9092168252519081900360200190f35b610280611123565b6103f8600480360360208110156104a657600080fd5b50356001600160a01b0316611129565b6103f8600480360360208110156104cc57600080fd5b50356001600160a01b03166111cd565b6103926111da565b610280600480360360208110156104fa57600080fd5b50356001600160a01b03166111e9565b610280611362565b610280611368565b61033b6004803603602081101561053057600080fd5b50356001600160a01b031661136e565b61039261138b565b6102806004803603602081101561055e57600080fd5b503561139a565b6105916004803603604081101561057b57600080fd5b506001600160a01b0381351690602001356113b6565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945291151560a0880152151560c0870152151560e086015261010085015261012084015261014083015251908190036101600190f35b610392611432565b6102806004803603602081101561060957600080fd5b50356001600160a01b0316611441565b61063f6004803603602081101561062f57600080fd5b50356001600160a01b0316611453565b6040805192835260208301919091528051918290030190f35b6102806004803603604081101561066e57600080fd5b506001600160a01b038135169060200135611502565b610392611599565b61029a6115a8565b610392611600565b6106c2600480360360208110156106b257600080fd5b50356001600160a01b031661160f565b604080519d8e526001600160a01b03909c1660208e01528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b61033b6004803603604081101561074557600080fd5b506001600160a01b038135169060200135611680565b6103f86004803603602081101561077157600080fd5b5035611715565b6103f86004803603602081101561078e57600080fd5b5035611890565b610280600480360360208110156107ab57600080fd5b50356001600160a01b0316611a1b565b610280600480360360408110156107d157600080fd5b506001600160a01b0381358116916020013516611a2d565b610280600480360360208110156107ff57600080fd5b50356001600160a01b0316611a4a565b610392611a65565b610280611a74565b61063f6004803603602081101561083557600080fd5b50356001600160a01b0316611a93565b61033b6004803603604081101561085b57600080fd5b50803590602001356001600160a01b0316611aac565b600061087b611a74565b82670de0b6b3a7640000028161088d57fe5b0490505b919050565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b820191906000526020600020905b8154815290600101906020018083116108fe57829003601f168201915b505050505081565b3360008181526060602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60096020526000908152604090208054600182015460029092015490919083565b6011546001600160a01b031681565b601381600581106109c657fe5b01546001600160a01b0316905081565b60035481565b600c5481565b6109eb3361136e565b610a265760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b610a2f33611129565b336000908152600860205260408120805482919084908110610a4d57fe5b60009182526020909120600990910201600581015490915060ff16610c595780600301544210158015610a87575060038101546102580142105b15610a955760019150610a9a565b600091505b600080548254604080516323b872dd60e01b815233600482015230602482015260029092046044830152516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b505050506040513d6020811015610b2357600080fd5b505033600090815260086020526040902080546001919085908110610b4457fe5b60009182526020822060099190910201600501805460ff1916921515929092179091558154610b77906002905b04610871565b8254600b805460029092049091019055600f546001600160a01b03166000908152605f60205260409020549091508111610c0957600a80546064605a84028190049091018255600f54600e54610be2936001600160a01b039283169392909116919085025b04611b08565b600f54601054610c04916001600160a01b0390811691166064605a8502610bdc565b610c2f565b600a80548290039055601054600e54610c2f916001600160a01b03908116911683611b08565b82610c5757426004830181905561177001600783015560058201805461ff0019166101001790555b505b505050565b600f546001600160a01b03163314801590610c845750600e546001600160a01b03163314155b8015610c9b57506010546001600160a01b03163314155b610cdc576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b336000908152605f6020526040812054821115610d40576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365210000000000604482015290519081900360640190fd5b600c5460646002840204906a084595161401484a0000009082011115610d725750600c546a084595161401484a000000035b8015610e8c57808303610d848161139a565b600a805483019055600b805482900390559250610da08161139a565b601054909350610dbb9033906001600160a01b031683611b08565b600080546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5050600c805483019055610e4e3383611b99565b60408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350610f4e565b610e958361139a565b600a805485019055600b805482900390559150610eb18361139a565b601054909250610ecc9033906001600160a01b031685611b08565b600080546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169263a9059cbb926044808401936020939083900390910190829087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b50505b6040805184815260208101849052815133927f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a758928290030190a2505050565b6001600160a01b0383166000908152606060209081526040808320338452909152812054821115610fbd57600080fd5b610fc8338484611b08565b506001600160a01b038316600090815260606020908152604080832033845290915290208054829003905560019392505050565b600061100782610871565b600e549091506110229033906001600160a01b031683611b08565b33600090815260056020526040902060060154600290920291821080159061105357506802b5e3af16b18800008210155b801561106857506802b5e3af16b18800008206155b801561107e575069010f0cf064dd592000008211155b6110bf576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6110c83361136e565b6111035760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b61110c33611129565b6111163383611cb9565b5050565b60045460ff1681565b601d5481565b60005b6001600160a01b038216600090815260086020526040902054811015611116576001600160a01b038216600090815260086020526040812080548390811061117057fe5b60009182526020909120600990910201600581015490915060ff161580156111a157506005810154610100900460ff165b156111c4576003810154610258014211156111c45760058101805461ff00191690555b5060010161112c565b6111d73382612003565b50565b6012546001600160a01b031681565b60006111f482611129565b6001600160a01b038216600090815260066020526040902054158061123157506001600160a01b0382166000908152600660205260409020546001145b1561125f57506001600160a01b03811660009081526007602052604090206001810154905460020203610891565b6001600160a01b0382166000908152600660205260409020546002148061129e57506001600160a01b0382166000908152600660205260409020546003145b156112cc57506001600160a01b03811660009081526007602052604090206001810154905460030203610891565b6001600160a01b0382166000908152600660205260409020546004148061130b57506001600160a01b0382166000908152600660205260409020546005145b1561133957506001600160a01b03811660009081526007602052604090206001810154905460040203610891565b506001600160a01b03811660009081526007602052604090206001810154905460050203610891565b600b5481565b600a5481565b6001600160a01b0316600090815260056020526040902054151590565b600d546001600160a01b031681565b6000670de0b6b3a76400006113ad611a74565b83028161088d57fe5b600860205281600052604060002081815481106113cf57fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015496995094975092959194909360ff80851694610100810482169462010000909104909116928b565b6010546001600160a01b031681565b605f6020526000908152604090205481565b600080808080805b6001600160a01b0387166000908152600560205260409020600401548110156114f3576001600160a01b038716600090815260056020819052604082206004018054839190859081106114aa57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030154928301600190810193019050848111156114ea578094505b5060010161145b565b50919350508290039050915091565b600080805b6001600160a01b038516600090815260056020526040902060040154811015611591576001600160a01b03851660009081526005602052604081206004018054869260069290918590811061155857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205410611589576001820191505b600101611507565b509392505050565b600f546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561091b5780601f106108f05761010080835404028352916020019161091b565b600e546001600160a01b031681565b60056020819052600091825260409091208054600182015460028301546003840154948401546006850154600786015460088701546009880154600a890154600b8a0154600c8b0154600d909b0154999b6001600160a01b039099169a97999697959694959394929391929091908d565b600f546000906001600160a01b031633148015906116a95750600e546001600160a01b03163314155b80156116c057506010546001600160a01b03163314155b611701576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c338484611b08565b50600192915050565b60008054604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216926323b872dd926064808401936020939083900390910190829087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050506040513d602081101561179a57600080fd5b50503360009081526005602052604090206006015460029091029081108015906117cd57506802b5e3af16b18800008110155b80156117e257506802b5e3af16b18800008106155b80156117f8575069010f0cf064dd592000008111155b611839576040805162461bcd60e51b815260206004820152600d60248201526c3632b9b9903a3430b71036b4b760991b604482015290519081900360640190fd5b6118423361136e565b61187d5760405162461bcd60e51b815260040180806020018281038252602381526020018061316e6023913960400191505060405180910390fd5b61188633611129565b6111d733826122cc565b3360009081526008602052604081208054839081106118ab57fe5b906000526020600020906009020190508060050160019054906101000a900460ff1680156118dd5750600581015460ff165b80156118ec5750428160070154105b156111165760006118fd3384612639565b90506000611909611a74565b33600081815260056020908152604080832060088101805489019055600c0180548801905560078252918290206001908101805488019055825187815291820181905281830152905192935090918291600080516020613191833981519152919081900360600190a3600883018054600785018054610bb8830201905560019081019091558301805483019055336000818152600560205260409020600d01805484019055600e546119d4916001600160a01b039091169083670de0b6b3a7640000860281610bdc57fe5b6119df338383612777565b60408051838152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250505050565b60066020526000908152604090205481565b606060209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031681565b6000600a54600b54670de0b6b3a76400000281611a8d57fe5b04905090565b6007602052600090815260409020805460019091015482565b600f546000906001600160a01b03163314611afe576040805162461bcd60e51b815260206004820152600d60248201526c1058d8d95cdcc811195b9a5959609a1b604482015290519081900360640190fd5b61170c8284611b99565b6001600160a01b0383166000908152605f6020526040902054811115611b2d57600080fd5b6001600160a01b038084166000818152605f6020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050565b6001600160a01b038216611bde5760405162461bcd60e51b815260040180806020018281038252602181526020018061314d6021913960400191505060405180910390fd5b6001600160a01b0382166000908152605f602052604090205481811015611c365760405162461bcd60e51b815260040180806020018281038252602281526020018061312b6022913960400191505060405180910390fd5b816003541015611c8d576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420616d6f756e74206f6620746f6b656e732100000000000000604482015290519081900360640190fd5b6001600160a01b039092166000908152605f602052604090209181900390915560038054919091039055565b6001600160a01b0380831660008181526005602081905260408083206001810154909516808452908320600701805487019055929091529190910154611d5c576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b03191692861692909217909155611d57903390612996565b611d67565b611d67336000612996565b6001600160a01b0383166000908152600560208181526040808420909201805486019055600790528120805484019055611d9f611a74565b90506000611dae600285610b71565b90508360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fa057600e54611f98906001600160a01b031660138360058110611f6f57fe5b01546001600160a01b031661271060188560058110611f8a57fe5b0154866002020281610bdc57fe5b600101611f49565b50611fac858584612a53565b611fb7858584612c61565b6040805185815260028302602082015281516001600160a01b038816927f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15928290030190a25050505050565b61200c8261136e565b1561204c576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6120558161136e565b61209c576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b6120a461302e565b604051806101c00160405280601d548152602001836001600160a01b031681526020016000815260200160008152602001600067ffffffffffffffff811180156120ed57600080fd5b50604051908082528060200260200182016040528015612117578160200160208202803683370190505b5081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003015560808201518160040190805190602001906121e99291906130a6565b5060a082015160058281019190915560c0830151600683015560e0830151600783015561010083015160088301556101208301516009830155610140830151600a830155610160830151600b830155610180830151600c8301556101a090920151600d909101556001600160a01b03848116600081815260209384526040808220600180820180546001600160a01b031916968a169687179055601d805490910190555484835291819020548151908152905191947f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a92918290030190a4505050565b6001600160a01b038083166000818152600560208190526040808320600181015490951680845290832060070180548701905592909152919091015461236f576001600160a01b03818116600090815260056020908152604082206002810180546001908101909155600490910180548083018255908452919092200180546001600160a01b0319169286169290921790915561236a903390612996565b61237a565b61237a336000612996565b6001600160a01b03831660009081526005602081815260408084209092018054860190556007905281208054840190556123b2611a74565b905060006123c1600285610b71565b600b805460028704019055600f546001600160a01b03166000908152605f6020526040902054909150811161244c57600a80546064605a84028190049091018255600f54600e54612425936001600160a01b03928316939290911691908502610bdc565b600f54601054612447916001600160a01b0390811691166064605a8502610bdc565b612472565b600a80548290039055601054600e54612472916001600160a01b03908116911683611b08565b8360056000876001600160a01b03166001600160a01b031681526020019081526020016000206006018190555060086000866001600160a01b03166001600160a01b031681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160038152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015611fa057600e54612631906001600160a01b031660138360058110611f6f57fe5b60010161260b565b6001600160a01b03821660009081526008602052604081208054829182918590811061266157fe5b906000526020600020906009020190506000306001600160a01b0316634bdf3bf2876040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b1580156126c257600080fd5b505af11580156126d6573d6000803e3d6000fd5b505050506040513d60208110156126ec57600080fd5b50519050801561275b57600061012c83600401548460070154038161270d57fe5b04905060c881111561271d575060c85b60008360010154612710838660060154876000015402028161273b57fe5b040390508083101561274a5750815b8015612754578094505b505061276d565b60058201805461ff0019166101001790555b5090949350505050565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff16101561298f576001600160a01b0382161561298257604a8160ff16601581106127c457fe5b01546001600160a01b0383166000908152600660205260409020541061295c576001600160a01b038216600090815260056020819052604090912001541561295c57600061271060358360ff166015811061281b57fe5b015486028161282657fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561287a57600080fd5b505af115801561288e573d6000803e3d6000fd5b505050506040513d60208110156128a457600080fd5b50519050801561295957818110156128ba578091505b6001600160a01b038085166000908152600560209081526040808320600b8101805488019055600c0180548701905560079091529020600101805484019055600e5461291591168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260048183015290516001600160a01b03808a1692908716916000805160206131918339815191529181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690612987565b61298f565b600101612799565b5050505050565b6001600160a01b03808316600090815260056020526040812060010154909116905b6015811015610c57576001600160a01b03821615612a465782600114156129fc576001600160a01b0382166000908152600560205260409020600301805460010190555b612a0582612efa565b600d546001600160a01b0383811691161415612a2057610c57565b6001600160a01b0391821660009081526005602052604090206001015490911690612a4b565b610c57565b6001016129b8565b6001600160a01b03808416600090815260056020526040812060010154909116905b60158160ff16101561298f576001600160a01b0382161561298257604a8160ff1660158110612aa057fe5b01546001600160a01b03831660009081526006602052604090205410612c38576001600160a01b0382166000908152600560208190526040909120015415612c3857600061271060208360ff1660158110612af757fe5b0154860281612b0257fe5b0490506000306001600160a01b0316634bdf3bf2856040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612b5657600080fd5b505af1158015612b6a573d6000803e3d6000fd5b505050506040513d6020811015612b8057600080fd5b505190508015612c355781811015612b96578091505b6001600160a01b03808516600090815260056020908152604080832060098101805488019055600c0180548701905560079091529020600101805484019055600e54612bf191168587670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260028183015290516001600160a01b03808a1692908716916000805160206131918339815191529181900360600190a35b50505b6001600160a01b0391821660009081526005602052604090206001015490911690600101612a75565b6001600160a01b0380841660009081526005602052604081206001015490911690808080805b60328160ff161015612eef576001600160a01b03861615612ee2576001600160a01b03861660009081526006602052604090205460051480612ce257506001600160a01b038616600090815260066020819052604090912054145b15612ebc5784612d31576001600160a01b0386166000908152600660208190526040909120541415612d1f57600292506001915060059450612d2c565b6001925060029150600694505b612d59565b6001600160a01b038616600090815260066020526040902054851415612d5957819250600193505b8215612ebc57604080516325ef9df960e11b81526001600160a01b038816600482015290516000946064908b02049185913091634bdf3bf291602480830192602092919082900301818787803b158015612db257600080fd5b505af1158015612dc6573d6000803e3d6000fd5b505050506040513d6020811015612ddc57600080fd5b505190508015612e915781811015612df2578091505b6001600160a01b038089166000908152600560209081526040808320600a8101805488019055600c0180548701905560079091529020600101805484019055600e54612e4d9116898b670de0b6b3a7640000860281610bdc57fe5b6040805183815260ff6001860116602082015260038183015290516001600160a01b03808e1692908b16916000805160206131918339815191529181900360600190a35b8560011480612ead5750600d546001600160a01b038981169116145b15612eb9575050612eef565b50505b6001600160a01b0395861660009081526005602052604090206001015490951694612ee7565b612eef565b600101612c87565b505050505050505050565b6001600160a01b03811660009081526005602090815260408083206002810154600790910154600690935292205460018110801590612f395750600681105b15612fbb57600181016000612f4d86611453565b9150506000612f5d876001611502565b6000848152600960205260409020600101549091508110801590612f9257506000838152600960205260409020600201548210155b15612fb3576001600160a01b03871660009081526006602052604090208390555b505050610c57565b600160005260096020527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a37548310801590612fff5750683635c9adc5dea000008210155b8015613009575080155b15610c57575050506001600160a01b0316600090815260066020526040902060019055565b604051806101c001604052806000815260200160006001600160a01b031681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156130fb579160200282015b828111156130fb57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906130c6565b5061310792915061310b565b5090565b5b808211156131075780546001600160a01b031916815560010161310c56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ed37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb712a2646970667358221220274785b0efdb459e38de7e66e8a112c8869068947da26d8fcdfed1c4183c13c864736f6c634300060c0033

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

822:26762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20827:134;;;;;;;;;;;;;;;;-1:-1:-1;20827:134:0;;:::i;:::-;;;;;;;;;;;;;;;;872:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26408:216;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26408:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2321:36;;;;;;;;;;;;;;;;-1:-1:-1;2321:36:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2901:67;;;:::i;:::-;;;;-1:-1:-1;;;;;2901:67:0;;;;;;;;;;;;;;3004:158;;;;;;;;;;;;;;;;-1:-1:-1;3004:158:0;;:::i;940:43::-;;;:::i;2557:25::-;;;:::i;8575:1392::-;;;;;;;;;;;;;;;;-1:-1:-1;8575:1392:0;;:::i;:::-;;24495:1373;;;;;;;;;;;;;;;;-1:-1:-1;24495:1373:0;;:::i;26634:274::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26634:274:0;;;;;;;;;;;;;;;;;:::i;8060:509::-;;;;;;;;;;;;;;;;-1:-1:-1;8060:509:0;;:::i;1009:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3226;;;:::i;21939:402::-;;;;;;;;;;;;;;;;-1:-1:-1;21939:402:0;-1:-1:-1;;;;;21939:402:0;;:::i;6523:121::-;;;;;;;;;;;;;;;;-1:-1:-1;6523:121:0;-1:-1:-1;;;;;6523:121:0;;:::i;2975:22::-;;;:::i;21242:691::-;;;;;;;;;;;;;;;;-1:-1:-1;21242:691:0;-1:-1:-1;;;;;21242:691:0;;:::i;2512:38::-;;;:::i;2465:40::-;;;:::i;22352:110::-;;;;;;;;;;;;;;;;-1:-1:-1;22352:110:0;-1:-1:-1;;;;;22352:110:0;;:::i;2589:61::-;;;:::i;20967:126::-;;;;;;;;;;;;;;;;-1:-1:-1;20967:126:0;;:::i;2265:49::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2265:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2823:71;;;:::i;4385:44::-;;;;;;;;;;;;;;;;-1:-1:-1;4385:44:0;-1:-1:-1;;;;;4385:44:0;;:::i;19379:561::-;;;;;;;;;;;;;;;;-1:-1:-1;19379:561:0;-1:-1:-1;;;;;19379:561:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19946:357;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19946:357:0;;;;;;;;:::i;2742:70::-;;;:::i;905:28::-;;;:::i;2657:78::-;;;:::i;2111:37::-;;;;;;;;;;;;;;;;-1:-1:-1;2111:37:0;-1:-1:-1;;;;;2111:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2111:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25874:281;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25874:281:0;;;;;;;;:::i;7597:457::-;;;;;;;;;;;;;;;;-1:-1:-1;7597:457:0;;:::i;23509:980::-;;;;;;;;;;;;;;;;-1:-1:-1;23509:980:0;;:::i;2155:45::-;;;;;;;;;;;;;;;;-1:-1:-1;2155:45:0;-1:-1:-1;;;;;2155:45:0;;:::i;4436:64::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4436:64:0;;;;;;;;;;:::i;22472:120::-;;;;;;;;;;;;;;;;-1:-1:-1;22472:120:0;-1:-1:-1;;;;;22472:120:0;;:::i;848:17::-;;;:::i;21105:131::-;;;:::i;2207:51::-;;;;;;;;;;;;;;;;-1:-1:-1;2207:51:0;-1:-1:-1;;;;;2207:51:0;;:::i;26920:199::-;;;;;;;;;;;;;;;;-1:-1:-1;26920:199:0;;;;;;-1:-1:-1;;;;;26920:199:0;;:::i;20827:134::-;20889:7;20937:10;:8;:10::i;:::-;20921;20932:4;20921:15;:26;;;;;;20914:33;;20827:134;;;;:::o;872:26::-;;;;;;;;;;;;;;;-1:-1:-1;;872:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26408:216::-;26510:10;26475:12;26500:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;26500:31:0;;;;;;;;;;;:40;;;26556:38;;;;;;;26475:12;;26500:31;;26510:10;;26556:38;;;;;;;;-1:-1:-1;26612:4:0;26408:216;;;;:::o;2321:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2901:67::-;;;-1:-1:-1;;;;;2901:67:0;;:::o;3004:158::-;;;;;;;;;;;;-1:-1:-1;;;;;3004:158:0;;-1:-1:-1;3004:158:0;:::o;940:43::-;;;;:::o;2557:25::-;;;;:::o;8575:1392::-;8639:24;8652:10;8639:12;:24::i;:::-;8631:72;;;;-1:-1:-1;;;8631:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8714:28;8731:10;8714:16;:28::i;:::-;8819:10;8754;8808:22;;;:10;:22;;;;;:35;;8754:10;;8808:22;8831:11;;8808:35;;;;;;;;;;;;;;;;;;;8855:12;;;;8808:35;;-1:-1:-1;8855:12:0;;8851:1109;;8904:5;:17;;;8887:15;:34;;:82;;;;-1:-1:-1;8941:17:0;;;;8959:10;8941:28;8925:15;:44;8887:82;8884:183;;;8997:4;8991:10;;8884:183;;;9046:5;9040:11;;8884:183;9081:3;;;9125:12;;9081:59;;;-1:-1:-1;;;9081:59:0;;9098:10;9081:59;;;;9118:4;9081:59;;;;9138:1;9125:14;;;9081:59;;;;;-1:-1:-1;;;;;9081:3:0;;;;:16;;:59;;;;;;;;;;;;;;;;;:3;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9166:10:0;9155:22;;;;:10;9081:59;9155:22;;;;:35;;9198:4;;9155:22;9178:11;;9155:35;;;;;;;;;;;;;;;;;;;:42;;:47;;-1:-1:-1;;9155:47:0;;;;;;;;;;;9245:12;;9232:28;;9258:1;;9245:14;;9232:12;:28::i;:::-;9300:12;;9275:23;:39;;9313:1;9300:14;;;9275:39;;;;;9342:12;;-1:-1:-1;;;;;9342:12:0;-1:-1:-1;9332:23:0;;;:9;:23;;;;;;9217:43;;-1:-1:-1;;;9329:430:0;;9384:25;:40;;9421:3;9418:2;9411:9;;:13;;;9384:40;;;;;9461:12;;9474:20;;9451:59;;-1:-1:-1;;;;;9461:12:0;;;;9474:20;;;;;9421:3;9496:9;;:13;;9451:9;:59::i;:::-;9540:12;;9553:13;;9530:52;;-1:-1:-1;;;;;9540:12:0;;;;9553:13;9578:3;9575:2;9568:9;;:13;;9530:52;9329:430;;;9636:25;:33;;;;;;;9700:13;;9714:20;;9690:53;;-1:-1:-1;;;;;9700:13:0;;;;9714:20;9663:6;9690:9;:53::i;:::-;9777:5;9773:182;;9820:15;9802:17;;;:33;;;9890:11;9874:27;9854:19;;;:47;9920:14;;;:19;;-1:-1:-1;;9920:19:0;;;;;9773:182;8851:1109;;8575:1392;;;:::o;24495:1373::-;24581:12;;-1:-1:-1;;;;;24581:12:0;24567:10;:26;;;;:64;;-1:-1:-1;24611:20:0;;-1:-1:-1;;;;;24611:20:0;24597:10;:34;;24567:64;:95;;;;-1:-1:-1;24649:13:0;;-1:-1:-1;;;;;24649:13:0;24635:10;:27;;24567:95;24559:120;;;;;-1:-1:-1;;;24559:120:0;;;;;;;;;;;;-1:-1:-1;;;24559:120:0;;;;;;;;;;;;;;;24725:10;24690:12;24715:21;;;:9;:21;;;;;;:35;-1:-1:-1;24715:35:0;24707:75;;;;;-1:-1:-1;;;24707:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24845:10;;24827:3;24825:1;24812:14;;:18;;24867:11;24845:20;;;24844:34;24841:97;;;-1:-1:-1;24916:10:0;;24904:11;:22;24841:97;24951:11;;24948:863;;25004:22;;;25047:25;25004:22;25047:12;:25::i;:::-;25087;:38;;;;;;25140:23;:29;;;;;;;25042:30;-1:-1:-1;25189:25:0;25114:11;25189:12;:25::i;:::-;25250:13;;25184:30;;-1:-1:-1;25229:47:0;;25239:10;;-1:-1:-1;;;;;25250:13:0;25264:11;25229:9;:47::i;:::-;25291:3;;;:30;;;-1:-1:-1;;;25291:30:0;;25304:10;25291:30;;;;;;;;;;;;-1:-1:-1;;;;;25291:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25337:10:0;:21;;;;;;25373:27;25379:10;25349:9;25373:5;:27::i;:::-;25420:42;;;;;;;;25448:1;;25429:10;;25420:42;;;;;;;;;24948:863;;;;25509:26;25522:12;25509;:26::i;:::-;25550:25;:39;;;;;;25604:23;:29;;;;;;;25504:31;-1:-1:-1;25653:26:0;25577:12;25653;:26::i;:::-;25715:13;;25648:31;;-1:-1:-1;25694:48:0;;25704:10;;-1:-1:-1;;;;;25715:13:0;25729:12;25694:9;:48::i;:::-;25757:3;;;:30;;;-1:-1:-1;;;25757:30:0;;25770:10;25757:30;;;;;;;;;;;;-1:-1:-1;;;;;25757:3:0;;;;:12;;:30;;;;;;;;;;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24948:863:0;25826:34;;;;;;;;;;;;;;25831:10;;25826:34;;;;;;;;24495:1373;;;:::o;26634:274::-;-1:-1:-1;;;;;26757:16:0;;26714:12;26757:16;;;:9;:16;;;;;;;;26774:10;26757:28;;;;;;;;26747:38;;;26739:47;;;;;;26797:32;26807:10;26818:3;26822:6;26797:9;:32::i;:::-;-1:-1:-1;;;;;;26840:16:0;;;;;;:9;:16;;;;;;;;26857:10;26840:28;;;;;;;:38;;;;;;;-1:-1:-1;26634:274:0;;;;;:::o;8060:509::-;8117:14;8132:21;8145:7;8132:12;:21::i;:::-;8185:20;;8117:36;;-1:-1:-1;8164:49:0;;8174:10;;-1:-1:-1;;;;;8185:20:0;8117:36;8164:9;:49::i;:::-;8277:10;8271:17;;;;:5;:17;;;;;:29;;;8240:1;8232:9;;;;8260:40;;;;;:65;;;2402:5;8304:7;:21;;8260:65;:92;;;;-1:-1:-1;2402:5:0;8329:7;:18;:23;8260:92;:117;;;;;2451:7;8356;:21;;8260:117;8252:143;;;;;-1:-1:-1;;;8252:143:0;;;;;;;;;;;;-1:-1:-1;;;8252:143:0;;;;;;;;;;;;;;;8414:24;8427:10;8414:12;:24::i;:::-;8406:72;;;;-1:-1:-1;;;8406:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8489:28;8506:10;8489:16;:28::i;:::-;8530:31;8542:10;8553:7;8530:11;:31::i;:::-;8060:509;;:::o;1009:26::-;;;;;;:::o;3226:::-;;;;:::o;21939:402::-;22002:9;21998:333;-1:-1:-1;;;;;22021:17:0;;;;;;:10;:17;;;;;:24;22017:28;;21998:333;;;-1:-1:-1;;;;;22089:17:0;;22063:23;22089:17;;;:10;:17;;;;;:20;;22107:1;;22089:20;;;;;;;;;;;;;;;;;;;22128:12;;;;22089:20;;-1:-1:-1;22128:12:0;;22127:13;:31;;;;-1:-1:-1;22144:14:0;;;;;;;;;22127:31;22124:196;;;22205:17;;;;22223:10;22205:28;22189:15;:44;22186:120;;;22266:14;;;:20;;-1:-1:-1;;22266:20:0;;;22186:120;-1:-1:-1;22047:3:0;;21998:333;;6523:121;6595:41;6608:10;6620:15;6595:12;:41::i;:::-;6523:121;:::o;2975:22::-;;;-1:-1:-1;;;;;2975:22:0;;:::o;21242:691::-;21295:7;21319:23;21336:5;21319:16;:23::i;:::-;-1:-1:-1;;;;;21360:16:0;;;;;;:9;:16;;;;;:21;:24;;:52;;-1:-1:-1;;;;;;21388:16:0;;;;;;:9;:16;;;;;:21;21411:1;21388:24;21360:52;21357:568;;;-1:-1:-1;;;;;;21470:19:0;;;;;;:12;:19;;;;;:30;;;;21435:32;;21468:1;21435:34;:65;21427:74;;21357:568;-1:-1:-1;;;;;21520:16:0;;;;;;:9;:16;;;;;:21;21543:1;21520:24;;:52;;-1:-1:-1;;;;;;21548:16:0;;;;;;:9;:16;;;;;:21;21571:1;21548:24;21520:52;21517:408;;;-1:-1:-1;;;;;;21630:19:0;;;;;;:12;:19;;;;;:30;;;;21595:32;;21628:1;21595:34;:65;21587:74;;21517:408;-1:-1:-1;;;;;21680:16:0;;;;;;:9;:16;;;;;:21;21703:1;21680:24;;:52;;-1:-1:-1;;;;;;21708:16:0;;;;;;:9;:16;;;;;:21;21731:1;21708:24;21680:52;21677:248;;;-1:-1:-1;;;;;;21790:19:0;;;;;;:12;:19;;;;;:30;;;;21755:32;;21788:1;21755:34;:65;21747:74;;21677:248;-1:-1:-1;;;;;;21894:19:0;;;;;;:12;:19;;;;;:30;;;;21859:32;;21892:1;21859:34;:65;21851:74;;2512:38;;;;:::o;2465:40::-;;;;:::o;22352:110::-;-1:-1:-1;;;;;22434:11:0;22409:4;22434:11;;;:5;:11;;;;;:14;:19;;;22352:110::o;2589:61::-;;;-1:-1:-1;;;;;2589:61:0;;:::o;20967:126::-;21028:4;21081;21070:10;:8;:10::i;:::-;21057:12;:23;:28;;;;2265:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2265:49:0;;-1:-1:-1;2265:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2823:71::-;;;-1:-1:-1;;;;;2823:71:0;;:::o;4385:44::-;;;;;;;;;;;;;:::o;19379:561::-;19436:7;;;;;;19554:302;-1:-1:-1;;;;;19577:12:0;;;;;;:5;:12;;;;;:22;;:29;19573:33;;19554:302;;;-1:-1:-1;;;;;19656:12:0;;19627:21;19656:12;;;19650:5;19656:12;;;;;;;:22;;:25;;19627:21;;19656:22;19679:1;;19656:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19656:25:0;19650:32;;;;;;;;;;;;:42;;;19721:24;;;19656:25;19721:24;;;;19650:44;;-1:-1:-1;19763:23:0;;;19760:85;;;19816:13;19806:23;;19760:85;-1:-1:-1;19608:3:0;;19554:302;;;-1:-1:-1;19888:7:0;;-1:-1:-1;;19878:17:0;;;;-1:-1:-1;19379:561:0;;;:::o;19946:357::-;20016:7;;;20076:190;-1:-1:-1;;;;;20099:12:0;;;;;;:5;:12;;;;;:22;;:29;20095:33;;20076:190;;;-1:-1:-1;;;;;20162:12:0;;20152:36;20162:12;;;:5;:12;;;;;:22;;:25;;20197:5;;20152:9;;:36;;20185:1;;20162:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20162:25:0;20152:36;;;;;;;;;;;;:41;:50;20149:106;;20238:1;20222:17;;;;20149:106;20130:3;;20076:190;;;-1:-1:-1;20283:12:0;19946:357;-1:-1:-1;;;19946:357:0:o;2742:70::-;;;-1:-1:-1;;;;;2742:70:0;;:::o;905:28::-;;;;;;;;;;;;;;-1:-1:-1;;905:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2657:78;;;-1:-1:-1;;;;;2657:78:0;;:::o;2111:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2111:37:0;;;;;;;;;;;;;;;;;;;;;;:::o;25874:281::-;25984:12;;25937;;-1:-1:-1;;;;;25984:12:0;25970:10;:26;;;;:64;;-1:-1:-1;26014:20:0;;-1:-1:-1;;;;;26014:20:0;26000:10;:34;;25970:64;:95;;;;-1:-1:-1;26052:13:0;;-1:-1:-1;;;;;26052:13:0;26038:10;:27;;25970:95;25962:120;;;;;-1:-1:-1;;;25962:120:0;;;;;;;;;;;;-1:-1:-1;;;25962:120:0;;;;;;;;;;;;;;;26093:32;26103:10;26114:3;26118:6;26093:9;:32::i;:::-;-1:-1:-1;26143:4:0;25874:281;;;;:::o;7597:457::-;7651:3;;;:50;;;-1:-1:-1;;;7651:50:0;;7668:10;7651:50;;;;7687:4;7651:50;;;;;;;;;;;;-1:-1:-1;;;;;7651:3:0;;;;:16;;:50;;;;;;;;;;;;;;;;;:3;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7765:10:0;7759:17;;;;:5;7651:50;7759:17;;;;:29;;;7728:1;7720:9;;;;7748:40;;;;;:65;;;2402:5;7792:7;:21;;7748:65;:92;;;;-1:-1:-1;2402:5:0;7817:7;:18;:23;7748:92;:117;;;;;2451:7;7844;:21;;7748:117;7740:143;;;;;-1:-1:-1;;;7740:143:0;;;;;;;;;;;;-1:-1:-1;;;7740:143:0;;;;;;;;;;;;;;;7902:24;7915:10;7902:12;:24::i;:::-;7894:72;;;;-1:-1:-1;;;7894:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7977:28;7994:10;7977:16;:28::i;:::-;8018;8027:10;8038:7;8018:8;:28::i;23509:980::-;23605:10;23568:23;23594:22;;;:10;:22;;;;;:35;;23617:11;;23594:35;;;;;;;;;;;;;;;;23568:61;;23637:5;:14;;;;;;;;;;;;:30;;;;-1:-1:-1;23655:12:0;;;;;;23637:30;:69;;;;;23691:15;23671:5;:19;;;:35;23637:69;23634:848;;;23723:19;23744:37;23758:10;23769:11;23744:13;:37::i;:::-;23722:59;;23797:13;23811:10;:8;:10::i;:::-;23836;23830:17;;;;:5;:17;;;;;;;;:24;;;:38;;;;;;23877:29;;:43;;;;;;23935:12;:24;;;;;;-1:-1:-1;23935:35:0;;;:49;;;;;;24004:50;;;;;;;;;;;;;;;;;23797:24;;-1:-1:-1;23836:10:0;;;;-1:-1:-1;;;;;;;;;;;24004:50:0;;;;;;;;;24083:12;;;;;24061:19;;;:47;;24082:26;;;24061:47;;;-1:-1:-1;24127:15:0;;;;;;24157:18;;:31;;;;;;24223:10;-1:-1:-1;24217:17:0;;;:5;:17;;;;;:31;;:44;;;;;;24286:20;;24276:65;;-1:-1:-1;;;;;24286:20:0;;;;24335:5;24330:4;24318:16;;24335:5;24318:22;;;24276:65;24356:54;24381:10;24392:11;24404:5;24356:24;:54::i;:::-;24444:32;;;;;;;;24453:10;;24444:32;;;;;;;;;;23634:848;;23509:980;;:::o;2155:45::-;;;;;;;;;;;;;:::o;4436:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22472:120::-;-1:-1:-1;;;;;22560:17:0;22533:7;22560:17;;;:10;:17;;;;;:24;;22472:120::o;848:17::-;;;-1:-1:-1;;;;;848:17:0;;:::o;21105:131::-;21145:4;21203:25;;21174:23;;21198:4;21174:28;:54;;;;;;21167:61;;21105:131;:::o;2207:51::-;;;;;;;;;;;;;;;;;;;:::o;26920:199::-;27017:12;;26982:4;;-1:-1:-1;;;;;27017:12:0;27003:10;:26;26999:58;;27032:23;;;-1:-1:-1;;;27032:23:0;;;;;;;;;;;;-1:-1:-1;;;27032:23:0;;;;;;;;;;;;;;26999:58;27067:22;27073:7;27082:6;27067:5;:22::i;26161:241::-;-1:-1:-1;;;;;26251:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;26251:26:0;26243:35;;;;;;-1:-1:-1;;;;;26289:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;26326:14;;;;;;;;;;:24;;;;;;26366:28;;;;;;;26326:14;;26366:28;;;;;;;;;;;26161:241;;;:::o;27125:456::-;-1:-1:-1;;;;;27215:21:0;;27207:67;;;;-1:-1:-1;;;27207:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27310:18:0;;27285:22;27310:18;;;:9;:18;;;;;;27347:24;;;;27339:71;;;;-1:-1:-1;;;27339:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27442:6;27429:11;;:19;;27421:57;;;;;-1:-1:-1;;;27421:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27489:18:0;;;;;;;:9;:18;;;;;27510:23;;;;27489:44;;;27552:11;:21;;;;;;;;27125:456::o;11842:1410::-;-1:-1:-1;;;;;11962:18:0;;;11937:23;11962:18;;;:5;:18;;;;;;;;:27;;;;;;;12000:22;;;;;;:37;;:46;;;;;;12068:18;;;;:31;;;;;12065:301;;-1:-1:-1;;;;;12136:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;12189:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12189:50:0;;;;;;;;;;;12254:28;;12269:10;;12254:14;:28::i;:::-;12065:301;;;12326:28;12341:10;12352:1;12326:14;:28::i;:::-;-1:-1:-1;;;;;12376:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;12429:12;:25;;;;:48;;;;;;12504:10;:8;:10::i;:::-;12490:24;-1:-1:-1;12533:14:0;12548:23;12569:1;12561:7;:9;;12548:23;12533:38;;12615:7;12584:5;:18;12590:11;-1:-1:-1;;;;;12584:18:0;-1:-1:-1;;;;;12584:18:0;;;;;;;;;;;;:30;;:38;;;;12633:10;:23;12644:11;-1:-1:-1;;;;;12633:23:0;-1:-1:-1;;;;;12633:23:0;;;;;;;;;;;;12662:242;;;;;;;;12686:7;12662:242;;;;12695:1;12662:242;;;;12711:15;12662:242;;;;3340:4;12758:2;:11;12742:15;:27;12662:242;;;;12785:15;12662:242;;;;12815:5;12662:242;;;;;;12835:4;12662:242;;;;;;12854:5;12662:242;;;;;;12860:3;12662:242;;;;3340:4;12880:2;:11;12864:15;:27;12662:242;;;;12892:1;12662:242;;;12633:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12920:6;12916:134;12931:1;12929;:3;12916:134;;;12972:20;;12962:75;;-1:-1:-1;;;;;12972:20:0;12993:9;13003:1;12993:12;;;;;;;;;-1:-1:-1;;;;;12993:12:0;13031:5;13016:11;13028:1;13016:14;;;;;;;;;13007:6;13014:1;13007:8;:23;:29;;;;12962:75;12933:3;;12916:134;;;;13061:49;13084:11;13096:7;13104:5;13061:22;:49::i;:::-;13122:51;13147:11;13159:7;13167:5;13122:24;:51::i;:::-;13197:37;;;;;;13232:1;13225:8;;13197:37;;;;;;-1:-1:-1;;;;;13197:37:0;;;;;;;;;;;11842:1410;;;;;:::o;6650:941::-;6746:25;6759:11;6746:12;:25::i;:::-;6745:26;6737:50;;;;;-1:-1:-1;;;6737:50:0;;;;;;;;;;;;-1:-1:-1;;;6737:50:0;;;;;;;;;;;;;;;6806:29;6819:15;6806:12;:29::i;:::-;6798:61;;;;;-1:-1:-1;;;6798:61:0;;;;;;;;;;;;-1:-1:-1;;;6798:61:0;;;;;;;;;;;;;;;6870:16;;:::i;:::-;6889:455;;;;;;;;6913:10;;6889:455;;;;6960:15;-1:-1:-1;;;;;6889:455:0;;;;;7005:1;6889:455;;;;7032:1;6889:455;;;;7072:1;7058:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7058:16:0;;6889:455;;;;7133:1;6889:455;;;;7161:1;6889:455;;;;7104:1;6889:455;;;;7184:1;6889:455;;;;7212:1;6889:455;;;;7242:1;6889:455;;;;7273:1;6889:455;;;;7301:1;6889:455;;;;7331:1;6889:455;;;6870:474;;7384:4;7363:5;:18;7369:11;-1:-1:-1;;;;;7363:18:0;-1:-1:-1;;;;;7363:18:0;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7363:25:0;;;;;-1:-1:-1;;;;;7363:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7363:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7399:18:0;;;-1:-1:-1;7399:18:0;;;;;;;;;;;:27;;;;:45;;-1:-1:-1;;;;;;7399:45:0;;;;;;;;;7455:10;:12;;;;;;;7534:21;7557:22;;;;;;;:25;7491:92;;;;;;;7534:21;;7491:92;;;;;;;;;6650:941;;;:::o;9978:1858::-;-1:-1:-1;;;;;10095:18:0;;;10070:23;10095:18;;;:5;:18;;;;;;;;:27;;;;;;;10133:22;;;;;;:37;;:46;;;;;;10201:18;;;;:31;;;;;10198:313;;-1:-1:-1;;;;;10269:22:0;;;;;;;:5;:22;;;;;;;:36;;;:38;;;;;;;;;10322:32;;;;:50;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10322:50:0;;;;;;;;;;;10399:28;;10414:10;;10399:14;:28::i;:::-;10198:313;;;10471:28;10486:10;10497:1;10471:14;:28::i;:::-;-1:-1:-1;;;;;10521:18:0;;;;;;:5;:18;;;;;;;;:31;;;:41;;;;;;10574:12;:25;;;;:48;;;;;;10647:10;:8;:10::i;:::-;10633:24;-1:-1:-1;10668:14:0;10683:23;10704:1;10696:7;:9;;10683:23;10717;:34;;10750:1;10742:9;;10717:34;;;10775:12;;-1:-1:-1;;;;;10775:12:0;-1:-1:-1;10765:23:0;;;:9;:23;;;;;;10668:38;;-1:-1:-1;;;10762:398:0;;10813:25;:40;;10850:3;10847:2;10840:9;;:13;;;10813:40;;;;;10886:12;;10899:20;;10876:59;;-1:-1:-1;;;;;10886:12:0;;;;10899:20;;;;;10850:3;10921:9;;:13;;10876:59;10961:12;;10974:13;;10951:52;;-1:-1:-1;;;;;10961:12:0;;;;10974:13;10999:3;10996:2;10989:9;;:13;;10951:52;10762:398;;;11045:25;:33;;;;;;;11105:13;;11119:20;;11095:53;;-1:-1:-1;;;;;11105:13:0;;;;11119:20;11072:6;11095:9;:53::i;:::-;11201:7;11170:5;:18;11176:11;-1:-1:-1;;;;;11170:18:0;-1:-1:-1;;;;;11170:18:0;;;;;;;;;;;;:30;;:38;;;;11219:10;:23;11230:11;-1:-1:-1;;;;;11219:23:0;-1:-1:-1;;;;;11219:23:0;;;;;;;;;;;;11248:241;;;;;;;;11272:7;11248:241;;;;11281:1;11248:241;;;;11297:15;11248:241;;;;3340:4;11344:2;:11;11328:15;:27;11248:241;;;;11371:15;11248:241;;;;11401:5;11248:241;;;;;;11421:4;11248:241;;;;;;11440:4;11248:241;;;;;;11445:3;11248:241;;;;3340:4;11465:2;:11;11449:15;:27;11248:241;;;;11477:1;11248:241;;;11219:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11505:6;11501:134;11516:1;11514;:3;11501:134;;;11557:20;;11547:75;;-1:-1:-1;;;;;11557:20:0;11578:9;11588:1;11578:12;;;;;;11547:75;11518:3;;11501:134;;22600:903;-1:-1:-1;;;;;22748:17:0;;22671:7;22748:17;;;:10;:17;;;;;:30;;22671:7;;;;22766:11;;22748:30;;;;;;;;;;;;;;;;22722:56;;22789:25;22817:4;-1:-1:-1;;;;;22817:16:0;;22834:5;22817:23;;;;;;;;;;;;;-1:-1:-1;;;;;22817:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22817:23:0;;-1:-1:-1;22867:19:0;;22864:612;;22912:11;3340:4;22947:5;:17;;;22925:5;:19;;;:39;22924:57;;;;;;22912:69;;23006:3;22999:6;:10;22996:38;;;-1:-1:-1;23031:3:0;22996:38;23049:19;23124:5;:18;;;23117:5;23108:6;23084:5;:23;;;23071:5;:12;;;:36;:43;:51;;;;;;23070:72;23049:93;;23179:11;23161:17;:29;23158:127;;;-1:-1:-1;23224:17:0;23158:127;23302:13;;23299:85;;23357:11;23350:18;;23299:85;22864:612;;;;;23445:14;;;:19;;-1:-1:-1;;23445:19:0;;;;;22864:612;-1:-1:-1;23488:6:0;;22600:903;-1:-1:-1;;;;22600:903:0:o;17140:1432::-;-1:-1:-1;;;;;17256:12:0;;;17239:14;17256:12;;;:5;:12;;;;;:21;;;;;;;17288:1277;3297:2;17305:1;:14;;;17288:1277;;;-1:-1:-1;;;;;17343:20:0;;;17340:1214;;17410:9;17420:1;17410:12;;;;;;;;;;;-1:-1:-1;;;;;17386:17:0;;;;;;:9;:17;;;;;:22;:36;17383:1046;;-1:-1:-1;;;;;17467:13:0;;17494:1;17467:13;;;:5;:13;;;;;;;;:26;;:28;17464:946;;17569:14;17610:5;17592:14;17607:1;17592:17;;;;;;;;;;;17584:7;:25;:31;;;;;;17569:46;;17666:25;17692:4;-1:-1:-1;;;;;17692:16:0;;17709:6;17692:24;;;;;;;;;;;;;-1:-1:-1;;;;;17692:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17692:24:0;;-1:-1:-1;17748:19:0;;17745:642;;17846:6;17828:17;:24;17825:143;;;17895:17;17888:24;;17825:143;-1:-1:-1;;;;;17998:13:0;;;;;;;:5;:13;;;;;;;;:28;;;:37;;;;;;18089:25;;:34;;;;;;18155:12;:20;;;;;-1:-1:-1;18155:31:0;:40;;;;;;18236:20;;18226:56;;18236:20;18004:6;18276:5;18271:4;18264:11;;18276:5;18264:17;;;18226:56;18318:40;;;;;;;18353:1;18351:3;;18318:40;;;;;18356:1;18318:40;;;;;;-1:-1:-1;;;;;18318:40:0;;;;;;;;-1:-1:-1;;;;;;;;;;;18318:40:0;;;;;;;;17745:642;17464:946;;;-1:-1:-1;;;;;18456:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;17340:1214;;;18533:5;;17340:1214;17321:3;;17288:1277;;;;17140:1432;;;;:::o;20309:509::-;-1:-1:-1;;;;;20395:12:0;;;20378:14;20395:12;;;:5;:12;;;;;:21;;;;;;;20427:384;3297:2;20446:1;:14;20427:384;;;-1:-1:-1;;;;;20484:20:0;;;20481:319;;20527:5;20534:1;20527:8;20524:85;;;-1:-1:-1;;;;;20584:13:0;;;;;;:5;:13;;;;;:23;;;;20608:1;20584:25;20558:51;;20524:85;20628:20;20641:6;20628:12;:20::i;:::-;20680:3;;-1:-1:-1;;;;;20670:13:0;;;20680:3;;20670:13;20667:23;;;20685:5;;20667:23;-1:-1:-1;;;;;20718:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;20481:319;;;20779:5;;20481:319;20462:3;;20427:384;;13258:1426;-1:-1:-1;;;;;13372:12:0;;;13355:14;13372:12;;;:5;:12;;;;;:21;;;;;;;13404:1273;3297:2;13421:1;:14;;;13404:1273;;;-1:-1:-1;;;;;13459:20:0;;;13456:1210;;13526:9;13536:1;13526:12;;;;;;;;;;;-1:-1:-1;;;;;13502:17:0;;;;;;:9;:17;;;;;:22;:36;13499:1042;;-1:-1:-1;;;;;13583:13:0;;13610:1;13583:13;;;:5;:13;;;;;;;;:26;;:28;13580:942;;13685:14;13725:5;13708:13;13722:1;13708:16;;;;;;;;;;;13700:7;:24;:30;;;;;;13685:45;;13781:25;13807:4;-1:-1:-1;;;;;13807:16:0;;13824:6;13807:24;;;;;;;;;;;;;-1:-1:-1;;;;;13807:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13807:24:0;;-1:-1:-1;13863:19:0;;13860:639;;13961:6;13943:17;:24;13940:143;;;14010:17;14003:24;;13940:143;-1:-1:-1;;;;;14113:13:0;;;;;;;:5;:13;;;;;;;;:25;;;:34;;;;;;14201:25;;:34;;;;;;14267:12;:20;;;;;-1:-1:-1;14267:31:0;:40;;;;;;14348:20;;14338:56;;14348:20;14119:6;14388:5;14383:4;14376:11;;14388:5;14376:17;;;14338:56;14430:40;;;;;;;14465:1;14463:3;;14430:40;;;;;14468:1;14430:40;;;;;;-1:-1:-1;;;;;14430:40:0;;;;;;;;-1:-1:-1;;;;;;;;;;;14430:40:0;;;;;;;;13860:639;13580:942;;;-1:-1:-1;;;;;14568:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;13437:3;;13404:1273;;14690:2444;-1:-1:-1;;;;;14806:12:0;;;14789:14;14806:12;;;:5;:12;;;;;:21;;;;;;;14789:14;;;;14965:2162;14986:2;14982:1;:6;;;14965:2162;;;-1:-1:-1;;;;;15024:20:0;;;15021:2095;;-1:-1:-1;;;;;15067:17:0;;;;;;:9;:17;;;;;:22;15091:1;15067:25;;:54;;-1:-1:-1;;;;;;15096:17:0;;;;;;:9;:17;;;;;;;;:22;:25;15067:54;15064:1913;;;15149:13;15146:798;;-1:-1:-1;;;;;15215:17:0;;;;;;:9;:17;;;;;;;;:22;:25;15212:418;;;15308:1;15292:17;;15358:1;15340:19;;15401:1;15390:12;;15212:418;;;15508:1;15492:17;;15558:1;15540:19;;15601:1;15590:12;;15212:418;15146:798;;;-1:-1:-1;;;;;15710:17:0;;;;;;:9;:17;;;;;:22;:34;;15707:214;;;15812:17;15796:33;;15868:1;15860:9;;15707:214;15969:17;;15966:992;;16177:24;;;-1:-1:-1;;;16177:24:0;;-1:-1:-1;;;;;16177:24:0;;;;;;;;16014:14;;16053:3;16029:23;;;:27;;16014:14;;16177:4;;:16;;:24;;;;;;;;;;;;;;16014:14;16177:4;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16177:24:0;;-1:-1:-1;16233:19:0;;16230:641;;16331:6;16313:17;:24;16310:143;;;16380:17;16373:24;;16310:143;-1:-1:-1;;;;;16483:13:0;;;;;;;:5;:13;;;;;;;;:27;;;:36;;;;;;16573:25;;:34;;;;;;16639:12;:20;;;;;-1:-1:-1;16639:31:0;:40;;;;;;16720:20;;16710:56;;16720:20;16489:6;16760:5;16755:4;16748:11;;16760:5;16748:17;;;16710:56;16802:40;;;;;;;16837:1;16835:3;;16802:40;;;;;16840:1;16802:40;;;;;;-1:-1:-1;;;;;16802:40:0;;;;;;;;-1:-1:-1;;;;;;;;;;;16802:40:0;;;;;;;;16230:641;16900:7;16909:1;16900:10;:27;;;-1:-1:-1;16924:3:0;;-1:-1:-1;;;;;16914:13:0;;;16924:3;;16914:13;16900:27;16897:37;;;16929:5;;;;16897:37;15966:992;;;-1:-1:-1;;;;;17004:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;15021:2095;;;17095:5;;15021:2095;14990:3;;14965:2162;;;;14690:2444;;;;;;;;:::o;18578:795::-;-1:-1:-1;;;;;18665:12:0;;18642:19;18665:12;;;:5;:12;;;;;;;;:26;;;;18728:27;;;;;18785:9;:16;;;;;:21;18833:1;18820:14;;;;;:31;;;18850:1;18838:11;:13;18820:31;18817:549;;;18907:1;18895:13;;18879;18947:19;18960:5;18947:12;:19::i;:::-;18923:43;;;18981:17;18999:23;19014:5;19020:1;18999:14;:23::i;:::-;19054:19;;;;:9;:19;;;;;:32;;;18981:41;;-1:-1:-1;19040:46:0;;;;;:91;;-1:-1:-1;19101:19:0;;;;:9;:19;;;;;:30;;;19090:41;;;19040:91;19037:162;;;-1:-1:-1;;;;;19151:16:0;;;;;;:9;:16;;;;;:32;;;19037:162;18817:549;;;;;;19255:1;19245:12;;:9;:12;;:25;;19232:38;;;;;:65;;;19290:7;19274:14;:23;;19232:65;:83;;;;-1:-1:-1;19301:14:0;;19232:83;19229:137;;;-1:-1:-1;;;;;;;;19331:16:0;;;;;:9;:16;;;;;19353:1;19331:23;;18578:795::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://274785b0efdb459e38de7e66e8a112c8869068947da26d8fcdfed1c4183c13c8
[ 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.