ETH Price: $2,453.53 (-1.91%)

Token

MaiMiChain (MMC)
 

Overview

Max Total Supply

996,940,300,000 MMC

Holders

49,938

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Balance
0.01 MMC

Value
$0.00
0xf8e6fa16b3cfe96de771ec6cb7bf60f1a11f9f52
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Committed to creating a circulation-type digital asset in the food industry chain.

ICO Information

ICO Start Date : Jul 28, 2019
ICO End Date : Sep 18, 2019

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CoinMmc

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-07-12
*/

pragma solidity ^0.4.23;

contract CoinMmc // @eachvar
{
    // ======== 初始化代币相关逻辑 ==============
    // 地址信息
    address public admin_address = 0x64b33dB1Cc804e7CA51D9c21F132567923D7BA00; // @eachvar
    address public account_address = 0x64b33dB1Cc804e7CA51D9c21F132567923D7BA00; // @eachvar 初始化后转入代币的地址
    
    // 定义账户余额
    mapping(address => uint256) balances;
    
    // solidity 会自动为 public 变量添加方法,有了下边这些变量,就能获得代币的基本信息了
    string public name = "MaiMiChain"; // @eachvar
    string public symbol = "MMC"; // @eachvar
    uint8 public decimals = 2; // @eachvar
    uint256 initSupply = 1000000000000; // @eachvar
    uint256 public totalSupply = 0; // @eachvar

    // 生成代币,并转入到 account_address 地址
    constructor() 
    payable 
    public
    {
        totalSupply = mul(initSupply, 10**uint256(decimals));
        balances[account_address] = totalSupply;

        // @lock
        // 锁仓相关信息 
        _add_lock_account(0x6efB62605A66E32582c37b835F81Bc91A6a8fb2e, mul(80000000000,10**uint256(decimals)), 1596815160);
        _add_lock_account(0x0ba46c0fC6a5C206855cEf215222e347E1559eDf, mul(120000000000,10**uint256(decimals)), 1596815160);
        _add_lock_account(0xE269695D497387DfEAFE12b0b3B54441683F63C8, mul(100000000000,10**uint256(decimals)), 1628351160);
        
        
    }

    function balanceOf( address _addr ) public view returns ( uint )
    {
        return balances[_addr];
    }

    // ========== 转账相关逻辑 ====================
    event Transfer(
        address indexed from, 
        address indexed to, 
        uint256 value
    ); 

    function transfer(
        address _to, 
        uint256 _value
    ) 
    public 
    returns (bool) 
    {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = sub(balances[msg.sender],_value);

        // @lock
        // 添加锁仓相关检查
        // solium-disable-next-line security/no-block-members
        if(lockInfo[msg.sender].amount > 0 && block.timestamp < lockInfo[msg.sender].release_time)
            require(balances[msg.sender] >= lockInfo[msg.sender].amount);

            

        balances[_to] = add(balances[_to], _value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // ========= 授权转账相关逻辑 =============
    
    mapping (address => mapping (address => uint256)) internal allowed;
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
    public
    returns (bool)
    {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

        balances[_from] = sub(balances[_from], _value);
        
        // @lock
        // 添加锁仓相关检查 
        // solium-disable-next-line security/no-block-members
        if(lockInfo[_from].amount > 0 && block.timestamp < lockInfo[_from].release_time)
            require(balances[_from] >= lockInfo[_from].amount);
        
        
        balances[_to] = add(balances[_to], _value);
        allowed[_from][msg.sender] = sub(allowed[_from][msg.sender], _value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(
        address _spender, 
        uint256 _value
    ) 
    public 
    returns (bool) 
    {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(
        address _owner,
        address _spender
    )
    public
    view
    returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    function increaseApproval(
        address _spender,
        uint256 _addedValue
    )
    public
    returns (bool)
    {
        allowed[msg.sender][_spender] = add(allowed[msg.sender][_spender], _addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(
        address _spender,
        uint256 _subtractedValue
    )
    public
    returns (bool)
    {
        uint256 oldValue = allowed[msg.sender][_spender];

        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } 
        else 
        {
            allowed[msg.sender][_spender] = sub(oldValue, _subtractedValue);
        }
        
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    
    // ========= 直投相关逻辑 ===============
    bool public direct_drop_switch = true; // 是否开启直投 @eachvar
    uint256 public direct_drop_rate = 200000000; // 兑换比例,注意这里是eth为单位,需要换算到wei @eachvar
    address public direct_drop_address = 0xBe60a6e39Bd058198C8E56e6c708A9C70190f83b; // 用于发放直投代币的账户 @eachvar
    address public direct_drop_withdraw_address = 0x64b33dB1Cc804e7CA51D9c21F132567923D7BA00; // 直投提现地址 @eachvar

    bool public direct_drop_range = true; // 是否启用直投有效期 @eachvar
    uint256 public direct_drop_range_start = 1562921160; // 有效期开始 @eachvar
    uint256 public direct_drop_range_end = 3803445960; // 有效期结束 @eachvar

    event TokenPurchase
    (
        address indexed purchaser,
        address indexed beneficiary,
        uint256 value,
        uint256 amount
    );

    // 支持为别人购买
    function buyTokens( address _beneficiary ) 
    public 
    payable // 接收支付
    returns (bool)
    {
        require(direct_drop_switch);
        require(_beneficiary != address(0));

        // 检查有效期开关
        if( direct_drop_range )
        {
            // 当前时间必须在有效期内
            // solium-disable-next-line security/no-block-members
            require(block.timestamp >= direct_drop_range_start && block.timestamp <= direct_drop_range_end);

        }
        
        // 计算根据兑换比例,应该转移的代币数量
        // uint256 tokenAmount = mul(div(msg.value, 10**18), direct_drop_rate);
        
        uint256 tokenAmount = div(mul(msg.value,direct_drop_rate ), 10**18); //此处用 18次方,这是 wei to  ether 的换算,不是代币的,所以不用 decimals,先乘后除,否则可能为零
        uint256 decimalsAmount = mul( 10**uint256(decimals), tokenAmount);
        
        // 首先检查代币发放账户余额
        require
        (
            balances[direct_drop_address] >= decimalsAmount
        );

        assert
        (
            decimalsAmount > 0
        );

        
        // 然后开始转账
        uint256 all = add(balances[direct_drop_address], balances[_beneficiary]);

        balances[direct_drop_address] = sub(balances[direct_drop_address], decimalsAmount);

        // @lock
        // 添加锁仓相关检查 
        // solium-disable-next-line security/no-block-members
        if(lockInfo[direct_drop_address].amount > 0 && block.timestamp < lockInfo[direct_drop_address].release_time)
            require(balances[direct_drop_address] >= lockInfo[direct_drop_address].amount);

            

        balances[_beneficiary] = add(balances[_beneficiary], decimalsAmount);
        
        assert
        (
            all == add(balances[direct_drop_address], balances[_beneficiary])
        );

        // 发送事件
        emit TokenPurchase
        (
            msg.sender,
            _beneficiary,
            msg.value,
            tokenAmount
        );

        return true;

    } 
    

     // ========= 空投相关逻辑 ===============
    bool public air_drop_switch = true; // 是否开启空投 @eachvar
    uint256 public air_drop_rate = 88888; // 赠送的代币枚数,这个其实不是rate,直接是数量 @eachvar
    address public air_drop_address = 0xeCA9eEea4B0542514e35833Df15830dC0108Ea20; // 用于发放空投代币的账户 @eachvar
    uint256 public air_drop_count = 0; // 每个账户可以参加的次数 @eachvar

    mapping(address => uint256) airdrop_times; // 用于记录参加次数的mapping

    bool public air_drop_range = true; // 是否启用空投有效期 @eachvar
    uint256 public air_drop_range_start = 1562921160; // 有效期开始 @eachvar
    uint256 public air_drop_range_end = 3803445960; // 有效期结束 @eachvar

    event TokenGiven
    (
        address indexed sender,
        address indexed beneficiary,
        uint256 value,
        uint256 amount
    );

    // 也可以帮别人领取
    function airDrop( address _beneficiary ) 
    public 
    payable // 接收支付
    returns (bool)
    {
        require(air_drop_switch);
        require(_beneficiary != address(0));
        // 检查有效期开关
        if( air_drop_range )
        {
            // 当前时间必须在有效期内
            // solium-disable-next-line security/no-block-members
            require(block.timestamp >= air_drop_range_start && block.timestamp <= air_drop_range_end);

        }

        // 检查受益账户参与空投的次数
        if( air_drop_count > 0 )
        {
            require
            ( 
                airdrop_times[_beneficiary] <= air_drop_count 
            );
        }
        
        // 计算根据兑换比例,应该转移的代币数量
        uint256 tokenAmount = air_drop_rate;
        uint256 decimalsAmount = mul(10**uint256(decimals), tokenAmount);// 转移代币时还要乘以小数位
        
        // 首先检查代币发放账户余额
        require
        (
            balances[air_drop_address] >= decimalsAmount
        );

        assert
        (
            decimalsAmount > 0
        );

        
        
        // 然后开始转账
        uint256 all = add(balances[air_drop_address], balances[_beneficiary]);

        balances[air_drop_address] = sub(balances[air_drop_address], decimalsAmount);

        // @lock
        // 添加锁仓相关检查 
        // solium-disable-next-line security/no-block-members
        if(lockInfo[air_drop_address].amount > 0 && block.timestamp < lockInfo[air_drop_address].release_time)
            require(balances[air_drop_address] >= lockInfo[air_drop_address].amount);
        
        balances[_beneficiary] = add(balances[_beneficiary], decimalsAmount);
        
        assert
        (
            all == add(balances[air_drop_address], balances[_beneficiary])
        );

        // 发送事件
        emit TokenGiven
        (
            msg.sender,
            _beneficiary,
            msg.value,
            tokenAmount
        );

        return true;

    }
    
    // ========== 代码销毁相关逻辑 ================
    event Burn(address indexed burner, uint256 value);

    function burn(uint256 _value) public 
    {
        _burn(msg.sender, _value);
    }

    function _burn(address _who, uint256 _value) internal 
    {
        require(_value <= balances[_who]);
        
        balances[_who] = sub(balances[_who], _value);

        //@lock
        // 添加锁仓相关检查 
        // solium-disable-next-line security/no-block-members
        if(lockInfo[_who].amount > 0 && block.timestamp < lockInfo[_who].release_time)
            require(balances[_who] >= lockInfo[_who].amount);
            

        totalSupply = sub(totalSupply, _value);
        emit Burn(_who, _value);
        emit Transfer(_who, address(0), _value);
    }
    
    //@lock
    // ========== 锁仓相关逻辑 ================
    // 定义锁仓信息
    struct LockAccount 
    {
        // address account ; // 锁仓地址
        uint256 amount ; // 锁定数额
        uint256 release_time ; // 释放时间
    }

    mapping(address => LockAccount) public lockInfo;

    // 这是一个内部函数,供构造函数添加锁仓账户用
    function _add_lock_account(address _lock_address, uint256 _amount, uint256 _release_time) internal
    {
        // 添加锁仓账户
        // 只在该地址的锁定额度为0时进行添加,确保锁仓地址不能被修改(即使是管理员也不能)
        if( lockInfo[_lock_address].amount == 0 )
            lockInfo[_lock_address] = LockAccount( _amount , _release_time);
    }
    
    // ============== admin 相关函数 ==================
    modifier admin_only()
    {
        require(msg.sender==admin_address);
        _;
    }

    function setAdmin( address new_admin_address ) 
    public 
    admin_only 
    returns (bool)
    {
        require(new_admin_address != address(0));
        admin_address = new_admin_address;
        return true;
    }

    // 空投管理
    function setAirDrop( bool status )
    public
    admin_only
    returns (bool)
    {
        air_drop_switch = status;
        return true;
    }
    
    // 直投管理
    function setDirectDrop( bool status )
    public
    admin_only
    returns (bool)
    {
        direct_drop_switch = status;
        return true;
    }
    
    // ETH提现
    function withDraw()
    public
    {
        // 管理员和之前设定的提现账号可以发起提现,但钱一定是进提现账号
        require(msg.sender == admin_address || msg.sender == direct_drop_withdraw_address);
        require(address(this).balance > 0);
        // 全部转到直投提现中
        direct_drop_withdraw_address.transfer(address(this).balance);
    }
        // ======================================
    /// 默认函数
    function () external payable
    {
                        if( msg.value > 0 )
            buyTokens(msg.sender);
        else
            airDrop(msg.sender); 
        
        
        
           
    }

    // ========== 公用函数 ===============
    // 主要就是 safemath
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) 
    {
        if (a == 0) 
        {
            return 0;
        }

        c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        return a / b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256 c) 
    {
        c = a + b;
        assert(c >= a);
        return c;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_withdraw_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withDraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_switch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_range","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_range_end","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_switch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"status","type":"bool"}],"name":"setDirectDrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_range_start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"account_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockInfo","outputs":[{"name":"amount","type":"uint256"},{"name":"release_time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_admin_address","type":"address"}],"name":"setAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"status","type":"bool"}],"name":"setAirDrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_range_end","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"airDrop","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"air_drop_range_start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"direct_drop_range","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"admin_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenGiven","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}]

60806040527364b33db1cc804e7ca51d9c21f132567923d7ba006000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507364b33db1cc804e7ca51d9c21f132567923d7ba00600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600a81526020017f4d61694d69436861696e0000000000000000000000000000000000000000000081525060039080519060200190620000fa929190620005e9565b506040805190810160405280600381526020017f4d4d4300000000000000000000000000000000000000000000000000000000008152506004908051906020019062000148929190620005e9565b506002600560006101000a81548160ff021916908360ff16021790555064e8d4a5100060065560006007556001600960006101000a81548160ff021916908315150217905550630bebc200600a5573be60a6e39bd058198c8e56e6c708a9c70190f83b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507364b33db1cc804e7ca51d9c21f132567923d7ba00600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff021916908315150217905550635d2848c8600d5563e2b3fac8600e556001600f60006101000a81548160ff02191690831515021790555062015b3860105573eca9eeea4b0542514e35833df15830dc0108ea20601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006012556001601460006101000a81548160ff021916908315150217905550635d2848c860155563e2b3fac860165562000344600654600560009054906101000a900460ff1660ff16600a0a620004f0640100000000026401000000009004565b60078190555060075460026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200041a736efb62605a66e32582c37b835f81bc91a6a8fb2e620004006412a05f2000600560009054906101000a900460ff1660ff16600a0a620004f0640100000000026401000000009004565b635f2d77386200052c640100000000026401000000009004565b62000482730ba46c0fc6a5c206855cef215222e347e1559edf62000468641bf08eb000600560009054906101000a900460ff1660ff16600a0a620004f0640100000000026401000000009004565b635f2d77386200052c640100000000026401000000009004565b620004ea73e269695d497387dfeafe12b0b3b54441683f63c8620004d064174876e800600560009054906101000a900460ff1660ff16600a0a620004f0640100000000026401000000009004565b63610eaab86200052c640100000000026401000000009004565b62000698565b60008083141562000505576000905062000526565b81830290508183828115156200051757fe5b041415156200052257fe5b8090505b92915050565b6000601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415620005e457604080519081016040528083815260200182815250601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101559050505b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200062c57805160ff19168380011785556200065d565b828001600101855582156200065d579182015b828111156200065c5782518255916020019190600101906200063f565b5b5090506200066c919062000670565b5090565b6200069591905b808211156200069157600081600090555060010162000677565b5090565b90565b61306380620006a86000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101dc57806309451cb21461026c578063095ea7b3146102c35780630fdb1c101461032857806318160ddd1461033f578063212c01fa1461036a57806323b872dd146103995780632ed378721461041e578063313ce5671461044d578063324f8ac91461047e57806332d76483146104a95780633381601e146104d457806341ec2ec61461050357806342966c681461054a57806342ac29501461057757806344272b2f146105ce5780634e11826b146105f95780636618846314610624578063661be157146106895780636bd3b87c146106e0578063704b6c021461073e57806370a082311461079957806395d89b41146107f0578063a2368e1114610880578063a65137dc146108c7578063a9059cbb146108f2578063bf6b319a14610957578063cd18d5a414610982578063d373f4ee146109d0578063d73dd62314610a27578063dd62ed3e14610a8c578063e63614b014610b03578063ec78aa0f14610b2e578063ec8ac4d814610b5d578063f2e6277214610bab575b60003411156101cf576101c933610c02565b506101da565b6101d833611236565b505b005b3480156101e857600080fd5b506101f16118ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610231578082015181840152602081019050610216565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027857600080fd5b5061028161194a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102cf57600080fd5b5061030e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611970565b604051808215151515815260200191505060405180910390f35b34801561033457600080fd5b5061033d611a62565b005b34801561034b57600080fd5b50610354611bbd565b6040518082815260200191505060405180910390f35b34801561037657600080fd5b5061037f611bc3565b604051808215151515815260200191505060405180910390f35b3480156103a557600080fd5b50610404600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bd6565b604051808215151515815260200191505060405180910390f35b34801561042a57600080fd5b506104336120a3565b604051808215151515815260200191505060405180910390f35b34801561045957600080fd5b506104626120b6565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048a57600080fd5b506104936120c9565b6040518082815260200191505060405180910390f35b3480156104b557600080fd5b506104be6120cf565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b506104e96120d5565b604051808215151515815260200191505060405180910390f35b34801561050f57600080fd5b506105306004803603810190808035151590602001909291905050506120e8565b604051808215151515815260200191505060405180910390f35b34801561055657600080fd5b5061057560048036038101908080359060200190929190505050612168565b005b34801561058357600080fd5b5061058c612175565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105da57600080fd5b506105e361219b565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061060e6121a1565b6040518082815260200191505060405180910390f35b34801561063057600080fd5b5061066f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121a7565b604051808215151515815260200191505060405180910390f35b34801561069557600080fd5b5061069e61242f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ec57600080fd5b50610721600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612455565b604051808381526020018281526020019250505060405180910390f35b34801561074a57600080fd5b5061077f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612479565b604051808215151515815260200191505060405180910390f35b3480156107a557600080fd5b506107da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061255b565b6040518082815260200191505060405180910390f35b3480156107fc57600080fd5b506108056125a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084557808201518184015260208101905061082a565b50505050905090810190601f1680156108725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088c57600080fd5b506108ad600480360381019080803515159060200190929190505050612642565b604051808215151515815260200191505060405180910390f35b3480156108d357600080fd5b506108dc6126c2565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b5061093d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126c8565b604051808215151515815260200191505060405180910390f35b34801561096357600080fd5b5061096c612a03565b6040518082815260200191505060405180910390f35b6109b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611236565b604051808215151515815260200191505060405180910390f35b3480156109dc57600080fd5b506109e5612a09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3357600080fd5b50610a72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a2f565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610aed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c22565b6040518082815260200191505060405180910390f35b348015610b0f57600080fd5b50610b18612ca9565b6040518082815260200191505060405180910390f35b348015610b3a57600080fd5b50610b43612caf565b604051808215151515815260200191505060405180910390f35b610b91600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b348015610bb757600080fd5b50610bc0612cc2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080600960009054906101000a900460ff161515610c2357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610c5f57600080fd5b600c60149054906101000a900460ff1615610c9457600d544210158015610c885750600e544211155b1515610c9357600080fd5b5b610cb1610ca334600a54612ce7565b670de0b6b3a7640000612d1f565b9250610cd2600560009054906101000a900460ff1660ff16600a0a84612ce7565b91508160026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610d4457600080fd5b600082111515610d5057fe5b610dfa60026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b9050610e6760026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b60026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015610fa3575060176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b1561107d5760176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561107c57600080fd5b5b6110c6600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111b360026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b811415156111bd57fe5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad183486604051808381526020018281526020019250505060405180910390a360019350505050919050565b600080600080600f60009054906101000a900460ff16151561125757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561129357600080fd5b601460009054906101000a900460ff16156112c85760155442101580156112bc57506016544211155b15156112c757600080fd5b5b6000601254111561132457601254601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115151561132357600080fd5b5b6010549250611348600560009054906101000a900460ff1660ff16600a0a84612ce7565b91508160026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156113ba57600080fd5b6000821115156113c657fe5b61147060026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b90506114dd60026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b60026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015611619575060176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b156116f35760176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116f257600080fd5b5b61173c600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061182960026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b8114151561183357fe5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7273e9103e19ade7148e3fe481ca3da81f4a5b010fdfd1694d12070ca85628993486604051808381526020018281526020019250505060405180910390a360019350505050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119425780601f1061191757610100808354040283529160200191611942565b820191906000526020600020905b81548152906001019060200180831161192557829003601f168201915b505050505081565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b0a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611b1557600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b3b57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b50565b60075481565b600f60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c1357600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611c6157600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611cec57600080fd5b611d35600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015611e0b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b15611ea157601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611ea057600080fd5b5b611eea600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601460009054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600a5481565b600e5481565b600960009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561214557600080fd5b81600960006101000a81548160ff02191690831515021790555060019050919050565b6121723382612d6a565b50565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60105481565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156122b8576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612343565b6122c28184612d51565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915090508060000154908060010154905082565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124d657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561251257600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561263a5780601f1061260f5761010080835404028352916020019161263a565b820191906000526020600020905b81548152906001019060200180831161261d57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561269f57600080fd5b81600f60006101000a81548160ff02191690831515021790555060019050919050565b60165481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561270557600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561275357600080fd5b61279c600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541180156128725750601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b1561290857601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561290757600080fd5b5b612951600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60125481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612ab7600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60155481565b600c60149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415612cfa5760009050612d19565b8183029050818382811515612d0b57fe5b04141515612d1557fe5b8090505b92915050565b60008183811515612d2c57fe5b04905092915050565b60008183019050828110151515612d4857fe5b80905092915050565b6000828211151515612d5f57fe5b818303905092915050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612db857600080fd5b612e01600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612d51565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015612ed75750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b15612f6d57601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612f6c57600080fd5b5b612f7960075482612d51565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a723058204f1374bca36586034f8a93562ddd2df6c5eebbf08e4ae24589e59b96932114530029

Deployed Bytecode

0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101dc57806309451cb21461026c578063095ea7b3146102c35780630fdb1c101461032857806318160ddd1461033f578063212c01fa1461036a57806323b872dd146103995780632ed378721461041e578063313ce5671461044d578063324f8ac91461047e57806332d76483146104a95780633381601e146104d457806341ec2ec61461050357806342966c681461054a57806342ac29501461057757806344272b2f146105ce5780634e11826b146105f95780636618846314610624578063661be157146106895780636bd3b87c146106e0578063704b6c021461073e57806370a082311461079957806395d89b41146107f0578063a2368e1114610880578063a65137dc146108c7578063a9059cbb146108f2578063bf6b319a14610957578063cd18d5a414610982578063d373f4ee146109d0578063d73dd62314610a27578063dd62ed3e14610a8c578063e63614b014610b03578063ec78aa0f14610b2e578063ec8ac4d814610b5d578063f2e6277214610bab575b60003411156101cf576101c933610c02565b506101da565b6101d833611236565b505b005b3480156101e857600080fd5b506101f16118ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610231578082015181840152602081019050610216565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027857600080fd5b5061028161194a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102cf57600080fd5b5061030e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611970565b604051808215151515815260200191505060405180910390f35b34801561033457600080fd5b5061033d611a62565b005b34801561034b57600080fd5b50610354611bbd565b6040518082815260200191505060405180910390f35b34801561037657600080fd5b5061037f611bc3565b604051808215151515815260200191505060405180910390f35b3480156103a557600080fd5b50610404600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bd6565b604051808215151515815260200191505060405180910390f35b34801561042a57600080fd5b506104336120a3565b604051808215151515815260200191505060405180910390f35b34801561045957600080fd5b506104626120b6565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048a57600080fd5b506104936120c9565b6040518082815260200191505060405180910390f35b3480156104b557600080fd5b506104be6120cf565b6040518082815260200191505060405180910390f35b3480156104e057600080fd5b506104e96120d5565b604051808215151515815260200191505060405180910390f35b34801561050f57600080fd5b506105306004803603810190808035151590602001909291905050506120e8565b604051808215151515815260200191505060405180910390f35b34801561055657600080fd5b5061057560048036038101908080359060200190929190505050612168565b005b34801561058357600080fd5b5061058c612175565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105da57600080fd5b506105e361219b565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061060e6121a1565b6040518082815260200191505060405180910390f35b34801561063057600080fd5b5061066f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121a7565b604051808215151515815260200191505060405180910390f35b34801561069557600080fd5b5061069e61242f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ec57600080fd5b50610721600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612455565b604051808381526020018281526020019250505060405180910390f35b34801561074a57600080fd5b5061077f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612479565b604051808215151515815260200191505060405180910390f35b3480156107a557600080fd5b506107da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061255b565b6040518082815260200191505060405180910390f35b3480156107fc57600080fd5b506108056125a4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084557808201518184015260208101905061082a565b50505050905090810190601f1680156108725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088c57600080fd5b506108ad600480360381019080803515159060200190929190505050612642565b604051808215151515815260200191505060405180910390f35b3480156108d357600080fd5b506108dc6126c2565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b5061093d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126c8565b604051808215151515815260200191505060405180910390f35b34801561096357600080fd5b5061096c612a03565b6040518082815260200191505060405180910390f35b6109b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611236565b604051808215151515815260200191505060405180910390f35b3480156109dc57600080fd5b506109e5612a09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3357600080fd5b50610a72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a2f565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610aed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c22565b6040518082815260200191505060405180910390f35b348015610b0f57600080fd5b50610b18612ca9565b6040518082815260200191505060405180910390f35b348015610b3a57600080fd5b50610b43612caf565b604051808215151515815260200191505060405180910390f35b610b91600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c02565b604051808215151515815260200191505060405180910390f35b348015610bb757600080fd5b50610bc0612cc2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080600960009054906101000a900460ff161515610c2357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515610c5f57600080fd5b600c60149054906101000a900460ff1615610c9457600d544210158015610c885750600e544211155b1515610c9357600080fd5b5b610cb1610ca334600a54612ce7565b670de0b6b3a7640000612d1f565b9250610cd2600560009054906101000a900460ff1660ff16600a0a84612ce7565b91508160026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610d4457600080fd5b600082111515610d5057fe5b610dfa60026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b9050610e6760026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b60026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015610fa3575060176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b1561107d5760176000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561107c57600080fd5b5b6110c6600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111b360026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b811415156111bd57fe5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad183486604051808381526020018281526020019250505060405180910390a360019350505050919050565b600080600080600f60009054906101000a900460ff16151561125757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561129357600080fd5b601460009054906101000a900460ff16156112c85760155442101580156112bc57506016544211155b15156112c757600080fd5b5b6000601254111561132457601254601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115151561132357600080fd5b5b6010549250611348600560009054906101000a900460ff1660ff16600a0a84612ce7565b91508160026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156113ba57600080fd5b6000821115156113c657fe5b61147060026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b90506114dd60026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b60026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015611619575060176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b156116f35760176000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116f257600080fd5b5b61173c600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061182960026000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d35565b8114151561183357fe5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7273e9103e19ade7148e3fe481ca3da81f4a5b010fdfd1694d12070ca85628993486604051808381526020018281526020019250505060405180910390a360019350505050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119425780601f1061191757610100808354040283529160200191611942565b820191906000526020600020905b81548152906001019060200180831161192557829003601f168201915b505050505081565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b0a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611b1557600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611b3b57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b50565b60075481565b600f60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c1357600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611c6157600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611cec57600080fd5b611d35600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015611e0b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b15611ea157601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611ea057600080fd5b5b611eea600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601460009054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600a5481565b600e5481565b600960009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561214557600080fd5b81600960006101000a81548160ff02191690831515021790555060019050919050565b6121723382612d6a565b50565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60105481565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156122b8576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612343565b6122c28184612d51565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915090508060000154908060010154905082565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124d657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561251257600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561263a5780601f1061260f5761010080835404028352916020019161263a565b820191906000526020600020905b81548152906001019060200180831161261d57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561269f57600080fd5b81600f60006101000a81548160ff02191690831515021790555060019050919050565b60165481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561270557600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561275357600080fd5b61279c600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d51565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541180156128725750601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b1561290857601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561290757600080fd5b5b612951600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60125481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612ab7600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612d35565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60155481565b600c60149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415612cfa5760009050612d19565b8183029050818382811515612d0b57fe5b04141515612d1557fe5b8090505b92915050565b60008183811515612d2c57fe5b04905092915050565b60008183019050828110151515612d4857fe5b80905092915050565b6000828211151515612d5f57fe5b818303905092915050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612db857600080fd5b612e01600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612d51565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015612ed75750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442105b15612f6d57601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612f6c57600080fd5b5b612f7960075482612d51565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a723058204f1374bca36586034f8a93562ddd2df6c5eebbf08e4ae24589e59b96932114530029

Deployed Bytecode Sourcemap

28:15078:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14253:1;14241:9;:13;14237:102;;;14270:21;14280:10;14270:9;:21::i;:::-;;14237:102;;;14320:19;14328:10;14320:7;:19::i;:::-;;14237:102;28:15078;570:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;570:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;570:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5327:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5327:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3621:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13700:397;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13700:397:0;;;;;;766:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;766:30:0;;;;;;;;;;;;;;;;;;;;;;;8164:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8164:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2769:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2769:844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8661:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8661:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;669:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;669:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5069:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5069:43:0;;;;;;;;;;;;;;;;;;;;;;;5624:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5624:49:0;;;;;;;;;;;;;;;;;;;;;;;4994:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4994:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13511:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13511:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11388:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11388:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;8356:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8356:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5538:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5538:51:0;;;;;;;;;;;;;;;;;;;;;;;8236:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8236:36:0;;;;;;;;;;;;;;;;;;;;;;;4398:529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:529:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12364:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12364:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13068:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13068:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1497:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1497:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;622:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;622:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;622:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13325:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13325:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8824:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8824:46:0;;;;;;;;;;;;;;;;;;;;;;;1792:713;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1792:713:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8485:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8485:33:0;;;;;;;;;;;;;;;;;;;;;;;9098:2159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5195:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5195:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4066:324;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4066:324:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3879:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3879:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8741:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8741:48:0;;;;;;;;;;;;;;;;;;;;;;;5455:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5455:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5904:2191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;146:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5904:2191;6004:4;6598:19;6806:22;7158:11;6034:18;;;;;;;;;;;6026:27;;;;;;;;6096:1;6072:26;;:12;:26;;;;6064:35;;;;;;;;6150:17;;;;;;;;;;;6146:274;;;6338:23;;6319:15;:42;;:86;;;;;6384:21;;6365:15;:40;;6319:86;6311:95;;;;;;;;6146:274;6620:45;6624:32;6628:9;6638:16;;6624:3;:32::i;:::-;6658:6;6620:3;:45::i;:::-;6598:67;;6831:40;6848:8;;;;;;;;;;;6840:17;;6836:2;:21;6859:11;6831:3;:40::i;:::-;6806:65;;7006:14;6973:8;:29;6982:19;;;;;;;;;;;6973:29;;;;;;;;;;;;;;;;:47;;6941:90;;;;;;;;7092:1;7075:14;:18;7044:60;;;;;;7172:58;7176:8;:29;7185:19;;;;;;;;;;;7176:29;;;;;;;;;;;;;;;;7207:8;:22;7216:12;7207:22;;;;;;;;;;;;;;;;7172:3;:58::i;:::-;7158:72;;7275:50;7279:8;:29;7288:19;;;;;;;;;;;7279:29;;;;;;;;;;;;;;;;7310:14;7275:3;:50::i;:::-;7243:8;:29;7252:19;;;;;;;;;;;7243:29;;;;;;;;;;;;;;;:82;;;;7499:1;7460:8;:29;7469:19;;;;;;;;;;;7460:29;;;;;;;;;;;;;;;:36;;;:40;:104;;;;;7522:8;:29;7531:19;;;;;;;;;;;7522:29;;;;;;;;;;;;;;;:42;;;7504:15;:60;7460:104;7457:200;;;7620:8;:29;7629:19;;;;;;;;;;;7620:29;;;;;;;;;;;;;;;:36;;;7587:8;:29;7596:19;;;;;;;;;;;7587:29;;;;;;;;;;;;;;;;:69;;7579:78;;;;;;;;7457:200;7711:43;7715:8;:22;7724:12;7715:22;;;;;;;;;;;;;;;;7739:14;7711:3;:43::i;:::-;7686:8;:22;7695:12;7686:22;;;;;;;;;;;;;;;:68;;;;7813:58;7817:8;:29;7826:19;;;;;;;;;;;7817:29;;;;;;;;;;;;;;;;7848:8;:22;7857:12;7848:22;;;;;;;;;;;;;;;;7813:3;:58::i;:::-;7806:3;:65;7775:107;;;;;;7988:12;7925:136;;7963:10;7925:136;;;8015:9;8039:11;7925:136;;;;;;;;;;;;;;;;;;;;;;;;8081:4;8074:11;;5904:2191;;;;;;:::o;9098:2159::-;9196:4;9912:19;9958:22;10355:11;9226:15;;;;;;;;;;;9218:24;;;;;;;;9285:1;9261:26;;:12;:26;;;;9253:35;;;;;;;;9337:14;;;;;;;;;;;9333:265;;;9522:20;;9503:15;:39;;:80;;;;;9565:18;;9546:15;:37;;9503:80;9495:89;;;;;;;;9333:265;9683:1;9666:14;;:18;9662:163;;;9783:14;;9752:13;:27;9766:12;9752:27;;;;;;;;;;;;;;;;:45;;9711:102;;;;;;;;9662:163;9934:13;;9912:35;;9983:39;9999:8;;;;;;;;;;;9991:17;;9987:2;:21;10010:11;9983:3;:39::i;:::-;9958:64;;10193:14;10163:8;:26;10172:16;;;;;;;;;;;10163:26;;;;;;;;;;;;;;;;:44;;10131:87;;;;;;;;10279:1;10262:14;:18;10231:60;;;;;;10369:55;10373:8;:26;10382:16;;;;;;;;;;;10373:26;;;;;;;;;;;;;;;;10401:8;:22;10410:12;10401:22;;;;;;;;;;;;;;;;10369:3;:55::i;:::-;10355:69;;10466:47;10470:8;:26;10479:16;;;;;;;;;;;10470:26;;;;;;;;;;;;;;;;10498:14;10466:3;:47::i;:::-;10437:8;:26;10446:16;;;;;;;;;;;10437:26;;;;;;;;;;;;;;;:76;;;;10684:1;10648:8;:26;10657:16;;;;;;;;;;;10648:26;;;;;;;;;;;;;;;:33;;;:37;:98;;;;;10707:8;:26;10716:16;;;;;;;;;;;10707:26;;;;;;;;;;;;;;;:39;;;10689:15;:57;10648:98;10645:188;;;10799:8;:26;10808:16;;;;;;;;;;;10799:26;;;;;;;;;;;;;;;:33;;;10769:8;:26;10778:16;;;;;;;;;;;10769:26;;;;;;;;;;;;;;;;:63;;10761:72;;;;;;;;10645:188;10879:43;10883:8;:22;10892:12;10883:22;;;;;;;;;;;;;;;;10907:14;10879:3;:43::i;:::-;10854:8;:22;10863:12;10854:22;;;;;;;;;;;;;;;:68;;;;10981:55;10985:8;:26;10994:16;;;;;;;;;;;10985:26;;;;;;;;;;;;;;;;11013:8;:22;11022:12;11013:22;;;;;;;;;;;;;;;;10981:3;:55::i;:::-;10974:3;:62;10943:104;;;;;;11150:12;11090:133;;11125:10;11090:133;;;11177:9;11201:11;11090:133;;;;;;;;;;;;;;;;;;;;;;;;11243:4;11236:11;;9098:2159;;;;;;:::o;570:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5327:88::-;;;;;;;;;;;;;:::o;3621:250::-;3726:4;3781:6;3749:7;:19;3757:10;3749:19;;;;;;;;;;;;;;;:29;3769:8;3749:29;;;;;;;;;;;;;;;:38;;;;3824:8;3803:38;;3812:10;3803:38;;;3834:6;3803:38;;;;;;;;;;;;;;;;;;3859:4;3852:11;;3621:250;;;;:::o;13700:397::-;13873:13;;;;;;;;;;;13859:27;;:10;:27;;;:73;;;;13904:28;;;;;;;;;;;13890:42;;:10;:42;;;13859:73;13851:82;;;;;;;;13976:1;13960:4;13952:21;;;:25;13944:34;;;;;;;;14029:28;;;;;;;;;;;:37;;:60;14075:4;14067:21;;;14029:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14029:60:0;13700:397::o;766:30::-;;;;:::o;8164:34::-;;;;;;;;;;;;;:::o;2769:844::-;2895:4;2940:1;2925:17;;:3;:17;;;;2917:26;;;;;;;;2972:8;:15;2981:5;2972:15;;;;;;;;;;;;;;;;2962:6;:25;;2954:34;;;;;;;;3017:7;:14;3025:5;3017:14;;;;;;;;;;;;;;;:26;3032:10;3017:26;;;;;;;;;;;;;;;;3007:6;:36;;2999:45;;;;;;;;3075:28;3079:8;:15;3088:5;3079:15;;;;;;;;;;;;;;;;3096:6;3075:3;:28::i;:::-;3057:8;:15;3066:5;3057:15;;;;;;;;;;;;;;;:46;;;;3271:1;3246:8;:15;3255:5;3246:15;;;;;;;;;;;;;;;:22;;;:26;:76;;;;;3294:8;:15;3303:5;3294:15;;;;;;;;;;;;;;;:28;;;3276:15;:46;3246:76;3243:144;;;3364:8;:15;3373:5;3364:15;;;;;;;;;;;;;;;:22;;;3345:8;:15;3354:5;3345:15;;;;;;;;;;;;;;;;:41;;3337:50;;;;;;;;3243:144;3434:26;3438:8;:13;3447:3;3438:13;;;;;;;;;;;;;;;;3453:6;3434:3;:26::i;:::-;3418:8;:13;3427:3;3418:13;;;;;;;;;;;;;;;:42;;;;3500:39;3504:7;:14;3512:5;3504:14;;;;;;;;;;;;;;;:26;3519:10;3504:26;;;;;;;;;;;;;;;;3532:6;3500:3;:39::i;:::-;3471:7;:14;3479:5;3471:14;;;;;;;;;;;;;;;:26;3486:10;3471:26;;;;;;;;;;;;;;;:68;;;;3571:3;3555:28;;3564:5;3555:28;;;3576:6;3555:28;;;;;;;;;;;;;;;;;;3601:4;3594:11;;2769:844;;;;;:::o;8661:33::-;;;;;;;;;;;;;:::o;669:25::-;;;;;;;;;;;;;:::o;5069:43::-;;;;:::o;5624:49::-;;;;:::o;4994:37::-;;;;;;;;;;;;;:::o;13511:159::-;13591:4;13026:13;;;;;;;;;;;13014:25;;:10;:25;;;13006:34;;;;;;;;13634:6;13613:18;;:27;;;;;;;;;;;;;;;;;;13658:4;13651:11;;13511:159;;;:::o;11388:87::-;11442:25;11448:10;11460:6;11442:5;:25::i;:::-;11388:87;:::o;8356:76::-;;;;;;;;;;;;;:::o;5538:51::-;;;;:::o;8236:36::-;;;;:::o;4398:529::-;4519:4;4541:16;4560:7;:19;4568:10;4560:19;;;;;;;;;;;;;;;:29;4580:8;4560:29;;;;;;;;;;;;;;;;4541:48;;4625:8;4606:16;:27;4602:209;;;4682:1;4650:7;:19;4658:10;4650:19;;;;;;;;;;;;;;;:29;4670:8;4650:29;;;;;;;;;;;;;;;:33;;;;4602:209;;;4768:31;4772:8;4782:16;4768:3;:31::i;:::-;4736:7;:19;4744:10;4736:19;;;;;;;;;;;;;;;:29;4756:8;4736:29;;;;;;;;;;;;;;;:63;;;;4602:209;4857:8;4836:61;;4845:10;4836:61;;;4867:7;:19;4875:10;4867:19;;;;;;;;;;;;;;;:29;4887:8;4867:29;;;;;;;;;;;;;;;;4836:61;;;;;;;;;;;;;;;;;;4915:4;4908:11;;4398:529;;;;;:::o;238:75::-;;;;;;;;;;;;;:::o;12364:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13068:228::-;13160:4;13026:13;;;;;;;;;;;13014:25;;:10;:25;;;13006:34;;;;;;;;13219:1;13190:31;;:17;:31;;;;13182:40;;;;;;;;13249:17;13233:13;;:33;;;;;;;;;;;;;;;;;;13284:4;13277:11;;13068:228;;;:::o;1497:111::-;1555:4;1585:8;:15;1594:5;1585:15;;;;;;;;;;;;;;;;1578:22;;1497:111;;;:::o;622:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13325:153::-;13402:4;13026:13;;;;;;;;;;;13014:25;;:10;:25;;;13006:34;;;;;;;;13442:6;13424:15;;:24;;;;;;;;;;;;;;;;;;13466:4;13459:11;;13325:153;;;:::o;8824:46::-;;;;:::o;1792:713::-;1893:4;1939:1;1924:17;;:3;:17;;;;1916:26;;;;;;;;1971:8;:20;1980:10;1971:20;;;;;;;;;;;;;;;;1961:6;:30;;1953:39;;;;;;;;2028:32;2032:8;:20;2041:10;2032:20;;;;;;;;;;;;;;;;2053:6;2028:3;:32::i;:::-;2005:8;:20;2014:10;2005:20;;;;;;;;;;;;;;;:55;;;;2224:1;2194:8;:20;2203:10;2194:20;;;;;;;;;;;;;;;:27;;;:31;:86;;;;;2247:8;:20;2256:10;2247:20;;;;;;;;;;;;;;;:33;;;2229:15;:51;2194:86;2191:164;;;2327:8;:20;2336:10;2327:20;;;;;;;;;;;;;;;:27;;;2303:8;:20;2312:10;2303:20;;;;;;;;;;;;;;;;:51;;2295:60;;;;;;;;2191:164;2400:26;2404:8;:13;2413:3;2404:13;;;;;;;;;;;;;;;;2419:6;2400:3;:26::i;:::-;2384:8;:13;2393:3;2384:13;;;;;;;;;;;;;;;:42;;;;2463:3;2442:33;;2451:10;2442:33;;;2468:6;2442:33;;;;;;;;;;;;;;;;;;2493:4;2486:11;;1792:713;;;;:::o;8485:33::-;;;;:::o;5195:79::-;;;;;;;;;;;;;:::o;4066:324::-;4182:4;4236:47;4240:7;:19;4248:10;4240:19;;;;;;;;;;;;;;;:29;4260:8;4240:29;;;;;;;;;;;;;;;;4271:11;4236:3;:47::i;:::-;4204:7;:19;4212:10;4204:19;;;;;;;;;;;;;;;:29;4224:8;4204:29;;;;;;;;;;;;;;;:79;;;;4320:8;4299:61;;4308:10;4299:61;;;4330:7;:19;4338:10;4330:19;;;;;;;;;;;;;;;:29;4350:8;4330:29;;;;;;;;;;;;;;;;4299:61;;;;;;;;;;;;;;;;;;4378:4;4371:11;;4066:324;;;;:::o;3879:179::-;3993:7;4025;:15;4033:6;4025:15;;;;;;;;;;;;;;;:25;4041:8;4025:25;;;;;;;;;;;;;;;;4018:32;;3879:179;;;;:::o;8741:48::-;;;;:::o;5455:36::-;;;;;;;;;;;;;:::o;146:73::-;;;;;;;;;;;;;:::o;14477:220::-;14535:9;14572:1;14567;:6;14563:57;;;14607:1;14600:8;;;;14563:57;14640:1;14636;:5;14632:9;;14668:1;14663;14659;:5;;;;;;;;:10;14652:18;;;;;;14688:1;14681:8;;14477:220;;;;;:::o;14705:104::-;14763:7;14800:1;14796;:5;;;;;;;;14789:12;;14705:104;;;;:::o;14954:147::-;15012:9;15048:1;15044;:5;15040:9;;15072:1;15067;:6;;15060:14;;;;;;15092:1;15085:8;;14954:147;;;;:::o;14817:129::-;14875:7;14913:1;14908;:6;;14901:14;;;;;;14937:1;14933;:5;14926:12;;14817:129;;;;:::o;11483:597::-;11572:8;:14;11581:4;11572:14;;;;;;;;;;;;;;;;11562:6;:24;;11554:33;;;;;;;;11625:27;11629:8;:14;11638:4;11629:14;;;;;;;;;;;;;;;;11645:6;11625:3;:27::i;:::-;11608:8;:14;11617:4;11608:14;;;;;;;;;;;;;;;:44;;;;11810:1;11786:8;:14;11795:4;11786:14;;;;;;;;;;;;;;;:21;;;:25;:74;;;;;11833:8;:14;11842:4;11833:14;;;;;;;;;;;;;;;:27;;;11815:15;:45;11786:74;11783:140;;;11901:8;:14;11910:4;11901:14;;;;;;;;;;;;;;;:21;;;11883:8;:14;11892:4;11883:14;;;;;;;;;;;;;;;;:39;;11875:48;;;;;;;;11783:140;11964:24;11968:11;;11981:6;11964:3;:24::i;:::-;11950:11;:38;;;;12009:4;12004:18;;;12015:6;12004:18;;;;;;;;;;;;;;;;;;12061:1;12038:34;;12047:4;12038:34;;;12065:6;12038:34;;;;;;;;;;;;;;;;;;11483:597;;:::o

Swarm Source

bzzr://4f1374bca36586034f8a93562ddd2df6c5eebbf08e4ae24589e59b9693211453
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.