ETH Price: $2,351.55 (+0.45%)

Token

ROOT (ROOT)
 

Overview

Max Total Supply

9,828.385425372662317786 ROOT

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cotali.eth
Balance
30 ROOT

Value
$0.00
0x61888f5e4a8fbfb5bb7187654f638e211c6967fe
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ROOT

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-13
*/

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


abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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


interface INFT {
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function walletOfOwner(address _owner) external view returns(uint256[] memory);
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        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, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;
    
    mapping (address => uint256) private _balances;
    mapping(address => bool) public feeExcludedAddress;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (uint256 => uint256) lastReward;

    uint256 private _totalSupply;
    
    // Daily Rewards Distributions Start from
    uint256 private rewardStartDate;
    bool public dailyReward = false;
    uint256 public rewardAmount = 10 ether;
    // ends in a month;
    

    string private _name;
    string private _symbol;
    uint private _decimals = 18;
    uint private _lockTime;
    address public _Owner;
    address public _previousOwner;
    address public _fundAddress;
    address public liquidityPair;
    uint public teamFee = 500; //0.2% divisor 100
    bool public sellLimiter; //by default false
    uint public sellLimit = 50000 * 10 ** 18; //sell limit if sellLimiter is true
    address[] public holders;
    mapping (address => bool) public holder;
    INFT public NFTContract;
    
    uint256 public _maxTxAmount = 5000000 * 10**18;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event claimedDailyReward(uint256 tokenID, address claimer, uint256 timestamp);

    constructor (string memory _nm, string memory _sym, INFT _NFTContract) public {
        _name = _nm;
        _symbol = _sym;
        _Owner = msg.sender;
        rewardStartDate = block.timestamp;
        NFTContract = _NFTContract;
        feeExcludedAddress[msg.sender] = true;
        _fundAddress = address(0x43a3f032E34467e8f692244461CA1b422f9af230);
    }
    
    modifier onlyOwner{
        require(msg.sender == _Owner, 'Only Owner Can Call This Function');
        _;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function calculateTeamFee(uint256 _amount) internal view returns (uint256) {
        return _amount.mul(teamFee).div(
            10**4
        );
    }
    
    function setTeamFee(uint Tfee) public onlyOwner{
        require(Tfee < 1500," Fee can't exceed to 15%");
        teamFee = Tfee;
    }
    
    function toggleSellLimit() external onlyOwner() {
        sellLimiter = !sellLimiter;
    }
    
    function stopReward() external onlyOwner() {
        require(dailyReward, "Daily Reward Already Stopped");
        dailyReward = false;
    }
    
    function startReward() public onlyOwner{
        require(!dailyReward, "Daily Reward Already Running");
        dailyReward = true;
        rewardStartDate = block.timestamp;
    }
    
    function changeRewardAmount(uint256 _amount) public onlyOwner{
        rewardAmount = _amount;
    }
    
    function setLiquidityPairAddress(address liquidityPairAddress) public onlyOwner{
        liquidityPair = liquidityPairAddress;
    }
    
    function changeSellLimit(uint256 _sellLimit) public onlyOwner{
        sellLimit = _sellLimit;
    }
    
    function changeMaxtx(uint256 _maxtx) public onlyOwner{
        _maxTxAmount = _maxtx;
    }
    
    function changeFundAddress(address Taddress) public onlyOwner{
        _fundAddress = Taddress;
    }
    
    function addExcludedAddress(address excludedA) public onlyOwner{
        feeExcludedAddress[excludedA] = true;
    }
    
    function removeExcludedAddress(address excludedA) public onlyOwner{
        feeExcludedAddress[excludedA] = false;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_Owner, newOwner);
        _Owner = newOwner;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _Owner;
        _Owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_Owner, address(0));
    }
    
    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_Owner, _previousOwner);
        _Owner = _previousOwner;
    }
    
    function multiTransfer(address[] memory receivers, uint256[] memory amounts) public {
        require(receivers.length != 0, 'Cannot Proccess Null Transaction');
        require(receivers.length == amounts.length, 'Address and Amount array length must be same');
        for (uint256 i = 0; i < receivers.length; i++) {
            transfer(receivers[i], amounts[i]);
        }
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        if(feeExcludedAddress[recipient] || feeExcludedAddress[_msgSender()]){
            _transferExcluded(_msgSender(), recipient, amount);
        }else{
            _transfer(_msgSender(), recipient, amount);    
        }
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        if(feeExcludedAddress[recipient] || feeExcludedAddress[sender]){
            _transferExcluded(sender, recipient, amount);
        }else{
            _transfer(sender, recipient, amount);
        }
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transferExcluded(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(sender != _Owner && recipient != _Owner)
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            
        if(recipient == liquidityPair && balanceOf(liquidityPair) > 0 && sellLimiter){
            require(amount < sellLimit, 'Cannot sell more than sellLimit');
        }

        if(holder[recipient] == false){
            holder[recipient] = true;
            holders.push(recipient);
        }
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    
    function _transfer( address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(sender != _Owner && recipient != _Owner)
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

        if(recipient == liquidityPair && balanceOf(liquidityPair) > 0 && sellLimiter){
            require(amount < sellLimit, 'Cannot sell more than sellLimit');
        }
        
        
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += (amount * 93) / 100;
        _balances[_fundAddress] += (amount * 2) / 100;
        
        _burn((amount * 3) / 100);
        
        uint256 tokenToTransfer = (amount * 2) / 100;
        
        if(holder[recipient] == false){
            holder[recipient] = true;
            holders.push(recipient);
        }
        
        // Redistribution(tokenToTransfer);
        total1 = totalSupply() - balanceOf(_fundAddress);
        // a1 = total / tokenToTransfer;
        for(uint i=0; i<holders.length; i++){
            address addr = holders[i];
            uint256 amount1 = (balanceOf(addr).mul(tokenToTransfer)).div(total1);
            // holders[i] = _balances[addr]
            _balances[addr] += amount1;
            amount123.push(addr);
            a1 += balanceOf(addr);
        }
        emit Transfer(sender, recipient, tokenToTransfer);
    }
    
    uint256 public total1;
    uint256 public a1;
    address[] public amount123;

    function Redistribution(uint256 tokenToTransfer) internal  {
        total1 = totalSupply() - balanceOf(_fundAddress);
        // a1 = total / tokenToTransfer;
        for(uint i=0; i<holders.length; i++){
            address addr = holders[i];
            uint256 amount = (balanceOf(addr) / total1) * tokenToTransfer;
            // holders[i] = _balances[addr]
            _balances[addr] += amount;
            a1 += balanceOf(addr);
        }
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    
    function addSupply(uint256 amount) public onlyOwner{
        _mint(msg.sender, amount);
    }
    
    function checkDailyReward(uint256 tokenID) public view returns (uint256){
        uint256 lastdate = (lastReward[tokenID] > rewardStartDate) ? lastReward[tokenID] : rewardStartDate;
        uint256 rewardDays = (block.timestamp - lastdate).div(1 days);
        return rewardDays.mul(rewardAmount);
    }
    
    function claimDailyReward(uint256 tokenID) public {
        require(dailyReward," Daily Rewards Are Stopped ");
        require(NFTContract.ownerOf(tokenID) == msg.sender, "You aren't own this NFT token");
        require(checkDailyReward(tokenID) > 0, "There is no claimable reward");
        _mint(msg.sender, checkDailyReward(tokenID));
        lastReward[tokenID] = block.timestamp;
        emit claimedDailyReward(tokenID, msg.sender, block.timestamp);
    }
    
    function bulkClaimRewards(uint256[] memory tokenIDs) public {
        require(dailyReward," Daily Rewards Are Stopped ");
        uint256 total;
        for (uint256 i = 0; i < tokenIDs.length; i++) {
            require(NFTContract.ownerOf(tokenIDs[i]) == msg.sender, "You aren't own this NFT token");
            total += checkDailyReward(tokenIDs[i]);
            if(checkDailyReward(tokenIDs[i]) > 0){
                lastReward[tokenIDs[i]] = block.timestamp;
            }
        }
        require(total > 0, "There is no claimable reward");
        _mint(msg.sender, total);
    }

    function _burn(uint256 amount) public virtual {
        require(_balances[msg.sender] >= amount,'insufficient balance!');

        _beforeTokenTransfer(msg.sender, address(0x000000000000000000000000000000000000dEaD), amount);

        _balances[msg.sender] = _balances[msg.sender].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(msg.sender, address(0x000000000000000000000000000000000000dEaD), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    
    function NFTBalance(address __address) public view returns(uint256) {
        return NFTContract.balanceOf(__address);
    }

    function NFTOwner(uint256 __id) public view returns(address ) {
        return NFTContract.ownerOf(__id);
    }

    function NFTWallet(address __address) public view returns(uint256[] memory) {
        return NFTContract.walletOfOwner(__address);
    }
    
    struct challenge{
        uint256 id;
        string des;
        uint256 roots;
        uint256 nfts;
        bool status;
    }   
    
    uint256 public challengeCount = 0;
    mapping (uint => challenge) public Challenges;
    mapping(uint => mapping(address => bool)) public entry;
    
    function startChallnge(string  memory _des, uint256 _roots, uint256 _nfts) public onlyOwner{
        Challenges[challengeCount+1] = challenge(challengeCount+1, _des, _roots, _nfts, true);
        challengeCount++;
    }
    
    function enterChallenge(uint256 _id) public {
        require(_id == Challenges[_id].id && _id != 0, "Invalid ID");
        require(Challenges[_id].status == true, "Challenge ended");
        require(entry[_id][msg.sender] != true, "You are already inrolled in this challenge");
        require(Challenges[_id].nfts <= NFTContract.balanceOf(msg.sender), "You own less amount of BearX than reequired");
        require(Challenges[_id].roots <= balanceOf(msg.sender), "You own less amount of ROOT than required");
        _burn(Challenges[_id].roots);
        entry[_id][msg.sender] = true;
    }
    
    function toggleChallengeStatus(uint256 _id) public onlyOwner {
        require(_id == Challenges[_id].id && _id != 0, "Invalid ID");
        Challenges[_id].status = !Challenges[_id].status;
    }    
    
    
    function u_contract(address _contarct) public onlyOwner {
        require(_contarct != address(0), "Invalid address");
        NFTContract = INFT(_contarct);
    }    
    
    
}


contract ROOT is ERC20 {
    constructor(INFT NFTContract) public ERC20("ROOT", "ROOT", NFTContract) {
        _mint(msg.sender, 4500 ether); // 
        holder[msg.sender] = true;
        holders.push(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract INFT","name":"NFTContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenID","type":"uint256"},{"indexed":false,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"claimedDailyReward","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Challenges","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"des","type":"string"},{"internalType":"uint256","name":"roots","type":"uint256"},{"internalType":"uint256","name":"nfts","type":"uint256"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"__address","type":"address"}],"name":"NFTBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFTContract","outputs":[{"internalType":"contract INFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"__id","type":"uint256"}],"name":"NFTOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"__address","type":"address"}],"name":"NFTWallet","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"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":"_burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_previousOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"a1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedA","type":"address"}],"name":"addExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"amount123","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIDs","type":"uint256[]"}],"name":"bulkClaimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"challengeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Taddress","type":"address"}],"name":"changeFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxtx","type":"uint256"}],"name":"changeMaxtx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellLimit","type":"uint256"}],"name":"changeSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"checkDailyReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"claimDailyReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"enterChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"entry","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeExcludedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedA","type":"address"}],"name":"removeExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimiter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityPairAddress","type":"address"}],"name":"setLiquidityPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Tfee","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_des","type":"string"},{"internalType":"uint256","name":"_roots","type":"uint256"},{"internalType":"uint256","name":"_nfts","type":"uint256"}],"name":"startChallnge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"toggleChallengeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"total1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contarct","type":"address"}],"name":"u_contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600660006101000a81548160ff021916908315150217905550678ac7230489e800006007556012600a556101f4601055690a968163f0a57b4000006012556a0422ca8b0a00a4250000006016556000601a553480156200006557600080fd5b506040516200623d3803806200623d833981810160405260208110156200008b57600080fd5b81019080805190602001909291905050506040518060400160405280600481526020017f524f4f54000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f524f4f540000000000000000000000000000000000000000000000000000000081525082826008908051906020019062000121929190620005bc565b5081600990805190602001906200013a929190620005bc565b5033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260058190555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507343a3f032e34467e8f692244461ca1b422f9af230600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200028e3368f3f20b8dfa69d000006200035060201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506013339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000662565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000408600083836200052e60201b60201c565b62000424816004546200053360201b6200436e1790919060201c565b60048190555062000482816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200053360201b6200436e1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b600080828401905083811015620005b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ff57805160ff191683800117855562000630565b8280016001018555821562000630579182015b828111156200062f57825182559160200191906001019062000612565b5b5090506200063f919062000643565b5090565b5b808211156200065e57600081600090555060010162000644565b5090565b615bcb80620006726000396000f3fe608060405234801561001057600080fd5b50600436106103985760003560e01c80637d1db4a5116101e9578063b6c523241161010f578063dd467064116100ad578063f2fde38b1161007c578063f2fde38b146113be578063f7b2a7be14611402578063f9271fd314611420578063fc50eef31461146457610398565b8063dd46706414611225578063dd62ed3e14611253578063e6ec64ec146112cb578063ec323bf1146112f957610398565b8063c964ad45116100e9578063c964ad451461115b578063d51fe9cb1461117b578063d7c94efd146111d3578063dcc23455146111f157610398565b8063b6c52324146110ef578063b93833c31461110d578063bab62f381461113b57610398565b80639b1f9e7411610187578063a69df4b511610156578063a69df4b514610f85578063a86a226f14610f8f578063a9059cbb14611047578063a9b54bcd146110ab57610398565b80639b1f9e7414610e91578063a2f0572514610ebf578063a457c2d714610edd578063a646c35d14610f4157610398565b80638230af5a116101c35780638230af5a14610d1e57806383a2889414610d5257806395d89b4114610db65780639aa980f814610e3957610398565b80637d1db4a514610cc2578063808a545714610ce057806380dc067214610d1457610398565b806331c2273b116102ce5780635e67fe141161026c5780636feecb681161023b5780636feecb6814610bea578063700504e814610c4257806370a0823114610c60578063746c8ae114610cb857610398565b80635e67fe1414610a75578063687b5f5e14610aa35780636e63cd9614610b725780636f4e2c4714610ba657610398565b8063417b4415116102a8578063417b44151461094c578063428e7823146109e55780634f91e48c14610a135780634f922a9e14610a3157610398565b806331c2273b1461088657806339509351146108ba57806340753a761461091e57610398565b80631e89d5451161033b57806325c1a6951161031557806325c1a695146107a057806328f97b87146107ce5780632a11ced014610810578063313ce5671461086857610398565b80631e89d545146105765780631eb7caba146106c257806323b872dd1461071c57610398565b80630eda7275116103775780630eda7275146104de578063119552a11461050c57806318160ddd1461052a578063186128381461054857610398565b8062f83cdf1461039d57806306fdde03146103f7578063095ea7b31461047a575b600080fd5b6103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146e565b60405180821515815260200191505060405180910390f35b6103ff61148e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561043f578082015181840152602081019050610424565b50505050905090810190601f16801561046c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c66004803603604081101561049057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611530565b60405180821515815260200191505060405180910390f35b61050a600480360360208110156104f457600080fd5b810190808035906020019092919050505061154e565b005b6105146115fe565b6040518082815260200191505060405180910390f35b610532611604565b6040518082815260200191505060405180910390f35b6105746004803603602081101561055e57600080fd5b810190808035906020019092919050505061160e565b005b6106c06004803603604081101561058c57600080fd5b81019080803590602001906401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460208302840111640100000000831117156105dd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561063d57600080fd5b82018360208201111561064f57600080fd5b8035906020019184602083028401116401000000008311171561067157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506117a1565b005b610704600480360360208110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c2565b60405180821515815260200191505060405180910390f35b6107886004803603606081101561073257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e2565b60405180821515815260200191505060405180910390f35b6107cc600480360360208110156107b657600080fd5b8101908080359060200190929190505050611a72565b005b6107fa600480360360208110156107e457600080fd5b8101908080359060200190929190505050611e96565b6040518082815260200191505060405180910390f35b61083c6004803603602081101561082657600080fd5b8101908080359060200190929190505050611f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610870611f4a565b6040518082815260200191505060405180910390f35b61088e611f54565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610906600480360360408110156108d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7a565b60405180821515815260200191505060405180910390f35b61094a6004803603602081101561093457600080fd5b810190808035906020019092919050505061202d565b005b61098e6004803603602081101561096257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109d15780820151818401526020810190506109b6565b505050509050019250505060405180910390f35b610a11600480360360208110156109fb57600080fd5b8101908080359060200190929190505050612247565b005b610a1b6122f7565b6040518082815260200191505060405180910390f35b610a7360048036036020811015610a4757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122fd565b005b610aa160048036036020811015610a8b57600080fd5b81019080803590602001909291905050506123e7565b005b610b7060048036036060811015610ab957600080fd5b8101908080359060200190640100000000811115610ad657600080fd5b820183602082011115610ae857600080fd5b80359060200191846001830284011164010000000083111715610b0a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291905050506126bf565b005b610b7a612821565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610be860048036036020811015610bbc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612847565b005b610c2c60048036036020811015610c0057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d4565b6040518082815260200191505060405180910390f35b610c4a612aa1565b6040518082815260200191505060405180910390f35b610ca260048036036020811015610c7657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aa7565b6040518082815260200191505060405180910390f35b610cc0612aef565b005b610cca612c3c565b6040518082815260200191505060405180910390f35b610ce8612c42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d1c612c68565b005b610d26612dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d9e60048036036040811015610d6857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dd3565b60405180821515815260200191505060405180910390f35b610dbe612e02565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dfe578082015181840152602081019050610de3565b50505050905090810190601f168015610e2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610e6560048036036020811015610e4f57600080fd5b8101908080359060200190929190505050612ea4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ebd60048036036020811015610ea757600080fd5b8101908080359060200190929190505050612ee0565b005b610ec76130d3565b6040518082815260200191505060405180910390f35b610f2960048036036040811015610ef357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506130d9565b60405180821515815260200191505060405180910390f35b610f8360048036036020811015610f5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131a6565b005b610f8d6132a7565b005b61104560048036036020811015610fa557600080fd5b8101908080359060200190640100000000811115610fc257600080fd5b820183602082011115610fd457600080fd5b80359060200191846020830284011164010000000083111715610ff657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506134c7565b005b6110936004803603604081101561105d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506137bd565b60405180821515815260200191505060405180910390f35b6110ed600480360360208110156110c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506138a0565b005b6110f76139a0565b6040518082815260200191505060405180910390f35b6111396004803603602081101561112357600080fd5b81019080803590602001909291905050506139aa565b005b611143613a5a565b60405180821515815260200191505060405180910390f35b611163613a6d565b60405180821515815260200191505060405180910390f35b6111a76004803603602081101561119157600080fd5b8101908080359060200190929190505050613a80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111db613b37565b6040518082815260200191505060405180910390f35b6111f9613b3d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112516004803603602081101561123b57600080fd5b8101908080359060200190929190505050613b63565b005b6112b56004803603604081101561126957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d37565b6040518082815260200191505060405180910390f35b6112f7600480360360208110156112e157600080fd5b8101908080359060200190929190505050613dbe565b005b6113256004803603602081101561130f57600080fd5b8101908080359060200190929190505050613ee5565b60405180868152602001806020018581526020018481526020018315158152602001828103825286818151815260200191508051906020019080838360005b8381101561137f578082015181840152602081019050611364565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b611400600480360360208110156113d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fc0565b005b61140a6141ac565b6040518082815260200191505060405180910390f35b6114626004803603602081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141b2565b005b61146c61429c565b005b60016020528060005260406000206000915054906101000a900460ff1681565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050505050905090565b600061154461153d6143f6565b84846143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060128190555050565b60185481565b6000600454905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b601b600082815260200190815260200160002060000154811480156116da575060008114155b61174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601b600082815260200190815260200160002060040160009054906101000a900460ff1615601b600083815260200190815260200160002060040160006101000a81548160ff02191690831515021790555050565b600082511415611819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f742050726f6363657373204e756c6c205472616e73616374696f6e81525060200191505060405180910390fd5b8051825114611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806159a3602c913960400191505060405180910390fd5b60005b82518110156118bd576118af83828151811061188e57fe5b60200260200101518383815181106118a257fe5b60200260200101516137bd565b508080600101915050611876565b505050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119855750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199a576119958484846145f5565b6119a6565b6119a5848484614be9565b5b611a67846119b26143f6565b611a6285604051806060016040528060288152602001615a9160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611a186143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6143fe565b600190509392505050565b601b60008281526020019081526020016000206000015481148015611a98575060008114155b611b0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601b600083815260200190815260200160002060040160009054906101000a900460ff16151514611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4368616c6c656e676520656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601c600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806159f5602a913960400191505060405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ceb57600080fd5b505afa158015611cff573d6000803e3d6000fd5b505050506040513d6020811015611d1557600080fd5b8101908080519060200190929190505050601b6000838152602001908152602001600020600301541115611d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615b02602b913960400191505060405180910390fd5b611d9d33612aa7565b601b6000838152602001908152602001600020600201541115611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615a476029913960400191505060405180910390fd5b611e2a601b600083815260200190815260200160002060020154612ee0565b6001601c600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080600554600360008581526020019081526020016000205411611ebd57600554611ed2565b60036000848152602001908152602001600020545b90506000611eee620151808342036154cc90919063ffffffff16565b9050611f056007548261551690919063ffffffff16565b92505050919050565b60138181548110611f1b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612023611f876143f6565b8461201e8560026000611f986143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6120dd338261559c565b50565b6060601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663438b6300836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b15801561216b57600080fd5b505afa15801561217f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156121a957600080fd5b81019080805160405193929190846401000000008211156121c957600080fd5b838201915060208201858111156121df57600080fd5b82518660208202830111640100000000821117156121fc57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015612233578082015181840152602081019050612218565b505050509050016040525050509050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060168190555050565b60125481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff16612469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156124f357600080fd5b505afa158015612507573d6000803e3d6000fd5b505050506040513d602081101561251d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146125b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b60006125c282611e96565b11612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6126473361264283611e96565b61559c565b4260036000838152602001908152602001600020819055507f77c822939fccc95dc88c14c72b87df80b99db967c009bf8eaaf6f96b2c33cf9c813342604051808481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612765576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6040518060a001604052806001601a5401815260200184815260200183815260200182815260200160011515815250601b60006001601a540181526020019081526020016000206000820151816000015560208201518160010190805190602001906127d2929190615878565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050601a60008154809291906001019190505550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a5f57600080fd5b505afa158015612a73573d6000803e3d6000fd5b505050506040513d6020811015612a8957600080fd5b81019080805190602001909291905050509050919050565b60175481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600660009054906101000a900460ff1615612c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792052756e6e696e670000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff02191690831515021790555042600581905550565b60165481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600660009054906101000a900460ff16612d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792053746f707065640000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e9a5780601f10612e6f57610100808354040283529160200191612e9a565b820191906000526020600020905b815481529060010190602001808311612e7d57829003601f168201915b5050505050905090565b60198181548110612eb157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e636521000000000000000000000081525060200191505060405180910390fd5b612fa13361dead83615763565b61300c81604051806060016040528060228152602001615939602291396000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130638160045461576890919063ffffffff16565b60048190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b601a5481565b600061319c6130e66143f6565b8461319785604051806060016040528060258152602001615b7160259139600260006131106143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461324c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461334d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b2d6023913960400191505060405180910390fd5b600b5442116133c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900460ff16613549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b600080600090505b8251811015613738573373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8584815181106135bb57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156135f757600080fd5b505afa15801561360b573d6000803e3d6000fd5b505050506040513d602081101561362157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146136bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b6136d78382815181106136ca57fe5b6020026020010151611e96565b8201915060006136f98483815181106136ec57fe5b6020026020010151611e96565b111561372b57426003600085848151811061371057fe5b60200260200101518152602001908152602001600020819055505b8080600101915050613551565b50600081116137af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6137b9338261559c565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061386757506001600061381e6143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138835761387e6138776143f6565b84846145f5565b613896565b61389561388e6143f6565b8484614be9565b5b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b54905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060078190555050565b601160009054906101000a900460ff1681565b600660009054906101000a900460ff1681565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613af557600080fd5b505afa158015613b09573d6000803e3d6000fd5b505050506040513d6020811015613b1f57600080fd5b81019080805190602001909291905050509050919050565b60105481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600b81905550600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6105dc8110613edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060108190555050565b601b602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f975780601f10613f6c57610100808354040283529160200191613f97565b820191906000526020600020905b815481529060010190602001808311613f7a57829003601f168201915b5050505050908060020154908060030154908060040160009054906101000a900460ff16905085565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614066576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156140ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061595b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614258576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b601160009054906101000a900460ff1615601160006101000a81548160ff021916908315150217905550565b6000808284019050838110156143ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614484576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615ade6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561450a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806159816022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561467b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615ab96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159166023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156147ad5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561480e5760165481111561480d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615a1f6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561489557506000614893600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b115b80156148ad5750601160009054906101000a900460ff165b1561492a576012548110614929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60001515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415614a3f576001601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506013829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b614aaa816040518060600160405280602681526020016159cf602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614b3d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615ab96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159166023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015614da15750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15614e0257601654811115614e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615a1f6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614e8957506000614e87600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b115b8015614ea15750601160009054906101000a900460ff165b15614f1e576012548110614f1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015614fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806159cf6026913960400191505060405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506064605d83028161500c57fe5b046000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600283028161506557fe5b04600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506150e9606460038402816150e357fe5b04612ee0565b6000606460028402816150f857fe5b04905060001515601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415615210576001601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506013849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61523b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b615243611604565b0360178190555060005b60138054905081101561539f5760006013828154811061526957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006152c76017546152b9866152ab86612aa7565b61551690919063ffffffff16565b6154cc90919063ffffffff16565b9050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506019829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061538182612aa7565b6018600082825401925050819055505050808060010191505061524d565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b60008383111582906154b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561547e578082015181840152602081019050615463565b50505050905090810190601f1680156154ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061550e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506157b2565b905092915050565b6000808314156155295760009050615596565b600082840290508284828161553a57fe5b0414615591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a706021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561563f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61564b60008383615763565b6156608160045461436e90919063ffffffff16565b6004819055506156b7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006157aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061540c565b905092915050565b6000808311829061585e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615823578082015181840152602081019050615808565b50505050905090810190601f1680156158505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161586a57fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106158b957805160ff19168380011785556158e7565b828001600101855582156158e7579182015b828111156158e65782518255916020019190600101906158cb565b5b5090506158f491906158f8565b5090565b5b808211156159115760008160009055506001016158f9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734164647265737320616e6420416d6f756e74206172726179206c656e677468206d7573742062652073616d6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520616c726561647920696e726f6c6c656420696e2074686973206368616c6c656e67655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e596f75206f776e206c65737320616d6f756e74206f6620524f4f54207468616e207265717569726564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f75206f776e206c65737320616d6f756e74206f66204265617258207468616e20726565717569726564596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b4f6e6c79204f776e65722043616e2043616c6c20546869732046756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206731baec5e606254d1fbb89ee51b2091d7753755fdfd3a9eddba31b893e3edad64736f6c634300060c0033000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106103985760003560e01c80637d1db4a5116101e9578063b6c523241161010f578063dd467064116100ad578063f2fde38b1161007c578063f2fde38b146113be578063f7b2a7be14611402578063f9271fd314611420578063fc50eef31461146457610398565b8063dd46706414611225578063dd62ed3e14611253578063e6ec64ec146112cb578063ec323bf1146112f957610398565b8063c964ad45116100e9578063c964ad451461115b578063d51fe9cb1461117b578063d7c94efd146111d3578063dcc23455146111f157610398565b8063b6c52324146110ef578063b93833c31461110d578063bab62f381461113b57610398565b80639b1f9e7411610187578063a69df4b511610156578063a69df4b514610f85578063a86a226f14610f8f578063a9059cbb14611047578063a9b54bcd146110ab57610398565b80639b1f9e7414610e91578063a2f0572514610ebf578063a457c2d714610edd578063a646c35d14610f4157610398565b80638230af5a116101c35780638230af5a14610d1e57806383a2889414610d5257806395d89b4114610db65780639aa980f814610e3957610398565b80637d1db4a514610cc2578063808a545714610ce057806380dc067214610d1457610398565b806331c2273b116102ce5780635e67fe141161026c5780636feecb681161023b5780636feecb6814610bea578063700504e814610c4257806370a0823114610c60578063746c8ae114610cb857610398565b80635e67fe1414610a75578063687b5f5e14610aa35780636e63cd9614610b725780636f4e2c4714610ba657610398565b8063417b4415116102a8578063417b44151461094c578063428e7823146109e55780634f91e48c14610a135780634f922a9e14610a3157610398565b806331c2273b1461088657806339509351146108ba57806340753a761461091e57610398565b80631e89d5451161033b57806325c1a6951161031557806325c1a695146107a057806328f97b87146107ce5780632a11ced014610810578063313ce5671461086857610398565b80631e89d545146105765780631eb7caba146106c257806323b872dd1461071c57610398565b80630eda7275116103775780630eda7275146104de578063119552a11461050c57806318160ddd1461052a578063186128381461054857610398565b8062f83cdf1461039d57806306fdde03146103f7578063095ea7b31461047a575b600080fd5b6103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061146e565b60405180821515815260200191505060405180910390f35b6103ff61148e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561043f578082015181840152602081019050610424565b50505050905090810190601f16801561046c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c66004803603604081101561049057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611530565b60405180821515815260200191505060405180910390f35b61050a600480360360208110156104f457600080fd5b810190808035906020019092919050505061154e565b005b6105146115fe565b6040518082815260200191505060405180910390f35b610532611604565b6040518082815260200191505060405180910390f35b6105746004803603602081101561055e57600080fd5b810190808035906020019092919050505061160e565b005b6106c06004803603604081101561058c57600080fd5b81019080803590602001906401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460208302840111640100000000831117156105dd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561063d57600080fd5b82018360208201111561064f57600080fd5b8035906020019184602083028401116401000000008311171561067157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506117a1565b005b610704600480360360208110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c2565b60405180821515815260200191505060405180910390f35b6107886004803603606081101561073257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e2565b60405180821515815260200191505060405180910390f35b6107cc600480360360208110156107b657600080fd5b8101908080359060200190929190505050611a72565b005b6107fa600480360360208110156107e457600080fd5b8101908080359060200190929190505050611e96565b6040518082815260200191505060405180910390f35b61083c6004803603602081101561082657600080fd5b8101908080359060200190929190505050611f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610870611f4a565b6040518082815260200191505060405180910390f35b61088e611f54565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610906600480360360408110156108d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7a565b60405180821515815260200191505060405180910390f35b61094a6004803603602081101561093457600080fd5b810190808035906020019092919050505061202d565b005b61098e6004803603602081101561096257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109d15780820151818401526020810190506109b6565b505050509050019250505060405180910390f35b610a11600480360360208110156109fb57600080fd5b8101908080359060200190929190505050612247565b005b610a1b6122f7565b6040518082815260200191505060405180910390f35b610a7360048036036020811015610a4757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122fd565b005b610aa160048036036020811015610a8b57600080fd5b81019080803590602001909291905050506123e7565b005b610b7060048036036060811015610ab957600080fd5b8101908080359060200190640100000000811115610ad657600080fd5b820183602082011115610ae857600080fd5b80359060200191846001830284011164010000000083111715610b0a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291905050506126bf565b005b610b7a612821565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610be860048036036020811015610bbc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612847565b005b610c2c60048036036020811015610c0057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d4565b6040518082815260200191505060405180910390f35b610c4a612aa1565b6040518082815260200191505060405180910390f35b610ca260048036036020811015610c7657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aa7565b6040518082815260200191505060405180910390f35b610cc0612aef565b005b610cca612c3c565b6040518082815260200191505060405180910390f35b610ce8612c42565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d1c612c68565b005b610d26612dad565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d9e60048036036040811015610d6857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dd3565b60405180821515815260200191505060405180910390f35b610dbe612e02565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dfe578082015181840152602081019050610de3565b50505050905090810190601f168015610e2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610e6560048036036020811015610e4f57600080fd5b8101908080359060200190929190505050612ea4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ebd60048036036020811015610ea757600080fd5b8101908080359060200190929190505050612ee0565b005b610ec76130d3565b6040518082815260200191505060405180910390f35b610f2960048036036040811015610ef357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506130d9565b60405180821515815260200191505060405180910390f35b610f8360048036036020811015610f5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131a6565b005b610f8d6132a7565b005b61104560048036036020811015610fa557600080fd5b8101908080359060200190640100000000811115610fc257600080fd5b820183602082011115610fd457600080fd5b80359060200191846020830284011164010000000083111715610ff657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506134c7565b005b6110936004803603604081101561105d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506137bd565b60405180821515815260200191505060405180910390f35b6110ed600480360360208110156110c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506138a0565b005b6110f76139a0565b6040518082815260200191505060405180910390f35b6111396004803603602081101561112357600080fd5b81019080803590602001909291905050506139aa565b005b611143613a5a565b60405180821515815260200191505060405180910390f35b611163613a6d565b60405180821515815260200191505060405180910390f35b6111a76004803603602081101561119157600080fd5b8101908080359060200190929190505050613a80565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111db613b37565b6040518082815260200191505060405180910390f35b6111f9613b3d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112516004803603602081101561123b57600080fd5b8101908080359060200190929190505050613b63565b005b6112b56004803603604081101561126957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d37565b6040518082815260200191505060405180910390f35b6112f7600480360360208110156112e157600080fd5b8101908080359060200190929190505050613dbe565b005b6113256004803603602081101561130f57600080fd5b8101908080359060200190929190505050613ee5565b60405180868152602001806020018581526020018481526020018315158152602001828103825286818151815260200191508051906020019080838360005b8381101561137f578082015181840152602081019050611364565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b611400600480360360208110156113d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fc0565b005b61140a6141ac565b6040518082815260200191505060405180910390f35b6114626004803603602081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141b2565b005b61146c61429c565b005b60016020528060005260406000206000915054906101000a900460ff1681565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050505050905090565b600061154461153d6143f6565b84846143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060128190555050565b60185481565b6000600454905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b601b600082815260200190815260200160002060000154811480156116da575060008114155b61174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601b600082815260200190815260200160002060040160009054906101000a900460ff1615601b600083815260200190815260200160002060040160006101000a81548160ff02191690831515021790555050565b600082511415611819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f742050726f6363657373204e756c6c205472616e73616374696f6e81525060200191505060405180910390fd5b8051825114611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806159a3602c913960400191505060405180910390fd5b60005b82518110156118bd576118af83828151811061188e57fe5b60200260200101518383815181106118a257fe5b60200260200101516137bd565b508080600101915050611876565b505050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119855750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199a576119958484846145f5565b6119a6565b6119a5848484614be9565b5b611a67846119b26143f6565b611a6285604051806060016040528060288152602001615a9160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611a186143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6143fe565b600190509392505050565b601b60008281526020019081526020016000206000015481148015611a98575060008114155b611b0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601b600083815260200190815260200160002060040160009054906101000a900460ff16151514611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4368616c6c656e676520656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601c600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806159f5602a913960400191505060405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ceb57600080fd5b505afa158015611cff573d6000803e3d6000fd5b505050506040513d6020811015611d1557600080fd5b8101908080519060200190929190505050601b6000838152602001908152602001600020600301541115611d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615b02602b913960400191505060405180910390fd5b611d9d33612aa7565b601b6000838152602001908152602001600020600201541115611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615a476029913960400191505060405180910390fd5b611e2a601b600083815260200190815260200160002060020154612ee0565b6001601c600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080600554600360008581526020019081526020016000205411611ebd57600554611ed2565b60036000848152602001908152602001600020545b90506000611eee620151808342036154cc90919063ffffffff16565b9050611f056007548261551690919063ffffffff16565b92505050919050565b60138181548110611f1b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612023611f876143f6565b8461201e8560026000611f986143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6120dd338261559c565b50565b6060601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663438b6300836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b15801561216b57600080fd5b505afa15801561217f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156121a957600080fd5b81019080805160405193929190846401000000008211156121c957600080fd5b838201915060208201858111156121df57600080fd5b82518660208202830111640100000000821117156121fc57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015612233578082015181840152602081019050612218565b505050509050016040525050509050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060168190555050565b60125481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff16612469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156124f357600080fd5b505afa158015612507573d6000803e3d6000fd5b505050506040513d602081101561251d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146125b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b60006125c282611e96565b11612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6126473361264283611e96565b61559c565b4260036000838152602001908152602001600020819055507f77c822939fccc95dc88c14c72b87df80b99db967c009bf8eaaf6f96b2c33cf9c813342604051808481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612765576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6040518060a001604052806001601a5401815260200184815260200183815260200182815260200160011515815250601b60006001601a540181526020019081526020016000206000820151816000015560208201518160010190805190602001906127d2929190615878565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050601a60008154809291906001019190505550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a5f57600080fd5b505afa158015612a73573d6000803e3d6000fd5b505050506040513d6020811015612a8957600080fd5b81019080805190602001909291905050509050919050565b60175481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600660009054906101000a900460ff1615612c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792052756e6e696e670000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff02191690831515021790555042600581905550565b60165481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600660009054906101000a900460ff16612d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792053746f707065640000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e9a5780601f10612e6f57610100808354040283529160200191612e9a565b820191906000526020600020905b815481529060010190602001808311612e7d57829003601f168201915b5050505050905090565b60198181548110612eb157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e636521000000000000000000000081525060200191505060405180910390fd5b612fa13361dead83615763565b61300c81604051806060016040528060228152602001615939602291396000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130638160045461576890919063ffffffff16565b60048190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b601a5481565b600061319c6130e66143f6565b8461319785604051806060016040528060258152602001615b7160259139600260006131106143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6143fe565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461324c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461334d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b2d6023913960400191505060405180910390fd5b600b5442116133c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900460ff16613549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b600080600090505b8251811015613738573373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8584815181106135bb57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156135f757600080fd5b505afa15801561360b573d6000803e3d6000fd5b505050506040513d602081101561362157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146136bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b6136d78382815181106136ca57fe5b6020026020010151611e96565b8201915060006136f98483815181106136ec57fe5b6020026020010151611e96565b111561372b57426003600085848151811061371057fe5b60200260200101518152602001908152602001600020819055505b8080600101915050613551565b50600081116137af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6137b9338261559c565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061386757506001600061381e6143f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138835761387e6138776143f6565b84846145f5565b613896565b61389561388e6143f6565b8484614be9565b5b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b54905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b8060078190555050565b601160009054906101000a900460ff1681565b600660009054906101000a900460ff1681565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613af557600080fd5b505afa158015613b09573d6000803e3d6000fd5b505050506040513d6020811015613b1f57600080fd5b81019080805190602001909291905050509050919050565b60105481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600b81905550600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b6105dc8110613edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060108190555050565b601b602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f975780601f10613f6c57610100808354040283529160200191613f97565b820191906000526020600020905b815481529060010190602001808311613f7a57829003601f168201915b5050505050908060020154908060030154908060040160009054906101000a900460ff16905085565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614066576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156140ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061595b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614258576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615b506021913960400191505060405180910390fd5b601160009054906101000a900460ff1615601160006101000a81548160ff021916908315150217905550565b6000808284019050838110156143ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614484576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615ade6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561450a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806159816022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561467b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615ab96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159166023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156147ad5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561480e5760165481111561480d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615a1f6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561489557506000614893600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b115b80156148ad5750601160009054906101000a900460ff165b1561492a576012548110614929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60001515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415614a3f576001601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506013829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b614aaa816040518060600160405280602681526020016159cf602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461540c9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614b3d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615ab96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159166023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015614da15750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15614e0257601654811115614e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615a1f6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614e8957506000614e87600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b115b8015614ea15750601160009054906101000a900460ff165b15614f1e576012548110614f1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015614fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806159cf6026913960400191505060405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506064605d83028161500c57fe5b046000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600283028161506557fe5b04600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506150e9606460038402816150e357fe5b04612ee0565b6000606460028402816150f857fe5b04905060001515601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415615210576001601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506013849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61523b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612aa7565b615243611604565b0360178190555060005b60138054905081101561539f5760006013828154811061526957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006152c76017546152b9866152ab86612aa7565b61551690919063ffffffff16565b6154cc90919063ffffffff16565b9050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506019829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061538182612aa7565b6018600082825401925050819055505050808060010191505061524d565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b60008383111582906154b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561547e578082015181840152602081019050615463565b50505050905090810190601f1680156154ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061550e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506157b2565b905092915050565b6000808314156155295760009050615596565b600082840290508284828161553a57fe5b0414615591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a706021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561563f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61564b60008383615763565b6156608160045461436e90919063ffffffff16565b6004819055506156b7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461436e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006157aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061540c565b905092915050565b6000808311829061585e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615823578082015181840152602081019050615808565b50505050905090810190601f1680156158505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161586a57fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106158b957805160ff19168380011785556158e7565b828001600101855582156158e7579182015b828111156158e65782518255916020019190600101906158cb565b5b5090506158f491906158f8565b5090565b5b808211156159115760008160009055506001016158f9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734164647265737320616e6420416d6f756e74206172726179206c656e677468206d7573742062652073616d6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520616c726561647920696e726f6c6c656420696e2074686973206368616c6c656e67655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e596f75206f776e206c65737320616d6f756e74206f6620524f4f54207468616e207265717569726564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f75206f776e206c65737320616d6f756e74206f66204265617258207468616e20726565717569726564596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b4f6e6c79204f776e65722043616e2043616c6c20546869732046756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206731baec5e606254d1fbb89ee51b2091d7753755fdfd3a9eddba31b893e3edad64736f6c634300060c0033

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

000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01

-----Decoded View---------------
Arg [0] : NFTContract (address): 0xE22e1e620dffb03065CD77dB0162249c0c91bf01

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01


Deployed Bytecode Sourcemap

20905:228:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5736:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7446:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11549:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8996:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15437:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7722:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20493:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10630:389;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6625:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11726:485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19879:602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16468:307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6594:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7632:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6671:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12219:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16361:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19186:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9110:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6511:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8850:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16787:470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19645:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6306:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20714:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18931:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15409:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7830:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8540:184;;;:::i;:::-;;6707:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6376:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8384:144;;;:::i;:::-;;6342:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19578:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7537:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15461:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17877:490;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19486:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12445:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9460:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10313:305;;;:::i;:::-;;17269:600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11027:355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9330:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9846:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8736:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6462:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6043:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19065:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6411:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6278:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10011:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11390:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8129:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19526:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9594:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6081:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9215:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8279:93;;;:::i;:::-;;5736:50;;;;;;;;;;;;;;;;;;;;;;:::o;7446:83::-;7483:13;7516:5;7509:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7446:83;:::o;11549:169::-;11632:4;11649:39;11658:12;:10;:12::i;:::-;11672:7;11681:6;11649:8;:39::i;:::-;11706:4;11699:11;;11549:169;;;;:::o;8996:102::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9080:10:::1;9068:9;:22;;;;8996:102:::0;:::o;15437:17::-;;;;:::o;7722:100::-;7775:7;7802:12;;7795:19;;7722:100;:::o;20493:199::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20580:10:::1;:15;20591:3;20580:15;;;;;;;;;;;:18;;;20573:3;:25;:37;;;;;20609:1;20602:3;:8;;20573:37;20565:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20662:10;:15;20673:3;20662:15;;;;;;;;;;;:22;;;;;;;;;;;;20661:23;20636:10;:15;20647:3;20636:15;;;;;;;;;;;:22;;;:48;;;;;;;;;;;;;;;;;;20493:199:::0;:::o;10630:389::-;10753:1;10733:9;:16;:21;;10725:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10830:7;:14;10810:9;:16;:34;10802:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10909:9;10904:108;10928:9;:16;10924:1;:20;10904:108;;;10966:34;10975:9;10985:1;10975:12;;;;;;;;;;;;;;10989:7;10997:1;10989:10;;;;;;;;;;;;;;10966:8;:34::i;:::-;;10946:3;;;;;;;10904:108;;;;10630:389;;:::o;6625:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;11726:485::-;11832:4;11852:18;:29;11871:9;11852:29;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;11885:18;:26;11904:6;11885:26;;;;;;;;;;;;;;;;;;;;;;;;;11852:59;11849:201;;;11927:44;11945:6;11953:9;11964:6;11927:17;:44::i;:::-;11849:201;;;12002:36;12012:6;12020:9;12031:6;12002:9;:36::i;:::-;11849:201;12060:121;12069:6;12077:12;:10;:12::i;:::-;12091:89;12129:6;12091:89;;;;;;;;;;;;;;;;;:11;:19;12103:6;12091:19;;;;;;;;;;;;;;;:33;12111:12;:10;:12::i;:::-;12091:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12060:8;:121::i;:::-;12199:4;12192:11;;11726:485;;;;;:::o;19879:602::-;19949:10;:15;19960:3;19949:15;;;;;;;;;;;:18;;;19942:3;:25;:37;;;;;19978:1;19971:3;:8;;19942:37;19934:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20039:4;20013:30;;:10;:15;20024:3;20013:15;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;20005:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20108:4;20082:30;;:5;:10;20088:3;20082:10;;;;;;;;;;;:22;20093:10;20082:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;20074:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20202:11;;;;;;;;;;;:21;;;20224:10;20202:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20178:10;:15;20189:3;20178:15;;;;;;;;;;;:20;;;:57;;20170:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20327:21;20337:10;20327:9;:21::i;:::-;20302:10;:15;20313:3;20302:15;;;;;;;;;;;:21;;;:46;;20294:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20405:28;20411:10;:15;20422:3;20411:15;;;;;;;;;;;:21;;;20405:5;:28::i;:::-;20469:4;20444:5;:10;20450:3;20444:10;;;;;;;;;;;:22;20455:10;20444:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19879:602;:::o;16468:307::-;16532:7;16551:16;16593:15;;16571:10;:19;16582:7;16571:19;;;;;;;;;;;;:37;16570:79;;16634:15;;16570:79;;;16612:10;:19;16623:7;16612:19;;;;;;;;;;;;16570:79;16551:98;;16660:18;16681:40;16714:6;16700:8;16682:15;:26;16681:32;;:40;;;;:::i;:::-;16660:61;;16739:28;16754:12;;16739:10;:14;;:28;;;;:::i;:::-;16732:35;;;;16468:307;;;:::o;6594:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7632:82::-;7673:4;7697:9;;7690:16;;7632:82;:::o;6671:23::-;;;;;;;;;;;;;:::o;12219:218::-;12307:4;12324:83;12333:12;:10;:12::i;:::-;12347:7;12356:50;12395:10;12356:11;:25;12368:12;:10;:12::i;:::-;12356:25;;;;;;;;;;;;;;;:34;12382:7;12356:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12324:8;:83::i;:::-;12425:4;12418:11;;12219:218;;;;:::o;16361:95::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16423:25:::1;16429:10;16441:6;16423:5;:25::i;:::-;16361:95:::0;:::o;19186:138::-;19244:16;19280:11;;;;;;;;;;;:25;;;19306:9;19280:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19273:43;;19186:138;;;:::o;9110:93::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9189:6:::1;9174:12;:21;;;;9110:93:::0;:::o;6511:40::-;;;;:::o;8850:134::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8956:20:::1;8940:13;;:36;;;;;;;;;;;;;;;;;;8850:134:::0;:::o;16787:470::-;16856:11;;;;;;;;;;;16848:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16949:10;16917:42;;:11;;;;;;;;;;;:19;;;16937:7;16917:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;16909:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17040:1;17012:25;17029:7;17012:16;:25::i;:::-;:29;17004:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17085:44;17091:10;17103:25;17120:7;17103:16;:25::i;:::-;17085:5;:44::i;:::-;17162:15;17140:10;:19;17151:7;17140:19;;;;;;;;;;;:37;;;;17193:56;17212:7;17221:10;17233:15;17193:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16787:470;:::o;19645:222::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19778:54:::1;;;;;;;;19803:1;19788:14;;:16;19778:54;;;;19806:4;19778:54;;;;19812:6;19778:54;;;;19820:5;19778:54;;;;19827:4;19778:54;;;;::::0;19747:10:::1;:28;19773:1;19758:14;;:16;19747:28;;;;;;;;;;;:85;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19843:14;;:16;;;;;;;;;;;;;19645:222:::0;;;:::o;6306:29::-;;;;;;;;;;;;;:::o;20714:166::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20810:1:::1;20789:23;;:9;:23;;;;20781:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20862:9;20843:11;;:29;;;;;;;;;;;;;;;;;;20714:166:::0;:::o;18931:126::-;18990:7;19017:11;;;;;;;;;;;:21;;;19039:9;19017:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19010:39;;18931:126;;;:::o;15409:21::-;;;;:::o;7830:119::-;7896:7;7923:9;:18;7933:7;7923:18;;;;;;;;;;;;;;;;7916:25;;7830:119;;;:::o;8540:184::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8599:11:::1;;;;;;;;;;;8598:12;8590:53;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8668:4;8654:11;;:18;;;;;;;;;;;;;;;;;;8701:15;8683;:33;;;;8540:184::o:0;6707:46::-;;;;:::o;6376:28::-;;;;;;;;;;;;;:::o;8384:144::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8446:11:::1;;;;;;;;;;;8438:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8515:5;8501:11;;:19;;;;;;;;;;;;;;;;;;8384:144::o:0;6342:27::-;;;;;;;;;;;;;:::o;19578:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7537:87::-;7576:13;7609:7;7602:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7537:87;:::o;15461:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17877:490::-;17967:6;17942:9;:21;17952:10;17942:21;;;;;;;;;;;;;;;;:31;;17934:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18011:93;18032:10;18052:42;18097:6;18011:20;:93::i;:::-;18141:71;18167:6;18141:71;;;;;;;;;;;;;;;;;:9;:21;18151:10;18141:21;;;;;;;;;;;;;;;;:25;;:71;;;;;:::i;:::-;18117:9;:21;18127:10;18117:21;;;;;;;;;;;;;;;:95;;;;18238:24;18255:6;18238:12;;:16;;:24;;;;:::i;:::-;18223:12;:39;;;;18307:42;18278:81;;18287:10;18278:81;;;18352:6;18278:81;;;;;;;;;;;;;;;;;;17877:490;:::o;19486:33::-;;;;:::o;12445:269::-;12538:4;12555:129;12564:12;:10;:12::i;:::-;12578:7;12587:96;12626:15;12587:96;;;;;;;;;;;;;;;;;:11;:25;12599:12;:10;:12::i;:::-;12587:25;;;;;;;;;;;;;;;:34;12613:7;12587:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12555:8;:129::i;:::-;12702:4;12695:11;;12445:269;;;;:::o;9460:122::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9569:5:::1;9537:18;:29;9556:9;9537:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9460:122:::0;:::o;10313:305::-;10383:10;10365:28;;:14;;;;;;;;;;;:28;;;10357:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10470:9;;10452:15;:27;10444:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10561:14;;;;;;;;;;;10532:44;;10553:6;;;;;;;;;;;10532:44;;;;;;;;;;;;10596:14;;;;;;;;;;;10587:6;;:23;;;;;;;;;;;;;;;;;;10313:305::o;17269:600::-;17348:11;;;;;;;;;;;17340:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17401:13;17430:9;17442:1;17430:13;;17425:341;17449:8;:15;17445:1;:19;17425:341;;;17530:10;17494:46;;:11;;;;;;;;;;;:19;;;17514:8;17523:1;17514:11;;;;;;;;;;;;;;17494:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;17486:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17598:29;17615:8;17624:1;17615:11;;;;;;;;;;;;;;17598:16;:29::i;:::-;17589:38;;;;17677:1;17645:29;17662:8;17671:1;17662:11;;;;;;;;;;;;;;17645:16;:29::i;:::-;:33;17642:113;;;17724:15;17698:10;:23;17709:8;17718:1;17709:11;;;;;;;;;;;;;;17698:23;;;;;;;;;;;:41;;;;17642:113;17466:3;;;;;;;17425:341;;;;17792:1;17784:5;:9;17776:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17837:24;17843:10;17855:5;17837;:24::i;:::-;17269:600;;:::o;11027:355::-;11113:4;11133:18;:29;11152:9;11133:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;11166:18;:32;11185:12;:10;:12::i;:::-;11166:32;;;;;;;;;;;;;;;;;;;;;;;;;11133:65;11130:223;;;11214:50;11232:12;:10;:12::i;:::-;11246:9;11257:6;11214:17;:50::i;:::-;11130:223;;;11295:42;11305:12;:10;:12::i;:::-;11319:9;11330:6;11295:9;:42::i;:::-;11130:223;11370:4;11363:11;;11027:355;;;;:::o;9330:118::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9436:4:::1;9404:18:::0;:29:::1;9423:9;9404:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9330:118:::0;:::o;9846:89::-;9891:7;9918:9;;9911:16;;9846:89;:::o;8736:102::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8823:7:::1;8808:12;:22;;;;8736:102:::0;:::o;6462:23::-;;;;;;;;;;;;;:::o;6043:31::-;;;;;;;;;;;;;:::o;19065:113::-;19117:7;19145:11;;;;;;;;;;;:19;;;19165:4;19145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19138:32;;19065:113;;;:::o;6411:25::-;;;;:::o;6278:21::-;;;;;;;;;;;;;:::o;10011:226::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10092:6:::1;;;;;;;;;;;10075:14;;:23;;;;;;;;;;;;;;;;;;10126:1;10109:6;;:19;;;;;;;;;;;;;;;;;;10169:4;10151:15;:22;10139:9;:34;;;;10226:1;10189:40;;10210:6;;;;;;;;;;;10189:40;;;;;;;;;;;;10011:226:::0;:::o;11390:151::-;11479:7;11506:11;:18;11518:5;11506:18;;;;;;;;;;;;;;;:27;11525:7;11506:27;;;;;;;;;;;;;;;;11499:34;;11390:151;;;;:::o;8129:138::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8202:4:::1;8195;:11;8187:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8255:4;8245:7;:14;;;;8129:138:::0;:::o;19526:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9594:244::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9703:1:::1;9683:22;;:8;:22;;;;9675:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9793:8;9764:38;;9785:6;;;;;;;;;;;9764:38;;;;;;;;;;;;9822:8;9813:6;;:17;;;;;;;;;;;;;;;;;;9594:244:::0;:::o;6081:38::-;;;;:::o;9215:103::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9302:8:::1;9287:12;;:23;;;;;;;;;;;;;;;;;;9215:103:::0;:::o;8279:93::-;7374:6;;;;;;;;;;;7360:20;;:10;:20;;;7352:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8353:11:::1;;;;;;;;;;;8352:12;8338:11;;:26;;;;;;;;;;;;;;;;;;8279:93::o:0;1443:181::-;1501:7;1521:9;1537:1;1533;:5;1521:17;;1562:1;1557;:6;;1549:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:1;1608:8;;;1443:181;;;;:::o;102:106::-;155:15;190:10;183:17;;102:106;:::o;18375:346::-;18494:1;18477:19;;:5;:19;;;;18469:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18575:1;18556:21;;:7;:21;;;;18548:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18659:6;18629:11;:18;18641:5;18629:18;;;;;;;;;;;;;;;:27;18648:7;18629:27;;;;;;;;;;;;;;;:36;;;;18697:7;18681:32;;18690:5;18681:32;;;18706:6;18681:32;;;;;;;;;;;;;;;;;;18375:346;;;:::o;12722:949::-;12854:1;12836:20;;:6;:20;;;;12828:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12938:1;12917:23;;:9;:23;;;;12909:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13004:6;;;;;;;;;;;12994:16;;:6;:16;;;;:39;;;;;13027:6;;;;;;;;;;;13014:19;;:9;:19;;;;12994:39;12991:132;;;13066:12;;13056:6;:22;;13048:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12991:132;13164:13;;;;;;;;;;;13151:26;;:9;:26;;;:58;;;;;13208:1;13181:24;13191:13;;;;;;;;;;;13181:9;:24::i;:::-;:28;13151:58;:73;;;;;13213:11;;;;;;;;;;;13151:73;13148:166;;;13257:9;;13248:6;:18;13240:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13148:166;13350:5;13329:26;;:6;:17;13336:9;13329:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;13326:119;;;13391:4;13371:6;:17;13378:9;13371:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13410:7;13423:9;13410:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13326:119;13475:71;13497:6;13475:71;;;;;;;;;;;;;;;;;:9;:17;13485:6;13475:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;13455:9;:17;13465:6;13455:17;;;;;;;;;;;;;;;:91;;;;13580:32;13605:6;13580:9;:20;13590:9;13580:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13557:9;:20;13567:9;13557:20;;;;;;;;;;;;;;;:55;;;;13645:9;13628:35;;13637:6;13628:35;;;13656:6;13628:35;;;;;;;;;;;;;;;;;;12722:949;;;:::o;13683:1714::-;13808:1;13790:20;;:6;:20;;;;13782:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13892:1;13871:23;;:9;:23;;;;13863:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13958:6;;;;;;;;;;;13948:16;;:6;:16;;;;:39;;;;;13981:6;;;;;;;;;;;13968:19;;:9;:19;;;;13948:39;13945:132;;;14020:12;;14010:6;:22;;14002:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13945:132;14106:13;;;;;;;;;;;14093:26;;:9;:26;;;:58;;;;;14150:1;14123:24;14133:13;;;;;;;;;;;14123:9;:24::i;:::-;:28;14093:58;:73;;;;;14155:11;;;;;;;;;;;14093:73;14090:166;;;14199:9;;14190:6;:18;14182:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14090:166;14286:21;14310:9;:17;14320:6;14310:17;;;;;;;;;;;;;;;;14286:41;;14363:6;14346:13;:23;;14338:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14469:6;14453:13;:22;14433:9;:17;14443:6;14433:17;;;;;;;;;;;;;;;:42;;;;14526:3;14520:2;14511:6;:11;14510:19;;;;;;14486:9;:20;14496:9;14486:20;;;;;;;;;;;;;;;;:43;;;;;;;;;;;14582:3;14577:1;14568:6;:10;14567:18;;;;;;14540:9;:23;14550:12;;;;;;;;;;;14540:23;;;;;;;;;;;;;;;;:45;;;;;;;;;;;14606:25;14627:3;14622:1;14613:6;:10;14612:18;;;;;;14606:5;:25::i;:::-;14652:23;14693:3;14688:1;14679:6;:10;14678:18;;;;;;14652:44;;14741:5;14720:26;;:6;:17;14727:9;14720:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;14717:119;;;14782:4;14762:6;:17;14769:9;14762:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14801:7;14814:9;14801:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14717:119;14926:23;14936:12;;;;;;;;;;;14926:9;:23::i;:::-;14910:13;:11;:13::i;:::-;:39;14901:6;:48;;;;15006:6;15002:328;15018:7;:14;;;;15016:1;:16;15002:328;;;15053:12;15068:7;15076:1;15068:10;;;;;;;;;;;;;;;;;;;;;;;;;15053:25;;15093:15;15111:50;15154:6;;15112:36;15132:15;15112;15122:4;15112:9;:15::i;:::-;:19;;:36;;;;:::i;:::-;15111:42;;:50;;;;:::i;:::-;15093:68;;15240:7;15221:9;:15;15231:4;15221:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;15262:9;15277:4;15262:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15303:15;15313:4;15303:9;:15::i;:::-;15297:2;;:21;;;;;;;;;;;15002:328;;15034:3;;;;;;;15002:328;;;;15362:9;15345:44;;15354:6;15345:44;;;15373:15;15345:44;;;;;;;;;;;;;;;;;;13683:1714;;;;;:::o;1776:192::-;1862:7;1895:1;1890;:6;;1898:12;1882:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1922:9;1938:1;1934;:5;1922:17;;1959:1;1952:8;;;1776:192;;;;;:::o;2234:132::-;2292:7;2319:39;2323:1;2326;2319:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2312:46;;2234:132;;;;:::o;1976:250::-;2034:7;2063:1;2058;:6;2054:47;;;2088:1;2081:8;;;;2054:47;2113:9;2129:1;2125;:5;2113:17;;2158:1;2153;2149;:5;;;;;;:10;2141:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:1;2210:8;;;1976:250;;;;;:::o;15971:378::-;16074:1;16055:21;;:7;:21;;;;16047:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16125:49;16154:1;16158:7;16167:6;16125:20;:49::i;:::-;16202:24;16219:6;16202:12;;:16;;:24;;;;:::i;:::-;16187:12;:39;;;;16258:30;16281:6;16258:9;:18;16268:7;16258:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;16237:9;:18;16247:7;16237:18;;;;;;;;;;;;;;;:51;;;;16325:7;16304:37;;16321:1;16304:37;;;16334:6;16304:37;;;;;;;;;;;;;;;;;;15971:378;;:::o;18827:92::-;;;;:::o;1632:136::-;1690:7;1717:43;1721:1;1724;1717:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1710:50;;1632:136;;;;:::o;2374:278::-;2460:7;2492:1;2488;:5;2495:12;2480:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2519:9;2535:1;2531;:5;;;;;;2519:17;;2643:1;2636:8;;;2374:278;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://6731baec5e606254d1fbb89ee51b2091d7753755fdfd3a9eddba31b893e3edad
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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