ETH Price: $3,321.70 (+1.74%)
Gas: 6 Gwei

Token

GMB Protocol (GMB)
 

Overview

Max Total Supply

5,000,000,000 GMB

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
26,000,000 GMB

Value
$0.00
0xe1c49f3c0075db37944e99d3bd27404604a00dd0
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
GMB

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 2: GMB Protocol.sol
pragma solidity ^0.5.2;

import "./ERCTOKEN.sol";

contract GMB is ERC20, Ownable, Pausable {

    using SafeMath for uint256;

    struct LockupInfo {
        uint256 releaseTime;
        uint256 lockupBalance;
        
    }

    string public name;
    string public symbol;
    uint8 constant public decimals =18;
    uint256 internal initialSupply;
    uint256 internal totalSupply_;
    uint256 internal mintCap;

    mapping(address => uint256) internal balances;
    mapping(address => bool) internal locks;
    mapping(address => bool) public frozen;
    mapping(address => mapping(address => uint256)) internal allowed;
    mapping(address => LockupInfo[]) internal lockupInfo;
    
    address implementation;

    event Lock(address indexed holder, uint256 value);
    event Unlock(address indexed holder, uint256 value);
    event Burn(address indexed owner, uint256 value);
    event Mint(uint256 value);
    event Freeze(address indexed holder);
    event Unfreeze(address indexed holder);

    modifier notFrozen(address _holder) {
        require(!frozen[_holder]);
        _;
    }

    constructor() public {
        name = "GMB Protocol";
        symbol = "GMB";
        initialSupply = 5000000000;
        totalSupply_ = initialSupply * 10 ** uint(decimals);
        mintCap = 5000000000 * 10 ** uint(decimals);
        balances[owner] = totalSupply_;

        emit Transfer(address(0), owner, totalSupply_);
    }

    function () payable external {
        address impl = implementation;
        require(impl != address(0));
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize)
            let result := delegatecall(gas, impl, ptr, calldatasize, 0, 0)
            let size := returndatasize
            returndatacopy(ptr, 0, size)
            
            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
    function _setImplementation(address _newImp) internal {
        implementation = _newImp;
    }
    
    function upgradeTo(address _newImplementation) public onlyOwner {
        require(implementation != _newImplementation);
        _setImplementation(_newImplementation);
    }

    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

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

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }
    
     function multiTransfer(address[] memory _toList, uint256[] memory _valueList) public whenNotPaused notFrozen(msg.sender) returns(bool){
        if(_toList.length != _valueList.length){
            revert();
        }
        
        for(uint256 i = 0; i < _toList.length; i++){
            transfer(_toList[i], _valueList[i]);
        }
        
        return true;
    }
    
   
    function balanceOf(address _holder) public view returns (uint256 balance) {
        uint256 lockedBalance = 0;
        if(locks[_holder]) {
            for(uint256 idx = 0; idx < lockupInfo[_holder].length ; idx++ ) {
                lockedBalance = lockedBalance.add(lockupInfo[_holder][idx].lockupBalance);
            }
        }
        return balances[_holder] + lockedBalance;
    }
    
    function currentBalanceOf(address _holder) public view returns(uint256 balance){
        uint256 unlockedBalance = 0;
        if(locks[_holder]){
            for(uint256 idx =0; idx < lockupInfo[_holder].length; idx++){
                if( lockupInfo[_holder][idx].releaseTime <= now){
                    unlockedBalance = unlockedBalance.add(lockupInfo[_holder][idx].lockupBalance);
                }
            }
        }
        return balances[_holder] + unlockedBalance;
    }

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));
        allowed[msg.sender][spender] = (allowed[msg.sender][spender].add(addedValue));

        emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance( address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));
        allowed[msg.sender][spender] = (allowed[msg.sender][spender].sub(subtractedValue));

        emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
        return true;
    }

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

    function lock(address _holder, uint256 _releaseStart, uint256 _amount) public onlyOwner returns(bool){
        require(balances[_holder] >= _amount);
        balances[_holder] = balances[_holder].sub(_amount);
        
        lockupInfo[_holder].push(
            LockupInfo(_releaseStart, _amount)    
        );
        
        locks[_holder] = true;
        
        emit Lock(_holder, _amount);
        
        return true;
        
    }

    function _unlock(address _holder, uint256 _idx) internal returns (bool) {
        require(locks[_holder]);
        require(_idx < lockupInfo[_holder].length);
        LockupInfo storage lockupinfo = lockupInfo[_holder][_idx];
        uint256 releaseAmount = lockupinfo.lockupBalance;
        
        delete lockupInfo[_holder][_idx];
        
        lockupInfo[_holder][_idx] = lockupInfo[_holder][lockupInfo[_holder].length.sub(1)];
        
        lockupInfo[_holder].length -= 1;
        
        if(lockupInfo[_holder].length == 0){
            locks[_holder] = false;
        }
        
        emit Unlock(_holder, releaseAmount);
        balances[_holder] = balances[_holder].add(releaseAmount);
        
        return true;
    }

    function unlock(address _holder, uint256 _idx) public onlyOwner returns (bool) {
        _unlock(_holder, _idx);
    }

    function freezeAccount(address _holder) public onlyOwner returns (bool) {
        require(!frozen[_holder]);
        frozen[_holder] = true;
        emit Freeze(_holder);
        return true;
    }

    function unfreezeAccount(address _holder) public onlyOwner returns (bool) {
        require(frozen[_holder]);
        frozen[_holder] = false;
        emit Unfreeze(_holder);
        return true;
    }

    function getNowTime() public view returns(uint256) {
        return now;
    }

    function showLockState(address _holder, uint256 _idx) public view returns (bool, uint256, uint256, uint256) {
        if(locks[_holder]) {
            return (
                locks[_holder],
                lockupInfo[_holder].length,
                lockupInfo[_holder][_idx].releaseTime,
                lockupInfo[_holder][_idx].lockupBalance
            );
        } else {
            return (
                locks[_holder],
                lockupInfo[_holder].length,
                0,0
            );

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

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

   
    
    function claimToken(ERC20 token, address _to, uint256 _value) public onlyOwner returns (bool) {
        token.transfer(_to, _value);
        return true;
    }

    function burn(uint256 _value) public onlyOwner returns (bool success) {
        require(_value <= balances[msg.sender]);
        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(burner, _value);
        emit Transfer(burner, address(0), _value);
        return true;
    }
    
    function burnFrom(address account, uint256 _value) public returns (bool) {
        uint256 decreasedAllowance = allowance(account, msg.sender).sub(_value);

        approve(msg.sender, decreasedAllowance);
        burn(_value);
    }
   
 
    function mint(address _to, uint256 _amount) onlyOwner public returns (bool) {
        require(mintCap >= totalSupply_.add(_amount));
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

     function autoUnlock(address _holder) internal returns(bool){
        if(locks[_holder] == false){
            return true;
        }
        
        for(uint256 idx = 0; idx < lockupInfo[_holder].length; idx++){
            if(lockupInfo[_holder][idx].releaseTime <= now)
            {
                if(_unlock(_holder, idx)){
                    idx -= 1;
                }
            }
        }
        return true;
    }
}

File 1 of 2: ERCTOKEN.sol
pragma solidity ^0.5.2;

contract Ownable {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
        newOwner = address(0);
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    modifier onlyNewOwner() {
        require(msg.sender != address(0));
        require(msg.sender == newOwner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        newOwner = _newOwner;
    }

    function acceptOwnership() public onlyNewOwner returns(bool) {
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}


library SafeMath {

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    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) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function allowance(address owner, address spender) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"claimToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toList","type":"address[]"},{"name":"_valueList","type":"uint256[]"}],"name":"multiTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"currentBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"unfreezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_idx","type":"uint256"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNowTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_holder","type":"address"},{"name":"_idx","type":"uint256"}],"name":"showLockState","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_releaseStart","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"freezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526000600160146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600c81526020017f474d422050726f746f636f6c000000000000000000000000000000000000000081525060029080519060200190620000fc92919062000274565b506040805190810160405280600381526020017f474d420000000000000000000000000000000000000000000000000000000000815250600390805190602001906200014a92919062000274565b5064012a05f200600481905550601260ff16600a0a60045402600581905550601260ff16600a0a64012a05f20002600681905550600554600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a362000323565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b757805160ff1916838001178555620002e8565b82800160010185558215620002e8579182015b82811115620002e7578251825591602001919060010190620002ca565b5b509050620002f79190620002fb565b5090565b6200032091905b808211156200031c57600081600090555060010162000302565b5090565b90565b613f5b80620003336000396000f3fe60806040526004361061020b576000357c01000000000000000000000000000000000000000000000000000000009004806379ba50971161012a578063a9059cbb116100bd578063dd62ed3e1161008c578063dd62ed3e14610dfa578063e2ab691d14610e7f578063f26c159f14610efc578063f2fde38b14610f65578063fb93210814610fb65761020b565b8063a9059cbb14610c3f578063c9e075c614610cb2578063d051665014610d3a578063d4ee1d9014610da35761020b565b80638da5cb5b116100f95780638da5cb5b14610aba57806395d89b4114610b115780639b819d3814610ba1578063a457c2d714610bcc5761020b565b806379ba50971461098e57806379cc6790146109bd5780637eee288d14610a305780638456cb5914610aa35761020b565b80633659cfe6116101a257806342966c681161017157806342966c681461083e5780635c975abb1461089157806370a08231146108c0578063788649ea146109255761020b565b80633659cfe6146106f057806339509351146107415780633f4ba83a146107b457806340c10f19146107cb5761020b565b80631e89d545116101de5780631e89d5451461045657806323b872dd146105c7578063313ce5671461065a578063353b66681461068b5761020b565b806306fdde0314610295578063095ea7b314610325578063125bfb661461039857806318160ddd1461042b575b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561026e57600080fd5b60405136600082376000803683855af43d806000843e8160008114610291578184f35b8184fd5b3480156102a157600080fd5b506102aa611029565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ea5780820151818401526020810190506102cf565b50505050905090810190601f1680156103175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033157600080fd5b5061037e6004803603604081101561034857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c7565b604051808215151515815260200191505060405180910390f35b3480156103a457600080fd5b50610411600480360360608110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d5565b604051808215151515815260200191505060405180910390f35b34801561043757600080fd5b5061044061131c565b6040518082815260200191505060405180910390f35b34801561046257600080fd5b506105ad6004803603604081101561047957600080fd5b810190808035906020019064010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460208302840111640100000000831117156104ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184602083028401116401000000008311171561055e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611326565b604051808215151515815260200191505060405180910390f35b3480156105d357600080fd5b50610640600480360360608110156105ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061140f565b604051808215151515815260200191505060405180910390f35b34801561066657600080fd5b5061066f6118a3565b604051808260ff1660ff16815260200191505060405180910390f35b34801561069757600080fd5b506106da600480360360208110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a8565b6040518082815260200191505060405180910390f35b3480156106fc57600080fd5b5061073f6004803603602081101561071357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a83565b005b34801561074d57600080fd5b5061079a6004803603604081101561076457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b47565b604051808215151515815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611d7e565b005b3480156107d757600080fd5b50610824600480360360408110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3d565b604051808215151515815260200191505060405180910390f35b34801561084a57600080fd5b506108776004803603602081101561086157600080fd5b8101908080359060200190929190505050611fdf565b604051808215151515815260200191505060405180910390f35b34801561089d57600080fd5b506108a66121fd565b604051808215151515815260200191505060405180910390f35b3480156108cc57600080fd5b5061090f600480360360208110156108e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612210565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b506109746004803603602081101561094857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612384565b604051808215151515815260200191505060405180910390f35b34801561099a57600080fd5b506109a36124dd565b604051808215151515815260200191505060405180910390f35b3480156109c957600080fd5b50610a16600480360360408110156109e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126ba565b604051808215151515815260200191505060405180910390f35b348015610a3c57600080fd5b50610a8960048036036040811015610a5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126f7565b604051808215151515815260200191505060405180910390f35b348015610aaf57600080fd5b50610ab8612765565b005b348015610ac657600080fd5b50610acf612824565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1d57600080fd5b50610b26612849565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b66578082015181840152602081019050610b4b565b50505050905090810190601f168015610b935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bad57600080fd5b50610bb66128e7565b6040518082815260200191505060405180910390f35b348015610bd857600080fd5b50610c2560048036036040811015610bef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128ef565b604051808215151515815260200191505060405180910390f35b348015610c4b57600080fd5b50610c9860048036036040811015610c6257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b26565b604051808215151515815260200191505060405180910390f35b348015610cbe57600080fd5b50610d0b60048036036040811015610cd557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e1f565b604051808515151515815260200184815260200183815260200182815260200194505050505060405180910390f35b348015610d4657600080fd5b50610d8960048036036020811015610d5d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061307b565b604051808215151515815260200191505060405180910390f35b348015610daf57600080fd5b50610db861309b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e0657600080fd5b50610e6960048036036040811015610e1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130c1565b6040518082815260200191505060405180910390f35b348015610e8b57600080fd5b50610ee260048036036060811015610ea257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613148565b604051808215151515815260200191505060405180910390f35b348015610f0857600080fd5b50610f4b60048036036020811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133cf565b604051808215151515815260200191505060405180910390f35b348015610f7157600080fd5b50610fb460048036036020811015610f8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613529565b005b348015610fc257600080fd5b5061100f60048036036040811015610fd957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613604565b604051808215151515815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110bf5780601f10611094576101008083540402835291602001916110bf565b820191906000526020600020905b8154815290600101906020018083116110a257829003601f168201915b505050505081565b6000600160149054906101000a900460ff161515156110e557600080fd5b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123257600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b505050506040513d60208110156112ff57600080fd5b810190808051906020019092919050505050600190509392505050565b6000600554905090565b6000600160149054906101000a900460ff1615151561134457600080fd5b33600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561139e57600080fd5b825184511415156113ae57600080fd5b60008090505b8451811015611403576113f585828151811015156113ce57fe5b9060200190602002015185838151811015156113e657fe5b90602001906020020151612b26565b5080806001019150506113b4565b50600191505092915050565b6000600160149054906101000a900460ff1615151561142d57600080fd5b83600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561148757600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114e4576114e285613884565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561152057600080fd5b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561156e57600080fd5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156115f957600080fd5b61164b83600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e083600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b283600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b601281565b60008060009050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a395760008090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611a375742600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561199e57fe5b906000526020600020906002020160000154111515611a2a57611a27600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611a0657fe5b906000526020600020906002020160010154836139e590919063ffffffff16565b91505b8080600101915050611907565b505b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ade57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b3b57600080fd5b611b4481613a03565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b8457600080fd5b611c1382600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b600160149054906101000a900460ff161515611df457600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9a57600080fd5b611eaf826005546139e590919063ffffffff16565b60065410151515611ebf57600080fd5b611ed4826005546139e590919063ffffffff16565b600581905550611f2c82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561203c57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561208a57600080fd5b60003390506120e183600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612139836005546139cc90919063ffffffff16565b6005819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b600160149054906101000a900460ff1681565b60008060009050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233a5760008090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561233857612329600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561230857fe5b906000526020600020906002020160010154836139e590919063ffffffff16565b9150808060010191505061226f565b505b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123e157600080fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561243957600080fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561251a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6000806126d9836126cb86336130c1565b6139cc90919063ffffffff16565b90506126e533826110c7565b506126ef83611fdf565b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275457600080fd5b61275e8383613a47565b5092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127c057600080fd5b600160149054906101000a900460ff161515156127dc57600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128df5780601f106128b4576101008083540402835291602001916128df565b820191906000526020600020905b8154815290600101906020018083116128c257829003601f168201915b505050505081565b600042905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561292c57600080fd5b6129bb82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600160149054906101000a900460ff16151515612b4457600080fd5b33600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612b9e57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bfb57612bf933613884565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612c3757600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515612c8557600080fd5b612cd783600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6c83600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600080600080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fd057600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515612f5357fe5b906000526020600020906002020160000154600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515612fb157fe5b9060005260206000209060020201600101549350935093509350613072565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905060008081915080905093509350935093505b92959194509250565b60096020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131a557600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156131f357600080fd5b61324582600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280858152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050506001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427836040518082815260200191505060405180910390a2600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561342c57600080fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561348557600080fd5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561358457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156135c057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561366157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561369d57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156136eb57600080fd5b61373d82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137d282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156138e757600190506139c7565b60008090505b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156139c15742600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561398457fe5b9060005260206000209060020201600001541115156139b4576139a78382613a47565b156139b3576001810390505b5b80806001019150506138ed565b50600190505b919050565b60008282111515156139da57fe5b818303905092915050565b60008082840190508381101515156139f957fe5b8091505092915050565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613aa157600080fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101515613af157600080fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515613b3f57fe5b90600052602060002090600202019050600081600101549050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613ba457fe5b906000526020600020906002020160008082016000905560018201600090555050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613c5a6001600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506139cc90919063ffffffff16565b815481101515613c6657fe5b9060005260206000209060020201600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515613cc057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081613d3a9190613ece565b506000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501415613ddf576000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a2613e7f81600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b815481835581811115613efb57600202816002028360005260206000209182019101613efa9190613f00565b5b505050565b613f2c91905b80821115613f2857600080820160009055600182016000905550600201613f06565b5090565b9056fea165627a7a723058206a86fbc6dd52bdbea38b3b1173ebac088c9050a1940d521489a59c9a3b2163070029

Deployed Bytecode

0x60806040526004361061020b576000357c01000000000000000000000000000000000000000000000000000000009004806379ba50971161012a578063a9059cbb116100bd578063dd62ed3e1161008c578063dd62ed3e14610dfa578063e2ab691d14610e7f578063f26c159f14610efc578063f2fde38b14610f65578063fb93210814610fb65761020b565b8063a9059cbb14610c3f578063c9e075c614610cb2578063d051665014610d3a578063d4ee1d9014610da35761020b565b80638da5cb5b116100f95780638da5cb5b14610aba57806395d89b4114610b115780639b819d3814610ba1578063a457c2d714610bcc5761020b565b806379ba50971461098e57806379cc6790146109bd5780637eee288d14610a305780638456cb5914610aa35761020b565b80633659cfe6116101a257806342966c681161017157806342966c681461083e5780635c975abb1461089157806370a08231146108c0578063788649ea146109255761020b565b80633659cfe6146106f057806339509351146107415780633f4ba83a146107b457806340c10f19146107cb5761020b565b80631e89d545116101de5780631e89d5451461045657806323b872dd146105c7578063313ce5671461065a578063353b66681461068b5761020b565b806306fdde0314610295578063095ea7b314610325578063125bfb661461039857806318160ddd1461042b575b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561026e57600080fd5b60405136600082376000803683855af43d806000843e8160008114610291578184f35b8184fd5b3480156102a157600080fd5b506102aa611029565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ea5780820151818401526020810190506102cf565b50505050905090810190601f1680156103175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033157600080fd5b5061037e6004803603604081101561034857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c7565b604051808215151515815260200191505060405180910390f35b3480156103a457600080fd5b50610411600480360360608110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d5565b604051808215151515815260200191505060405180910390f35b34801561043757600080fd5b5061044061131c565b6040518082815260200191505060405180910390f35b34801561046257600080fd5b506105ad6004803603604081101561047957600080fd5b810190808035906020019064010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460208302840111640100000000831117156104ca57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184602083028401116401000000008311171561055e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611326565b604051808215151515815260200191505060405180910390f35b3480156105d357600080fd5b50610640600480360360608110156105ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061140f565b604051808215151515815260200191505060405180910390f35b34801561066657600080fd5b5061066f6118a3565b604051808260ff1660ff16815260200191505060405180910390f35b34801561069757600080fd5b506106da600480360360208110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a8565b6040518082815260200191505060405180910390f35b3480156106fc57600080fd5b5061073f6004803603602081101561071357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a83565b005b34801561074d57600080fd5b5061079a6004803603604081101561076457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b47565b604051808215151515815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611d7e565b005b3480156107d757600080fd5b50610824600480360360408110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e3d565b604051808215151515815260200191505060405180910390f35b34801561084a57600080fd5b506108776004803603602081101561086157600080fd5b8101908080359060200190929190505050611fdf565b604051808215151515815260200191505060405180910390f35b34801561089d57600080fd5b506108a66121fd565b604051808215151515815260200191505060405180910390f35b3480156108cc57600080fd5b5061090f600480360360208110156108e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612210565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b506109746004803603602081101561094857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612384565b604051808215151515815260200191505060405180910390f35b34801561099a57600080fd5b506109a36124dd565b604051808215151515815260200191505060405180910390f35b3480156109c957600080fd5b50610a16600480360360408110156109e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126ba565b604051808215151515815260200191505060405180910390f35b348015610a3c57600080fd5b50610a8960048036036040811015610a5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126f7565b604051808215151515815260200191505060405180910390f35b348015610aaf57600080fd5b50610ab8612765565b005b348015610ac657600080fd5b50610acf612824565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1d57600080fd5b50610b26612849565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b66578082015181840152602081019050610b4b565b50505050905090810190601f168015610b935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bad57600080fd5b50610bb66128e7565b6040518082815260200191505060405180910390f35b348015610bd857600080fd5b50610c2560048036036040811015610bef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128ef565b604051808215151515815260200191505060405180910390f35b348015610c4b57600080fd5b50610c9860048036036040811015610c6257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b26565b604051808215151515815260200191505060405180910390f35b348015610cbe57600080fd5b50610d0b60048036036040811015610cd557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e1f565b604051808515151515815260200184815260200183815260200182815260200194505050505060405180910390f35b348015610d4657600080fd5b50610d8960048036036020811015610d5d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061307b565b604051808215151515815260200191505060405180910390f35b348015610daf57600080fd5b50610db861309b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e0657600080fd5b50610e6960048036036040811015610e1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130c1565b6040518082815260200191505060405180910390f35b348015610e8b57600080fd5b50610ee260048036036060811015610ea257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613148565b604051808215151515815260200191505060405180910390f35b348015610f0857600080fd5b50610f4b60048036036020811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133cf565b604051808215151515815260200191505060405180910390f35b348015610f7157600080fd5b50610fb460048036036020811015610f8857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613529565b005b348015610fc257600080fd5b5061100f60048036036040811015610fd957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613604565b604051808215151515815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110bf5780601f10611094576101008083540402835291602001916110bf565b820191906000526020600020905b8154815290600101906020018083116110a257829003601f168201915b505050505081565b6000600160149054906101000a900460ff161515156110e557600080fd5b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123257600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b505050506040513d60208110156112ff57600080fd5b810190808051906020019092919050505050600190509392505050565b6000600554905090565b6000600160149054906101000a900460ff1615151561134457600080fd5b33600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561139e57600080fd5b825184511415156113ae57600080fd5b60008090505b8451811015611403576113f585828151811015156113ce57fe5b9060200190602002015185838151811015156113e657fe5b90602001906020020151612b26565b5080806001019150506113b4565b50600191505092915050565b6000600160149054906101000a900460ff1615151561142d57600080fd5b83600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561148757600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114e4576114e285613884565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561152057600080fd5b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561156e57600080fd5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156115f957600080fd5b61164b83600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e083600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b283600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b601281565b60008060009050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a395760008090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611a375742600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561199e57fe5b906000526020600020906002020160000154111515611a2a57611a27600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611a0657fe5b906000526020600020906002020160010154836139e590919063ffffffff16565b91505b8080600101915050611907565b505b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ade57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b3b57600080fd5b611b4481613a03565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b8457600080fd5b611c1382600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b600160149054906101000a900460ff161515611df457600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9a57600080fd5b611eaf826005546139e590919063ffffffff16565b60065410151515611ebf57600080fd5b611ed4826005546139e590919063ffffffff16565b600581905550611f2c82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561203c57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561208a57600080fd5b60003390506120e183600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612139836005546139cc90919063ffffffff16565b6005819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b600160149054906101000a900460ff1681565b60008060009050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233a5760008090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561233857612329600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561230857fe5b906000526020600020906002020160010154836139e590919063ffffffff16565b9150808060010191505061226f565b505b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123e157600080fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561243957600080fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561251a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6000806126d9836126cb86336130c1565b6139cc90919063ffffffff16565b90506126e533826110c7565b506126ef83611fdf565b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275457600080fd5b61275e8383613a47565b5092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127c057600080fd5b600160149054906101000a900460ff161515156127dc57600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128df5780601f106128b4576101008083540402835291602001916128df565b820191906000526020600020905b8154815290600101906020018083116128c257829003601f168201915b505050505081565b600042905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561292c57600080fd5b6129bb82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600160149054906101000a900460ff16151515612b4457600080fd5b33600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612b9e57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bfb57612bf933613884565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612c3757600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515612c8557600080fd5b612cd783600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6c83600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600080600080600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fd057600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515612f5357fe5b906000526020600020906002020160000154600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515612fb157fe5b9060005260206000209060020201600101549350935093509350613072565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905060008081915080905093509350935093505b92959194509250565b60096020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131a557600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156131f357600080fd5b61324582600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280858152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050506001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427836040518082815260200191505060405180910390a2600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561342c57600080fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561348557600080fd5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561358457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156135c057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561366157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561369d57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156136eb57600080fd5b61373d82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139cc90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137d282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156138e757600190506139c7565b60008090505b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156139c15742600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561398457fe5b9060005260206000209060020201600001541115156139b4576139a78382613a47565b156139b3576001810390505b5b80806001019150506138ed565b50600190505b919050565b60008282111515156139da57fe5b818303905092915050565b60008082840190508381101515156139f957fe5b8091505092915050565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613aa157600080fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101515613af157600080fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515613b3f57fe5b90600052602060002090600202019050600081600101549050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515613ba457fe5b906000526020600020906002020160008082016000905560018201600090555050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613c5a6001600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506139cc90919063ffffffff16565b815481101515613c6657fe5b9060005260206000209060020201600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515613cc057fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081613d3a9190613ece565b506000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501415613ddf576000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a2613e7f81600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139e590919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b815481835581811115613efb57600202816002028360005260206000209182019101613efa9190613f00565b5b505050565b613f2c91905b80821115613f2857600080820160009055600182016000905550600201613f06565b5090565b9056fea165627a7a723058206a86fbc6dd52bdbea38b3b1173ebac088c9050a1940d521489a59c9a3b2163070029

Deployed Bytecode Sourcemap

55:10265:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1533:12;1548:14;;;;;;;;;;;1533:29;;1597:1;1581:18;;:4;:18;;;;1573:27;;;;;;;;1652:4;1646:11;1692:12;1689:1;1684:3;1671:34;1779:1;1776;1762:12;1757:3;1751:4;1746:3;1733:48;1807:14;1858:4;1855:1;1850:3;1835:28;1898:6;1923:1;1918:28;;;;1982:4;1977:3;1970:17;1918:28;1939:4;1934:3;1927:17;246:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;246:18:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;246:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4868:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4868:220:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4868:220:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8732:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8732:162:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8732:162:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2307:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2307:91:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2960:383;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:383:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2960:383:1;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2960:383:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2960:383:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2960:383:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2960:383:1;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2960:383:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2960:383:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2960:383:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2960:383:1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4270:590;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4270:590:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4270:590:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;298:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;298:34:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3768:494;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3768:494:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3768:494:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2122:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2122:177:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2122:177:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;5096:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5096:322:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5096:322:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2072:105:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2072:105:0;;;:::i;:::-;;9550:316:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:316:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9550:316:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8902:384;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8902:384:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8902:384:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1770:26:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1770:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3360:396:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3360:396:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3360:396:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7485:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7485:206:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7485:206:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;677:181:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;677:181:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9298:238:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9298:238:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9298:238:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7147:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7147:120:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7147:120:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1961:103:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1961:103:0;;;:::i;:::-;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;271::1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;271:20:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;271:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7699:80:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5426:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5426:333:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5426:333:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2406:541;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2406:541:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2406:541:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7787:543;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7787:543:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7787:543:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;543:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;543:38:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;543:38:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;78:23:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;78:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5767:136:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5767:136:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5767:136:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5911:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5911:459:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5911:459:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7275:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7275:202:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7275:202:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;524:145:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;524:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;524:145:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8346:367:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8346:367:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8346:367:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;246:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4868:220::-;4949:4;1850:6:0;;;;;;;;;;;1849:7;1841:16;;;;;;;;4998:6:1;4966:7;:19;4974:10;4966:19;;;;;;;;;;;;;;;:29;4986:8;4966:29;;;;;;;;;;;;;;;:38;;;;5041:8;5020:38;;5029:10;5020:38;;;5051:6;5020:38;;;;;;;;;;;;;;;;;;5076:4;5069:11;;4868:220;;;;:::o;8732:162::-;8820:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;8837:5:1;:14;;;8852:3;8857:6;8837:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8837:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8837:27:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8837:27:1;;;;;;;;;;;;;;;;;8882:4;8875:11;;8732:162;;;;;:::o;2307:91::-;2351:7;2378:12;;2371:19;;2307:91;:::o;2960:383::-;3089:4;1850:6:0;;;;;;;;;;;1849:7;1841:16;;;;;;;;3069:10:1;1102:6;:15;1109:7;1102:15;;;;;;;;;;;;;;;;;;;;;;;;;1101:16;1093:25;;;;;;;;3126:10;:17;3108:7;:14;:35;;3105:74;;;3159:8;;;3105:74;3203:9;3215:1;3203:13;;3199:105;3222:7;:14;3218:1;:18;3199:105;;;3257:35;3266:7;3274:1;3266:10;;;;;;;;;;;;;;;;;;3278;3289:1;3278:13;;;;;;;;;;;;;;;;;;3257:8;:35::i;:::-;;3238:3;;;;;;;3199:105;;;;3331:4;3324:11;;1868:1:0;2960:383:1;;;;:::o;4270:590::-;4382:4;1850:6:0;;;;;;;;;;;1849:7;1841:16;;;;;;;;4367:5:1;1102:6;:15;1109:7;1102:15;;;;;;;;;;;;;;;;;;;;;;;;;1101:16;1093:25;;;;;;;;4403:5;:12;4409:5;4403:12;;;;;;;;;;;;;;;;;;;;;;;;;4399:62;;;4432:17;4443:5;4432:10;:17::i;:::-;;4399:62;4494:1;4479:17;;:3;:17;;;;4471:26;;;;;;;;4526:8;:15;4535:5;4526:15;;;;;;;;;;;;;;;;4516:6;:25;;4508:34;;;;;;;;4571:7;:14;4579:5;4571:14;;;;;;;;;;;;;;;:26;4586:10;4571:26;;;;;;;;;;;;;;;;4561:6;:36;;4553:45;;;;;;;;4629:27;4649:6;4629:8;:15;4638:5;4629:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;4611:8;:15;4620:5;4611:15;;;;;;;;;;;;;;;:45;;;;4683:25;4701:6;4683:8;:13;4692:3;4683:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4667:8;:13;4676:3;4667:13;;;;;;;;;;;;;;;:41;;;;4748:38;4779:6;4748:7;:14;4756:5;4748:14;;;;;;;;;;;;;;;:26;4763:10;4748:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;4719:7;:14;4727:5;4719:14;;;;;;;;;;;;;;;:26;4734:10;4719:26;;;;;;;;;;;;;;;:67;;;;4818:3;4802:28;;4811:5;4802:28;;;4823:6;4802:28;;;;;;;;;;;;;;;;;;4848:4;4841:11;;1868:1:0;4270:590:1;;;;;:::o;298:34::-;330:2;298:34;:::o;3768:494::-;3831:15;3858:23;3884:1;3858:27;;3899:5;:14;3905:7;3899:14;;;;;;;;;;;;;;;;;;;;;;;;;3896:306;;;3933:11;3946:1;3933:14;;3929:262;3955:10;:19;3966:7;3955:19;;;;;;;;;;;;;;;:26;;;;3949:3;:32;3929:262;;;4052:3;4012:10;:19;4023:7;4012:19;;;;;;;;;;;;;;;4032:3;4012:24;;;;;;;;;;;;;;;;;;;;:36;;;:43;;4008:168;;;4097:59;4117:10;:19;4128:7;4117:19;;;;;;;;;;;;;;;4137:3;4117:24;;;;;;;;;;;;;;;;;;;;:38;;;4097:15;:19;;:59;;;;:::i;:::-;4079:77;;4008:168;3983:5;;;;;;;3929:262;;;;3896:306;4239:15;4219:8;:17;4228:7;4219:17;;;;;;;;;;;;;;;;:35;4212:42;;;3768:494;;;:::o;2122:177::-;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;2223:18:1;2205:36;;:14;;;;;;;;;;;:36;;;;2197:45;;;;;;;;2253:38;2272:18;2253;:38::i;:::-;2122:177;:::o;5096:322::-;5176:4;5220:1;5201:21;;:7;:21;;;;5193:30;;;;;;;;5266:44;5299:10;5266:7;:19;5274:10;5266:19;;;;;;;;;;;;;;;:28;5286:7;5266:28;;;;;;;;;;;;;;;;:32;;:44;;;;:::i;:::-;5234:7;:19;5242:10;5234:19;;;;;;;;;;;;;;;:28;5254:7;5234:28;;;;;;;;;;;;;;;:77;;;;5350:7;5329:59;;5338:10;5329:59;;;5359:7;:19;5367:10;5359:19;;;;;;;;;;;;;;;:28;5379:7;5359:28;;;;;;;;;;;;;;;;5329:59;;;;;;;;;;;;;;;;;;5406:4;5399:11;;5096:322;;;;:::o;2072:105:0:-;354:5;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;1926:6;;;;;;;;;;;1918:15;;;;;;;;2139:5;2130:6;;:14;;;;;;;;;;;;;;;;;;2160:9;;;;;;;;;;2072:105::o;9550:316:1:-;9620:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;9656:25:1;9673:7;9656:12;;:16;;:25;;;;:::i;:::-;9645:7;;:36;;9637:45;;;;;;;;9708:25;9725:7;9708:12;;:16;;:25;;;;:::i;:::-;9693:12;:40;;;;9760:26;9778:7;9760:8;:13;9769:3;9760:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;9744:8;:13;9753:3;9744:13;;;;;;;;;;;;;;;:42;;;;9823:3;9802:34;;9819:1;9802:34;;;9828:7;9802:34;;;;;;;;;;;;;;;;;;9854:4;9847:11;;9550:316;;;;:::o;8902:384::-;8958:12;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;9001:8:1;:20;9010:10;9001:20;;;;;;;;;;;;;;;;8991:6;:30;;8983:39;;;;;;;;9033:14;9050:10;9033:27;;9090:28;9111:6;9090:8;:16;9099:6;9090:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;9071:8;:16;9080:6;9071:16;;;;;;;;;;;;;;;:47;;;;9144:24;9161:6;9144:12;;:16;;:24;;;;:::i;:::-;9129:12;:39;;;;9189:6;9184:20;;;9197:6;9184:20;;;;;;;;;;;;;;;;;;9245:1;9220:36;;9229:6;9220:36;;;9249:6;9220:36;;;;;;;;;;;;;;;;;;9274:4;9267:11;;;8902:384;;;:::o;1770:26:0:-;;;;;;;;;;;;;:::o;3360:396:1:-;3417:15;3445:21;3469:1;3445:25;;3484:5;:14;3490:7;3484:14;;;;;;;;;;;;;;;;;;;;;;;;;3481:217;;;3519:11;3533:1;3519:15;;3515:172;3542:10;:19;3553:7;3542:19;;;;;;;;;;;;;;;:26;;;;3536:3;:32;3515:172;;;3614:57;3632:10;:19;3643:7;3632:19;;;;;;;;;;;;;;;3652:3;3632:24;;;;;;;;;;;;;;;;;;;;:38;;;3614:13;:17;;:57;;;;:::i;:::-;3598:73;;3571:5;;;;;;;3515:172;;;;3481:217;3735:13;3715:8;:17;3724:7;3715:17;;;;;;;;;;;;;;;;:33;3708:40;;;3360:396;;;:::o;7485:206::-;7553:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;7578:6:1;:15;7585:7;7578:15;;;;;;;;;;;;;;;;;;;;;;;;;7570:24;;;;;;;;7623:5;7605:6;:15;7612:7;7605:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;7653:7;7644:17;;;;;;;;;;;;7679:4;7672:11;;7485:206;;;:::o;677:181:0:-;732:4;451:1;429:24;;:10;:24;;;;421:33;;;;;;;;487:8;;;;;;;;;;;473:22;;:10;:22;;;465:31;;;;;;;;782:8;;;;;;;;;;;754:37;;775:5;;;;;;;;;;;754:37;;;;;;;;;;;;810:8;;;;;;;;;;;802:5;;:16;;;;;;;;;;;;;;;;;;848:1;829:8;;:21;;;;;;;;;;;;;;;;;;677:181;:::o;9298:238:1:-;9365:4;9382:26;9411:42;9446:6;9411:30;9421:7;9430:10;9411:9;:30::i;:::-;:34;;:42;;;;:::i;:::-;9382:71;;9466:39;9474:10;9486:18;9466:7;:39::i;:::-;;9516:12;9521:6;9516:4;:12::i;:::-;;9298:238;;;;;:::o;7147:120::-;7220:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;7237:22:1;7245:7;7254:4;7237:7;:22::i;:::-;;7147:120;;;;:::o;1961:103:0:-;354:5;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;1850:6;;;;;;;;;;;1849:7;1841:16;;;;;;;;2029:4;2020:6;;:13;;;;;;;;;;;;;;;;;;2049:7;;;;;;;;;;1961:103::o;51:20::-;;;;;;;;;;;;;:::o;271::1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7699:80::-;7741:7;7768:3;7761:10;;7699:80;:::o;5426:333::-;5512:4;5556:1;5537:21;;:7;:21;;;;5529:30;;;;;;;;5602:49;5635:15;5602:7;:19;5610:10;5602:19;;;;;;;;;;;;;;;:28;5622:7;5602:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;5570:7;:19;5578:10;5570:19;;;;;;;;;;;;;;;:28;5590:7;5570:28;;;;;;;;;;;;;;;:82;;;;5691:7;5670:59;;5679:10;5670:59;;;5700:7;:19;5708:10;5700:19;;;;;;;;;;;;;;;:28;5720:7;5700:28;;;;;;;;;;;;;;;;5670:59;;;;;;;;;;;;;;;;;;5747:4;5740:11;;5426:333;;;;:::o;2406:541::-;2505:4;1850:6:0;;;;;;;;;;;1849:7;1841:16;;;;;;;;2484:10:1;1102:6;:15;1109:7;1102:15;;;;;;;;;;;;;;;;;;;;;;;;;1101:16;1093:25;;;;;;;;2526:5;:17;2532:10;2526:17;;;;;;;;;;;;;;;;;;;;;;;;;2522:72;;;2560:22;2571:10;2560;:22::i;:::-;;2522:72;2627:1;2612:17;;:3;:17;;;;2604:26;;;;;;;;2659:8;:20;2668:10;2659:20;;;;;;;;;;;;;;;;2649:6;:30;;2641:39;;;;;;;;2784:32;2809:6;2784:8;:20;2793:10;2784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;2761:8;:20;2770:10;2761:20;;;;;;;;;;;;;;;:55;;;;2843:25;2861:6;2843:8;:13;2852:3;2843:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2827:8;:13;2836:3;2827:13;;;;;;;;;;;;;;;:41;;;;2905:3;2884:33;;2893:10;2884:33;;;2910:6;2884:33;;;;;;;;;;;;;;;;;;2935:4;2928:11;;1868:1:0;2406:541:1;;;;:::o;7787:543::-;7862:4;7868:7;7877;7886;7909:5;:14;7915:7;7909:14;;;;;;;;;;;;;;;;;;;;;;;;;7906:417;;;7966:5;:14;7972:7;7966:14;;;;;;;;;;;;;;;;;;;;;;;;;7999:10;:19;8010:7;7999:19;;;;;;;;;;;;;;;:26;;;;8044:10;:19;8055:7;8044:19;;;;;;;;;;;;;;;8064:4;8044:25;;;;;;;;;;;;;;;;;;;;:37;;;8100:10;:19;8111:7;8100:19;;;;;;;;;;;;;;;8120:4;8100:25;;;;;;;;;;;;;;;;;;;;:39;;;7940:214;;;;;;;;;;7906:417;8213:5;:14;8219:7;8213:14;;;;;;;;;;;;;;;;;;;;;;;;;8246:10;:19;8257:7;8246:19;;;;;;;;;;;;;;;:26;;;;8291:1;8293;8187:122;;;;;;;;;;;;;;7787:543;;;;;;;;:::o;543:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;78:23:0:-;;;;;;;;;;;;;:::o;5767:136:1:-;5842:7;5869;:16;5877:7;5869:16;;;;;;;;;;;;;;;:26;5886:8;5869:26;;;;;;;;;;;;;;;;5862:33;;5767:136;;;;:::o;5911:459::-;6007:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;6052:7:1;6031:8;:17;6040:7;6031:17;;;;;;;;;;;;;;;;:28;;6023:37;;;;;;;;6091:30;6113:7;6091:8;:17;6100:7;6091:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;6071:8;:17;6080:7;6071:17;;;;;;;;;;;;;;;:50;;;;6142:10;:19;6153:7;6142:19;;;;;;;;;;;;;;;6181:34;;;;;;;;;6192:13;6181:34;;;;6207:7;6181:34;;;6142:88;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6142:88:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6268:4;6251:5;:14;6257:7;6251:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;6303:7;6298:22;;;6312:7;6298:22;;;;;;;;;;;;;;;;;;6348:4;6341:11;;5911:459;;;;;:::o;7275:202::-;7341:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;7367:6:1;:15;7374:7;7367:15;;;;;;;;;;;;;;;;;;;;;;;;;7366:16;7358:25;;;;;;;;7412:4;7394:6;:15;7401:7;7394:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;7439:7;7432:15;;;;;;;;;;;;7465:4;7458:11;;7275:202;;;:::o;524:145:0:-;354:5;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;627:1;606:23;;:9;:23;;;;598:32;;;;;;;;652:9;641:8;;:20;;;;;;;;;;;;;;;;;;524:145;:::o;8346:367:1:-;8421:4;354:5:0;;;;;;;;;;;340:19;;:10;:19;;;332:28;;;;;;;;8461:1:1;8446:17;;:3;:17;;;;8438:26;;;;;;;;8493:8;:20;8502:10;8493:20;;;;;;;;;;;;;;;;8483:6;:30;;8475:39;;;;;;;;8550:32;8575:6;8550:8;:20;8559:10;8550:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8527:8;:20;8536:10;8527:20;;;;;;;;;;;;;;;:55;;;;8609:25;8627:6;8609:8;:13;8618:3;8609:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;8593:8;:13;8602:3;8593:13;;;;;;;;;;;;;;;:41;;;;8671:3;8650:33;;8659:10;8650:33;;;8676:6;8650:33;;;;;;;;;;;;;;;;;;8701:4;8694:11;;8346:367;;;;:::o;9875:442::-;9929:4;9966:5;9948:23;;:5;:14;9954:7;9948:14;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;9945:65;;;9994:4;9987:11;;;;9945:65;10034:11;10048:1;10034:15;;10030:258;10057:10;:19;10068:7;10057:19;;;;;;;;;;;;;;;:26;;;;10051:3;:32;10030:258;;;10149:3;10109:10;:19;10120:7;10109:19;;;;;;;;;;;;;;;10129:3;10109:24;;;;;;;;;;;;;;;;;;;;:36;;;:43;;10106:171;;;10189:21;10197:7;10206:3;10189:7;:21::i;:::-;10186:76;;;10241:1;10234:8;;;;10186:76;10106:171;10085:5;;;;;;;10030:258;;;;10305:4;10298:11;;9875:442;;;;:::o;1405:123:0:-;1463:7;1495:1;1490;:6;;1483:14;;;;;;1519:1;1515;:5;1508:12;;1405:123;;;;:::o;1536:147::-;1594:7;1614:9;1630:1;1626;:5;1614:17;;1654:1;1649;:6;;1642:14;;;;;;1674:1;1667:8;;;1536:147;;;;:::o;2013:97:1:-;2095:7;2078:14;;:24;;;;;;;;;;;;;;;;;;2013:97;:::o;6378:761::-;6444:4;6469:5;:14;6475:7;6469:14;;;;;;;;;;;;;;;;;;;;;;;;;6461:23;;;;;;;;6510:10;:19;6521:7;6510:19;;;;;;;;;;;;;;;:26;;;;6503:4;:33;6495:42;;;;;;;;6548:29;6580:10;:19;6591:7;6580:19;;;;;;;;;;;;;;;6600:4;6580:25;;;;;;;;;;;;;;;;;;;;6548:57;;6616:21;6640:10;:24;;;6616:48;;6692:10;:19;6703:7;6692:19;;;;;;;;;;;;;;;6712:4;6692:25;;;;;;;;;;;;;;;;;;;;;6685:32;;;;;;;;;;;;;;6766:10;:19;6777:7;6766:19;;;;;;;;;;;;;;;6786:33;6817:1;6786:10;:19;6797:7;6786:19;;;;;;;;;;;;;;;:26;;;;:30;;:33;;;;:::i;:::-;6766:54;;;;;;;;;;;;;;;;;;;;6738:10;:19;6749:7;6738:19;;;;;;;;;;;;;;;6758:4;6738:25;;;;;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;;6871:1;6841:10;:19;6852:7;6841:19;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;:::i;:::-;;6926:1;6896:10;:19;6907:7;6896:19;;;;;;;;;;;;;;;:26;;;;:31;6893:84;;;6960:5;6943;:14;6949:7;6943:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;6893:84;7009:7;7002:30;;;7018:13;7002:30;;;;;;;;;;;;;;;;;;7063:36;7085:13;7063:8;:17;7072:7;7063:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;7043:8;:17;7052:7;7043:17;;;;;;;;;;;;;;;:56;;;;7127:4;7120:11;;;;6378:761;;;;:::o;55:10265::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://6a86fbc6dd52bdbea38b3b1173ebac088c9050a1940d521489a59c9a3b216307
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.