ETH Price: $3,581.90 (-3.05%)

Contract

0xb662446fad0c9B1dBf1073AC614C12B0285f515A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer212966442024-11-29 23:32:592 days ago1732923179IN
GOLD BRICS: BRICS+ Token
0 ETH0.000698089.8303244
Approve212410912024-11-22 5:09:4710 days ago1732252187IN
GOLD BRICS: BRICS+ Token
0 ETH0.0005441411.5375615
Transfer212410432024-11-22 5:00:1110 days ago1732251611IN
GOLD BRICS: BRICS+ Token
0 ETH0.000650279.16329573
Approve212409652024-11-22 4:44:3510 days ago1732250675IN
GOLD BRICS: BRICS+ Token
0 ETH0.0006430713.63505505
Approve212356492024-11-21 10:56:3511 days ago1732186595IN
GOLD BRICS: BRICS+ Token
0 ETH0.0006193313.14843459
Transfer212356412024-11-21 10:54:5911 days ago1732186499IN
GOLD BRICS: BRICS+ Token
0 ETH0.0004184610.83247235
Transfer212356342024-11-21 10:53:3511 days ago1732186415IN
GOLD BRICS: BRICS+ Token
0 ETH0.0005415811.03264972
Transfer212356312024-11-21 10:52:5911 days ago1732186379IN
GOLD BRICS: BRICS+ Token
0 ETH0.0005758311.73036108
Transfer212356302024-11-21 10:52:4711 days ago1732186367IN
GOLD BRICS: BRICS+ Token
0 ETH0.0005920212.06018668
Approve212272652024-11-20 6:49:1112 days ago1732085351IN
GOLD BRICS: BRICS+ Token
0 ETH0.000401598.51504336
Approve212216672024-11-19 12:06:1112 days ago1732017971IN
GOLD BRICS: BRICS+ Token
0 ETH0.0004908510.40763862
Approve212216562024-11-19 12:03:5912 days ago1732017839IN
GOLD BRICS: BRICS+ Token
0 ETH0.0004756710.08583195
Approve212210162024-11-19 9:55:3513 days ago1732010135IN
GOLD BRICS: BRICS+ Token
0 ETH0.000352687.47802196
Approve212163632024-11-18 18:21:4713 days ago1731954107IN
GOLD BRICS: BRICS+ Token
0 ETH0.0012251526.01008586
Transfer212095202024-11-17 19:28:4714 days ago1731871727IN
GOLD BRICS: BRICS+ Token
0 ETH0.0008144311.47469763
Approve211700332024-11-12 7:12:5920 days ago1731395579IN
GOLD BRICS: BRICS+ Token
0 ETH0.0011951725.37365437
Approve211636992024-11-11 9:59:1121 days ago1731319151IN
GOLD BRICS: BRICS+ Token
0 ETH0.0008630818.40309114
Approve211413742024-11-08 7:17:3524 days ago1731050255IN
GOLD BRICS: BRICS+ Token
0 ETH0.0005969612.7222969
Approve211200962024-11-05 7:56:3527 days ago1730793395IN
GOLD BRICS: BRICS+ Token
0 ETH0.000277395.88919335
Approve211094442024-11-03 20:16:3528 days ago1730664995IN
GOLD BRICS: BRICS+ Token
0 ETH0.000263925.59607007
Approve211089262024-11-03 18:32:4728 days ago1730658767IN
GOLD BRICS: BRICS+ Token
0 ETH0.000261085.56692475
Approve211076362024-11-03 14:12:5928 days ago1730643179IN
GOLD BRICS: BRICS+ Token
0 ETH0.0006929714.69321907
Approve211072262024-11-03 12:50:2328 days ago1730638223IN
GOLD BRICS: BRICS+ Token
0 ETH0.000267325.6682094
Approve211071892024-11-03 12:42:5928 days ago1730637779IN
GOLD BRICS: BRICS+ Token
0 ETH0.000260385.52093546
Approve211071822024-11-03 12:41:3528 days ago1730637695IN
GOLD BRICS: BRICS+ Token
0 ETH0.000215094.56066484
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GoldBRICS

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-18
*/

//
// SPDX-License-Identifier: MIT
// 

pragma solidity 0.8.9;

            
// Website      :   https://goldbrics.io
// Twitter(X)   :   https://x.com/GoldBricsOffice
// TG           :   https://t.me/bricspluschannel
                                                                                                            

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns(address pair);
}

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 IERC20Metadata is IERC20 {
    
    function name() external view returns(string memory);
    function symbol() external view returns(string memory);
    function decimals() external view returns(uint8);
}

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

contract ERC20 is Context, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
 
    uint256 private _totalSupply;
 
    string private _name;
    string private _symbol;
    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() external view virtual override returns(string memory) {
        return _name;
    }
   
    function symbol() external view virtual override returns(string memory) {
        return _symbol;
    }
    
    function decimals() external view virtual override returns(uint8) {
        return 18;
    }
   
    function totalSupply() public view virtual override returns(uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view virtual override returns(uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external virtual override returns(bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function allowance(address owner, address spender) external 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
    ) external virtual override returns(bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }
    
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        
        _balances[sender] = _balances[sender]- amount;
        _balances[recipient] = _balances[recipient]+ amount;
        emit Transfer(sender, recipient, amount);
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply+amount;
        _balances[account] = _balances[account]+amount;
        emit Transfer(address(0), account, amount);
    }
   
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

contract Ownable is Context {

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns(address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    
    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Router02 {
    function factory() external pure returns(address);
    function WETH() external pure returns(address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract GoldBRICS is ERC20, Ownable {
    IUniswapV2Router02 public immutable router;
    address public immutable uniswapV2Pair;

    // limits 
    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;   
    uint256 public maxWalletAmount;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 private deadBlocks = 3;

    // status flags
    bool private isTrading = false;

    // Excludes from fees and max transaction amount
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) public _isExcludedMaxWalletAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public marketPair;

    constructor() ERC20("GOLD BRICS", "BRICS+") {
 
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());

        _isExcludedMaxTransactionAmount[address(router)] = true;
        _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;        
        _isExcludedMaxTransactionAmount[owner()] = true;
        _isExcludedMaxTransactionAmount[address(this)] = true;

        _isExcludedMaxWalletAmount[owner()] = true;
        _isExcludedMaxWalletAmount[address(this)] = true;
        _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true;

        marketPair[address(uniswapV2Pair)] = true;

        approve(address(router), type(uint256).max);
        uint256 totalSupply = 21 * 1e6 * 1e18; //Total supply is 21 Million

        maxBuyAmount = totalSupply * 3 / 1000; // 0.3% maxbuy initially
        maxSellAmount = totalSupply * 3 / 1000; // 0.3% maxsell initially
        maxWalletAmount = totalSupply * 3 / 1000; // 0.3% maxWallet initially 

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    /**
     * @dev Once enabled, trades cannot be disabled.
     */
    function enableTrading() external onlyOwner {
        require(!isTrading, "Cannot re enable trading");
        isTrading = true;
        if (isTrading && tradingActiveBlock == 0) {
            tradingActiveBlock = block.number;
        }
    }

    function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner {
        /**
        * @dev Enter 1 for 0.1%, 10 for 1% and 1000 for 100%
        */
        require(((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 1000), "maxBuyAmount must be greater than 0.1%");
        require(((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 1000), "maxSellAmount must be greater than 0.1%");
        maxBuyAmount = (totalSupply() * newMaxBuy) / 1000;
        maxSellAmount = (totalSupply() * newMaxSell) / 1000;
    }

    function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner {
        /**
        * @dev Enter 1 for 0.1%, 10 for 1% and 1000 for 100%
        */
        require(((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 1000), "Must be atleast 0.1%");
        maxWalletAmount = (totalSupply() * newPercentage) / 1000;
    }
    
    function excludeFromWalletLimit(address account, bool excluded) external onlyOwner {
        _isExcludedMaxWalletAmount[account] = excluded;
    }

    function setMarketPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "Must keep uniswapV2Pair");
        marketPair[pair] = value;
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    function multiSend(address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

        require(addresses.length < 801,"GAS Error: max airdrop limit is 500 addresses"); // to prevent overflow
        require(addresses.length == tokens.length,"Mismatch between Address and token count");

        uint256 SCCC = 0;

        for(uint i=0; i < addresses.length; i++){
            SCCC = SCCC + (tokens[i] * 10**18);
        }

        require(balanceOf(msg.sender) >= SCCC, "Not enough tokens in wallet");

        for(uint i=0; i < addresses.length; i++){
            _transfer(msg.sender,addresses[i],(tokens[i] * 10**18 ));
        }
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
        
    ) internal override {

        //Sniped tokens will be sent to treasureWallet
        address treasureWallet = 0x164BecBEa399c9D5256DbcE475BD360529596bcd;
        
        if (amount == 0) {
            super._transfer(sender, recipient, 0);
            return;
        }

        if (
            sender != owner() &&
            recipient != owner()
        ) {
            require(isTrading, "Trading is not active.");
            if (marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient]) {
                require(amount <= maxBuyAmount, "buy transfer is over max amount");
            } 
            else if (marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender]) {
                require(amount <= maxSellAmount, "Sell transfer is over max amount");
            }

            if (!_isExcludedMaxWalletAmount[recipient]) {
                require(amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded");
            }

            //This will send tokens to treasure wallet if bot snipes
            if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) {
                    recipient = treasureWallet;
            }
           
        }

        super._transfer(sender, recipient, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260006009556003600a556000600b60006101000a81548160ff0219169083151502179055503480156200003657600080fd5b506040518060400160405280600a81526020017f474f4c44204252494353000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f42524943532b00000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000a1c565b508060049080519060200190620000d492919062000a1c565b5050506000620000e96200074c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021957600080fd5b505afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000254919062000b36565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b957600080fd5b505afa158015620002ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f4919062000b36565b6040518363ffffffff1660e01b81526004016200031392919062000b79565b602060405180830381600087803b1580156200032e57600080fd5b505af115801562000343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000369919062000b36565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000620004666200075460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620005256200075460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006b66080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200077e60201b60201c565b5060006a115eec47f6cf7e3500000090506103e8600382620006d9919062000bdf565b620006e5919062000c6f565b6006819055506103e8600382620006fd919062000bdf565b62000709919062000c6f565b6007819055506103e860038262000721919062000bdf565b6200072d919062000c6f565b600881905550620007453382620007ac60201b60201c565b5062000e1a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000620007a2620007946200074c60201b60201c565b84846200092f60201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200081f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008169062000d08565b60405180910390fd5b806002546200082f919062000d2a565b600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000881919062000d2a565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000923919062000d98565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000a0f919062000d98565b60405180910390a3505050565b82805462000a2a9062000de4565b90600052602060002090601f01602090048101928262000a4e576000855562000a9a565b82601f1062000a6957805160ff191683800117855562000a9a565b8280016001018555821562000a9a579182015b8281111562000a9957825182559160200191906001019062000a7c565b5b50905062000aa9919062000aad565b5090565b5b8082111562000ac857600081600090555060010162000aae565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000afe8262000ad1565b9050919050565b62000b108162000af1565b811462000b1c57600080fd5b50565b60008151905062000b308162000b05565b92915050565b60006020828403121562000b4f5762000b4e62000acc565b5b600062000b5f8482850162000b1f565b91505092915050565b62000b738162000af1565b82525050565b600060408201905062000b90600083018562000b68565b62000b9f602083018462000b68565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bec8262000ba6565b915062000bf98362000ba6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c355762000c3462000bb0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c7c8262000ba6565b915062000c898362000ba6565b92508262000c9c5762000c9b62000c40565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cf0601f8362000ca7565b915062000cfd8262000cb8565b602082019050919050565b6000602082019050818103600083015262000d238162000ce1565b9050919050565b600062000d378262000ba6565b915062000d448362000ba6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d7c5762000d7b62000bb0565b5b828201905092915050565b62000d928162000ba6565b82525050565b600060208201905062000daf600083018462000d87565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dfd57607f821691505b6020821081141562000e145762000e1362000db5565b5b50919050565b60805160a05161308262000e4760003960008181610bb5015261156401526000611aea01526130826000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c16dd4a411610095578063ee40166e11610064578063ee40166e146106dd578063f2fde38b14610708578063f5b3c3bf14610731578063f887ea401461076e576101e3565b8063c16dd4a414610625578063c18bc1951461064e578063dd62ed3e14610677578063e16830a8146106b4576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a9059cbb14610594578063aa4bde28146105d1578063bb4c9f0b146105fc576101e3565b80638da5cb5b1461049b57806395d89b41146104c657806396880b17146104f15780639e252f001461052e576101e3565b8063395093511161017a578063715018a611610149578063715018a61461041957806388e765ff146104305780638a8c523c1461045b5780638cd4426d14610472576101e3565b8063395093511461034957806349bd5a5e1461038657806366d602ae146103b157806370a08231146103dc576101e3565b806311a582c3116101b657806311a582c31461028d57806318160ddd146102b657806323b872dd146102e1578063313ce5671461031e576101e3565b806306fdde03146101e8578063095ea7b31461021357806310d5de5314610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610799565b60405161020a91906121df565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061229f565b61082b565b60405161024791906122fa565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612315565b610849565b60405161028491906122fa565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af9190612342565b610869565b005b3480156102c257600080fd5b506102cb610a3c565b6040516102d89190612391565b60405180910390f35b3480156102ed57600080fd5b50610308600480360381019061030391906123ac565b610a46565b60405161031591906122fa565b60405180910390f35b34801561032a57600080fd5b50610333610afe565b604051610340919061241b565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b919061229f565b610b07565b60405161037d91906122fa565b60405180910390f35b34801561039257600080fd5b5061039b610bb3565b6040516103a89190612445565b60405180910390f35b3480156103bd57600080fd5b506103c6610bd7565b6040516103d39190612391565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190612315565b610bdd565b6040516104109190612391565b60405180910390f35b34801561042557600080fd5b5061042e610c25565b005b34801561043c57600080fd5b50610445610d7d565b6040516104529190612391565b60405180910390f35b34801561046757600080fd5b50610470610d83565b005b34801561047e57600080fd5b506104996004803603810190610494919061229f565b610eb2565b005b3480156104a757600080fd5b506104b0610fe2565b6040516104bd9190612445565b60405180910390f35b3480156104d257600080fd5b506104db61100c565b6040516104e891906121df565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612315565b61109e565b60405161052591906122fa565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190612460565b6110be565b005b34801561056357600080fd5b5061057e6004803603810190610579919061229f565b6111a6565b60405161058b91906122fa565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b6919061229f565b611252565b6040516105c891906122fa565b60405180910390f35b3480156105dd57600080fd5b506105e6611270565b6040516105f39190612391565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e9190612548565b611276565b005b34801561063157600080fd5b5061064c600480360381019061064791906125f5565b6114cb565b005b34801561065a57600080fd5b5061067560048036038101906106709190612460565b61164c565b005b34801561068357600080fd5b5061069e60048036038101906106999190612635565b611782565b6040516106ab9190612391565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d691906125f5565b611809565b005b3480156106e957600080fd5b506106f26118fb565b6040516106ff9190612391565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190612315565b611901565b005b34801561073d57600080fd5b5061075860048036038101906107539190612315565b611ac8565b60405161076591906122fa565b60405180910390f35b34801561077a57600080fd5b50610783611ae8565b60405161079091906126d4565b60405180910390f35b6060600380546107a89061271e565b80601f01602080910402602001604051908101604052809291908181526020018280546107d49061271e565b80156108215780601f106107f657610100808354040283529160200191610821565b820191906000526020600020905b81548152906001019060200180831161080457829003601f168201915b5050505050905090565b600061083f610838611b0c565b8484611b14565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b610871611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f79061279c565b60405180910390fd5b6103e861090b610a3c565b610915919061281a565b6103e883610921610a3c565b61092b919061284b565b610935919061281a565b1015610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90612917565b60405180910390fd5b6103e8610981610a3c565b61098b919061281a565b6103e882610997610a3c565b6109a1919061284b565b6109ab919061281a565b10156109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e3906129a9565b60405180910390fd5b6103e8826109f8610a3c565b610a02919061284b565b610a0c919061281a565b6006819055506103e881610a1e610a3c565b610a28919061284b565b610a32919061281a565b6007819055505050565b6000600254905090565b6000610a53848484611bff565b610af384610a5f611b0c565b84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa9611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aee91906129c9565b611b14565b600190509392505050565b60006012905090565b6000610ba9610b14611b0c565b848460016000610b22611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba491906129fd565b611b14565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c2d611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb39061279c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b610d8b611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e119061279c565b60405180910390fd5b600b60009054906101000a900460ff1615610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612a9f565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550600b60009054906101000a900460ff168015610ea357506000600954145b15610eb057436009819055505b565b610eba611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f409061279c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f6d610fe2565b836040518363ffffffff1660e01b8152600401610f8b929190612abf565b602060405180830381600087803b158015610fa557600080fd5b505af1158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdd9190612afd565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461101b9061271e565b80601f01602080910402602001604051908101604052809291908181526020018280546110479061271e565b80156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b5050505050905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b6110c6611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061279c565b60405180910390fd5b61115d610fe2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111a2573d6000803e3d6000fd5b5050565b60006112486111b3611b0c565b8484600160006111c1611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906129c9565b611b14565b6001905092915050565b600061126661125f611b0c565b8484611bff565b6001905092915050565b60085481565b61127e611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113049061279c565b60405180910390fd5b6103218484905010611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612b9c565b60405180910390fd5b81819050848490501461139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390612c2e565b60405180910390fd5b6000805b858590508110156113f857670de0b6b3a76400008484838181106113c7576113c6612c4e565b5b905060200201356113d8919061284b565b826113e391906129fd565b915080806113f090612c7d565b9150506113a0565b508061140333610bdd565b1015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612d12565b60405180910390fd5b60005b858590508110156114c3576114b03387878481811061146957611468612c4e565b5b905060200201602081019061147e9190612315565b670de0b6b3a764000087878681811061149a57611499612c4e565b5b905060200201356114ab919061284b565b611bff565b80806114bb90612c7d565b915050611447565b505050505050565b6114d3611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115599061279c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612d7e565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611654611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061279c565b60405180910390fd5b6103e86116ee610a3c565b6116f8919061281a565b6103e882611704610a3c565b61170e919061284b565b611718919061281a565b1015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612dea565b60405180910390fd5b6103e881611765610a3c565b61176f919061284b565b611779919061281a565b60088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611811611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118979061279c565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b611909611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061279c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612e7c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bf29190612391565b60405180910390a3505050565b600073164becbea399c9d5256dbce475bd360529596bcd90506000821415611c3357611c2d84846000611fc4565b50611fbf565b611c3b610fe2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ca95750611c79610fe2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fb257600b60009054906101000a900460ff16611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490612ee8565b60405180910390fd5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611da05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611def57600654821115611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de190612f54565b60405180910390fd5b611ede565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e925750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611edd57600754821115611edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed390612fc0565b60405180910390fd5b5b5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f8857600854611f3b84610bdd565b83611f4691906129fd565b1115611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061302c565b60405180910390fd5b5b6000600954118015611fa85750600a54600954611fa591906129fd565b43105b15611fb1578092505b5b611fbd848484611fc4565b505b505050565b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200e91906129c9565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209a91906129fd565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121399190612391565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612180578082015181840152602081019050612165565b8381111561218f576000848401525b50505050565b6000601f19601f8301169050919050565b60006121b182612146565b6121bb8185612151565b93506121cb818560208601612162565b6121d481612195565b840191505092915050565b600060208201905081810360008301526121f981846121a6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122368261220b565b9050919050565b6122468161222b565b811461225157600080fd5b50565b6000813590506122638161223d565b92915050565b6000819050919050565b61227c81612269565b811461228757600080fd5b50565b60008135905061229981612273565b92915050565b600080604083850312156122b6576122b5612201565b5b60006122c485828601612254565b92505060206122d58582860161228a565b9150509250929050565b60008115159050919050565b6122f4816122df565b82525050565b600060208201905061230f60008301846122eb565b92915050565b60006020828403121561232b5761232a612201565b5b600061233984828501612254565b91505092915050565b6000806040838503121561235957612358612201565b5b60006123678582860161228a565b92505060206123788582860161228a565b9150509250929050565b61238b81612269565b82525050565b60006020820190506123a66000830184612382565b92915050565b6000806000606084860312156123c5576123c4612201565b5b60006123d386828701612254565b93505060206123e486828701612254565b92505060406123f58682870161228a565b9150509250925092565b600060ff82169050919050565b612415816123ff565b82525050565b6000602082019050612430600083018461240c565b92915050565b61243f8161222b565b82525050565b600060208201905061245a6000830184612436565b92915050565b60006020828403121561247657612475612201565b5b60006124848482850161228a565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b2576124b161248d565b5b8235905067ffffffffffffffff8111156124cf576124ce612492565b5b6020830191508360208202830111156124eb576124ea612497565b5b9250929050565b60008083601f8401126125085761250761248d565b5b8235905067ffffffffffffffff81111561252557612524612492565b5b60208301915083602082028301111561254157612540612497565b5b9250929050565b6000806000806040858703121561256257612561612201565b5b600085013567ffffffffffffffff8111156125805761257f612206565b5b61258c8782880161249c565b9450945050602085013567ffffffffffffffff8111156125af576125ae612206565b5b6125bb878288016124f2565b925092505092959194509250565b6125d2816122df565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612201565b5b600061261a85828601612254565b925050602061262b858286016125e0565b9150509250929050565b6000806040838503121561264c5761264b612201565b5b600061265a85828601612254565b925050602061266b85828601612254565b9150509250929050565b6000819050919050565b600061269a6126956126908461220b565b612675565b61220b565b9050919050565b60006126ac8261267f565b9050919050565b60006126be826126a1565b9050919050565b6126ce816126b3565b82525050565b60006020820190506126e960008301846126c5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061273657607f821691505b6020821081141561274a576127496126ef565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612786602083612151565b915061279182612750565b602082019050919050565b600060208201905081810360008301526127b581612779565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061282582612269565b915061283083612269565b9250826128405761283f6127bc565b5b828204905092915050565b600061285682612269565b915061286183612269565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561289a576128996127eb565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520677265617465722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b6000612901602683612151565b915061290c826128a5565b604082019050919050565b60006020820190508181036000830152612930816128f4565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206772656174657220746860008201527f616e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000612993602783612151565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b60006129d482612269565b91506129df83612269565b9250828210156129f2576129f16127eb565b5b828203905092915050565b6000612a0882612269565b9150612a1383612269565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4857612a476127eb565b5b828201905092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b6000612a89601883612151565b9150612a9482612a53565b602082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b6000604082019050612ad46000830185612436565b612ae16020830184612382565b9392505050565b600081519050612af7816125c9565b92915050565b600060208284031215612b1357612b12612201565b5b6000612b2184828501612ae8565b91505092915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b6000612b86602d83612151565b9150612b9182612b2a565b604082019050919050565b60006020820190508181036000830152612bb581612b79565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b6000612c18602883612151565b9150612c2382612bbc565b604082019050919050565b60006020820190508181036000830152612c4781612c0b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c8882612269565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cbb57612cba6127eb565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000612cfc601b83612151565b9150612d0782612cc6565b602082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000612d68601783612151565b9150612d7382612d32565b602082019050919050565b60006020820190508181036000830152612d9781612d5b565b9050919050565b7f4d7573742062652061746c6561737420302e3125000000000000000000000000600082015250565b6000612dd4601483612151565b9150612ddf82612d9e565b602082019050919050565b60006020820190508181036000830152612e0381612dc7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e66602683612151565b9150612e7182612e0a565b604082019050919050565b60006020820190508181036000830152612e9581612e59565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ed2601683612151565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b7f627579207472616e73666572206973206f766572206d617820616d6f756e7400600082015250565b6000612f3e601f83612151565b9150612f4982612f08565b602082019050919050565b60006020820190508181036000830152612f6d81612f31565b9050919050565b7f53656c6c207472616e73666572206973206f766572206d617820616d6f756e74600082015250565b6000612faa602083612151565b9150612fb582612f74565b602082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613016601383612151565b915061302182612fe0565b602082019050919050565b6000602082019050818103600083015261304581613009565b905091905056fea2646970667358221220adf219e0c3a4c934e023f3a14d12ec4a4cc6db552e6d071e9962f5e5f84d518064736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c16dd4a411610095578063ee40166e11610064578063ee40166e146106dd578063f2fde38b14610708578063f5b3c3bf14610731578063f887ea401461076e576101e3565b8063c16dd4a414610625578063c18bc1951461064e578063dd62ed3e14610677578063e16830a8146106b4576101e3565b8063a457c2d7116100d1578063a457c2d714610557578063a9059cbb14610594578063aa4bde28146105d1578063bb4c9f0b146105fc576101e3565b80638da5cb5b1461049b57806395d89b41146104c657806396880b17146104f15780639e252f001461052e576101e3565b8063395093511161017a578063715018a611610149578063715018a61461041957806388e765ff146104305780638a8c523c1461045b5780638cd4426d14610472576101e3565b8063395093511461034957806349bd5a5e1461038657806366d602ae146103b157806370a08231146103dc576101e3565b806311a582c3116101b657806311a582c31461028d57806318160ddd146102b657806323b872dd146102e1578063313ce5671461031e576101e3565b806306fdde03146101e8578063095ea7b31461021357806310d5de5314610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610799565b60405161020a91906121df565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061229f565b61082b565b60405161024791906122fa565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612315565b610849565b60405161028491906122fa565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af9190612342565b610869565b005b3480156102c257600080fd5b506102cb610a3c565b6040516102d89190612391565b60405180910390f35b3480156102ed57600080fd5b50610308600480360381019061030391906123ac565b610a46565b60405161031591906122fa565b60405180910390f35b34801561032a57600080fd5b50610333610afe565b604051610340919061241b565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b919061229f565b610b07565b60405161037d91906122fa565b60405180910390f35b34801561039257600080fd5b5061039b610bb3565b6040516103a89190612445565b60405180910390f35b3480156103bd57600080fd5b506103c6610bd7565b6040516103d39190612391565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190612315565b610bdd565b6040516104109190612391565b60405180910390f35b34801561042557600080fd5b5061042e610c25565b005b34801561043c57600080fd5b50610445610d7d565b6040516104529190612391565b60405180910390f35b34801561046757600080fd5b50610470610d83565b005b34801561047e57600080fd5b506104996004803603810190610494919061229f565b610eb2565b005b3480156104a757600080fd5b506104b0610fe2565b6040516104bd9190612445565b60405180910390f35b3480156104d257600080fd5b506104db61100c565b6040516104e891906121df565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612315565b61109e565b60405161052591906122fa565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190612460565b6110be565b005b34801561056357600080fd5b5061057e6004803603810190610579919061229f565b6111a6565b60405161058b91906122fa565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b6919061229f565b611252565b6040516105c891906122fa565b60405180910390f35b3480156105dd57600080fd5b506105e6611270565b6040516105f39190612391565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e9190612548565b611276565b005b34801561063157600080fd5b5061064c600480360381019061064791906125f5565b6114cb565b005b34801561065a57600080fd5b5061067560048036038101906106709190612460565b61164c565b005b34801561068357600080fd5b5061069e60048036038101906106999190612635565b611782565b6040516106ab9190612391565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d691906125f5565b611809565b005b3480156106e957600080fd5b506106f26118fb565b6040516106ff9190612391565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a9190612315565b611901565b005b34801561073d57600080fd5b5061075860048036038101906107539190612315565b611ac8565b60405161076591906122fa565b60405180910390f35b34801561077a57600080fd5b50610783611ae8565b60405161079091906126d4565b60405180910390f35b6060600380546107a89061271e565b80601f01602080910402602001604051908101604052809291908181526020018280546107d49061271e565b80156108215780601f106107f657610100808354040283529160200191610821565b820191906000526020600020905b81548152906001019060200180831161080457829003601f168201915b5050505050905090565b600061083f610838611b0c565b8484611b14565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b610871611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f79061279c565b60405180910390fd5b6103e861090b610a3c565b610915919061281a565b6103e883610921610a3c565b61092b919061284b565b610935919061281a565b1015610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90612917565b60405180910390fd5b6103e8610981610a3c565b61098b919061281a565b6103e882610997610a3c565b6109a1919061284b565b6109ab919061281a565b10156109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e3906129a9565b60405180910390fd5b6103e8826109f8610a3c565b610a02919061284b565b610a0c919061281a565b6006819055506103e881610a1e610a3c565b610a28919061284b565b610a32919061281a565b6007819055505050565b6000600254905090565b6000610a53848484611bff565b610af384610a5f611b0c565b84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa9611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aee91906129c9565b611b14565b600190509392505050565b60006012905090565b6000610ba9610b14611b0c565b848460016000610b22611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba491906129fd565b611b14565b6001905092915050565b7f0000000000000000000000002b43a9e09d945e82c69caed6ff61b4d4651ec20f81565b60075481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c2d611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb39061279c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b610d8b611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e119061279c565b60405180910390fd5b600b60009054906101000a900460ff1615610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612a9f565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550600b60009054906101000a900460ff168015610ea357506000600954145b15610eb057436009819055505b565b610eba611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f409061279c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f6d610fe2565b836040518363ffffffff1660e01b8152600401610f8b929190612abf565b602060405180830381600087803b158015610fa557600080fd5b505af1158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdd9190612afd565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461101b9061271e565b80601f01602080910402602001604051908101604052809291908181526020018280546110479061271e565b80156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b5050505050905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b6110c6611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061279c565b60405180910390fd5b61115d610fe2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111a2573d6000803e3d6000fd5b5050565b60006112486111b3611b0c565b8484600160006111c1611b0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906129c9565b611b14565b6001905092915050565b600061126661125f611b0c565b8484611bff565b6001905092915050565b60085481565b61127e611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113049061279c565b60405180910390fd5b6103218484905010611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612b9c565b60405180910390fd5b81819050848490501461139c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139390612c2e565b60405180910390fd5b6000805b858590508110156113f857670de0b6b3a76400008484838181106113c7576113c6612c4e565b5b905060200201356113d8919061284b565b826113e391906129fd565b915080806113f090612c7d565b9150506113a0565b508061140333610bdd565b1015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612d12565b60405180910390fd5b60005b858590508110156114c3576114b03387878481811061146957611468612c4e565b5b905060200201602081019061147e9190612315565b670de0b6b3a764000087878681811061149a57611499612c4e565b5b905060200201356114ab919061284b565b611bff565b80806114bb90612c7d565b915050611447565b505050505050565b6114d3611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115599061279c565b60405180910390fd5b7f0000000000000000000000002b43a9e09d945e82c69caed6ff61b4d4651ec20f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612d7e565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611654611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061279c565b60405180910390fd5b6103e86116ee610a3c565b6116f8919061281a565b6103e882611704610a3c565b61170e919061284b565b611718919061281a565b1015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612dea565b60405180910390fd5b6103e881611765610a3c565b61176f919061284b565b611779919061281a565b60088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611811611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118979061279c565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b611909611b0c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061279c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612e7c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bf29190612391565b60405180910390a3505050565b600073164becbea399c9d5256dbce475bd360529596bcd90506000821415611c3357611c2d84846000611fc4565b50611fbf565b611c3b610fe2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ca95750611c79610fe2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fb257600b60009054906101000a900460ff16611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490612ee8565b60405180910390fd5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611da05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611def57600654821115611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de190612f54565b60405180910390fd5b611ede565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e925750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611edd57600754821115611edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed390612fc0565b60405180910390fd5b5b5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f8857600854611f3b84610bdd565b83611f4691906129fd565b1115611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061302c565b60405180910390fd5b5b6000600954118015611fa85750600a54600954611fa591906129fd565b43105b15611fb1578092505b5b611fbd848484611fc4565b505b505050565b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200e91906129c9565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209a91906129fd565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121399190612391565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612180578082015181840152602081019050612165565b8381111561218f576000848401525b50505050565b6000601f19601f8301169050919050565b60006121b182612146565b6121bb8185612151565b93506121cb818560208601612162565b6121d481612195565b840191505092915050565b600060208201905081810360008301526121f981846121a6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122368261220b565b9050919050565b6122468161222b565b811461225157600080fd5b50565b6000813590506122638161223d565b92915050565b6000819050919050565b61227c81612269565b811461228757600080fd5b50565b60008135905061229981612273565b92915050565b600080604083850312156122b6576122b5612201565b5b60006122c485828601612254565b92505060206122d58582860161228a565b9150509250929050565b60008115159050919050565b6122f4816122df565b82525050565b600060208201905061230f60008301846122eb565b92915050565b60006020828403121561232b5761232a612201565b5b600061233984828501612254565b91505092915050565b6000806040838503121561235957612358612201565b5b60006123678582860161228a565b92505060206123788582860161228a565b9150509250929050565b61238b81612269565b82525050565b60006020820190506123a66000830184612382565b92915050565b6000806000606084860312156123c5576123c4612201565b5b60006123d386828701612254565b93505060206123e486828701612254565b92505060406123f58682870161228a565b9150509250925092565b600060ff82169050919050565b612415816123ff565b82525050565b6000602082019050612430600083018461240c565b92915050565b61243f8161222b565b82525050565b600060208201905061245a6000830184612436565b92915050565b60006020828403121561247657612475612201565b5b60006124848482850161228a565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b2576124b161248d565b5b8235905067ffffffffffffffff8111156124cf576124ce612492565b5b6020830191508360208202830111156124eb576124ea612497565b5b9250929050565b60008083601f8401126125085761250761248d565b5b8235905067ffffffffffffffff81111561252557612524612492565b5b60208301915083602082028301111561254157612540612497565b5b9250929050565b6000806000806040858703121561256257612561612201565b5b600085013567ffffffffffffffff8111156125805761257f612206565b5b61258c8782880161249c565b9450945050602085013567ffffffffffffffff8111156125af576125ae612206565b5b6125bb878288016124f2565b925092505092959194509250565b6125d2816122df565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612201565b5b600061261a85828601612254565b925050602061262b858286016125e0565b9150509250929050565b6000806040838503121561264c5761264b612201565b5b600061265a85828601612254565b925050602061266b85828601612254565b9150509250929050565b6000819050919050565b600061269a6126956126908461220b565b612675565b61220b565b9050919050565b60006126ac8261267f565b9050919050565b60006126be826126a1565b9050919050565b6126ce816126b3565b82525050565b60006020820190506126e960008301846126c5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061273657607f821691505b6020821081141561274a576127496126ef565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612786602083612151565b915061279182612750565b602082019050919050565b600060208201905081810360008301526127b581612779565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061282582612269565b915061283083612269565b9250826128405761283f6127bc565b5b828204905092915050565b600061285682612269565b915061286183612269565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561289a576128996127eb565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520677265617465722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b6000612901602683612151565b915061290c826128a5565b604082019050919050565b60006020820190508181036000830152612930816128f4565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206772656174657220746860008201527f616e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000612993602783612151565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b60006129d482612269565b91506129df83612269565b9250828210156129f2576129f16127eb565b5b828203905092915050565b6000612a0882612269565b9150612a1383612269565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4857612a476127eb565b5b828201905092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b6000612a89601883612151565b9150612a9482612a53565b602082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b6000604082019050612ad46000830185612436565b612ae16020830184612382565b9392505050565b600081519050612af7816125c9565b92915050565b600060208284031215612b1357612b12612201565b5b6000612b2184828501612ae8565b91505092915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b6000612b86602d83612151565b9150612b9182612b2a565b604082019050919050565b60006020820190508181036000830152612bb581612b79565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b6000612c18602883612151565b9150612c2382612bbc565b604082019050919050565b60006020820190508181036000830152612c4781612c0b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c8882612269565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cbb57612cba6127eb565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000612cfc601b83612151565b9150612d0782612cc6565b602082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b6000612d68601783612151565b9150612d7382612d32565b602082019050919050565b60006020820190508181036000830152612d9781612d5b565b9050919050565b7f4d7573742062652061746c6561737420302e3125000000000000000000000000600082015250565b6000612dd4601483612151565b9150612ddf82612d9e565b602082019050919050565b60006020820190508181036000830152612e0381612dc7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e66602683612151565b9150612e7182612e0a565b604082019050919050565b60006020820190508181036000830152612e9581612e59565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ed2601683612151565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b7f627579207472616e73666572206973206f766572206d617820616d6f756e7400600082015250565b6000612f3e601f83612151565b9150612f4982612f08565b602082019050919050565b60006020820190508181036000830152612f6d81612f31565b9050919050565b7f53656c6c207472616e73666572206973206f766572206d617820616d6f756e74600082015250565b6000612faa602083612151565b9150612fb582612f74565b602082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613016601383612151565b915061302182612fe0565b602082019050919050565b6000602082019050818103600083015261304581613009565b905091905056fea2646970667358221220adf219e0c3a4c934e023f3a14d12ec4a4cc6db552e6d071e9962f5e5f84d518064736f6c63430008090033

Deployed Bytecode Sourcemap

6304:6144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2898:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6801:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8818:553;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2289:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3078:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2184:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3399:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2408:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5527:150;;;;;;;;;;;;;:::i;:::-;;6460:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8561:249;;;;;;;;;;;;;:::i;:::-;;10199:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5225:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2067:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6871:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10079:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3627:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2546:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6532:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10342:673;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9892:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9379:345;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2734:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9736:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6571:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5691:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7087:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6348;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:101;2010:13;2043:5;2036:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:101;:::o;2898:168::-;2980:4;2997:39;3006:12;:10;:12::i;:::-;3020:7;3029:6;2997:8;:39::i;:::-;3054:4;3047:11;;2898:168;;;;:::o;6801:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;8818:553::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9067:4:::1;9051:13;:11;:13::i;:::-;:20;;;;:::i;:::-;9041:4;9028:9;9012:13;:11;:13::i;:::-;:25;;;;:::i;:::-;9011:34;;;;:::i;:::-;9010:62;;9002:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;9192:4;9176:13;:11;:13::i;:::-;:20;;;;:::i;:::-;9166:4;9152:10;9136:13;:11;:13::i;:::-;:26;;;;:::i;:::-;9135:35;;;;:::i;:::-;9134:63;;9126:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;9297:4;9284:9;9268:13;:11;:13::i;:::-;:25;;;;:::i;:::-;9267:34;;;;:::i;:::-;9252:12;:49;;;;9359:4;9345:10;9329:13;:11;:13::i;:::-;:26;;;;:::i;:::-;9328:35;;;;:::i;:::-;9312:13;:51;;;;8818:553:::0;;:::o;2289:107::-;2349:7;2376:12;;2369:19;;2289:107;:::o;3078:309::-;3219:4;3236:36;3246:6;3254:9;3265:6;3236:9;:36::i;:::-;3283:74;3292:6;3300:12;:10;:12::i;:::-;3350:6;3314:11;:19;3326:6;3314:19;;;;;;;;;;;;;;;:33;3334:12;:10;:12::i;:::-;3314:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;3283:8;:74::i;:::-;3375:4;3368:11;;3078:309;;;;;:::o;2184:94::-;2243:5;2268:2;2261:9;;2184:94;:::o;3399:216::-;3488:4;3505:80;3514:12;:10;:12::i;:::-;3528:7;3574:10;3537:11;:25;3549:12;:10;:12::i;:::-;3537:25;;;;;;;;;;;;;;;:34;3563:7;3537:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3505:8;:80::i;:::-;3603:4;3596:11;;3399:216;;;;:::o;6397:38::-;;;:::o;6494:28::-;;;;:::o;2408:126::-;2481:7;2508:9;:18;2518:7;2508:18;;;;;;;;;;;;;;;;2501:25;;2408:126;;;:::o;5527:150::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5636:1:::1;5599:40;;5620:6;;;;;;;;;;;5599:40;;;;;;;;;;;;5667:1;5650:6;;:19;;;;;;;;;;;;;;;;;;5527:150::o:0;6460:27::-;;;;:::o;8561:249::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:9:::1;;;;;;;;;;;8624:10;8616:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8686:4;8674:9;;:16;;;;;;;;;;;;;;;;;;8705:9;;;;;;;;;;;:36;;;;;8740:1;8718:18;;:23;8705:36;8701:102;;;8779:12;8758:18;:33;;;;8701:102;8561:249::o:0;10199:135::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10291:8:::1;10284:25;;;10310:7;:5;:7::i;:::-;10319:6;10284:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10199:135:::0;;:::o;5225:78::-;5262:7;5289:6;;;;;;;;;;;5282:13;;5225:78;:::o;2067:105::-;2124:13;2157:7;2150:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2067:105;:::o;6871:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;10079:112::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10155:7:::1;:5;:7::i;:::-;10147:25;;:36;10173:9;10147:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10079:112:::0;:::o;3627:226::-;3721:4;3738:85;3747:12;:10;:12::i;:::-;3761:7;3807:15;3770:11;:25;3782:12;:10;:12::i;:::-;3770:25;;;;;;;;;;;;;;;:34;3796:7;3770:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;3738:8;:85::i;:::-;3841:4;3834:11;;3627:226;;;;:::o;2546:176::-;2633:4;2650:42;2660:12;:10;:12::i;:::-;2674:9;2685:6;2650:9;:42::i;:::-;2710:4;2703:11;;2546:176;;;;:::o;6532:30::-;;;;:::o;10342:673::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10477:3:::1;10458:9;;:16;;:22;10450:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10591:6;;:13;;10571:9;;:16;;:33;10563:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10661:12;10694:6:::0;10690:101:::1;10708:9;;:16;;10704:1;:20;10690:101;;;10772:6;10760;;10767:1;10760:9;;;;;;;:::i;:::-;;;;;;;;:18;;;;:::i;:::-;10752:4;:27;;;;:::i;:::-;10745:34;;10726:3;;;;;:::i;:::-;;;;10690:101;;;;10836:4;10811:21;10821:10;10811:9;:21::i;:::-;:29;;10803:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10889:6;10885:123;10903:9;;:16;;10899:1;:20;10885:123;;;10940:56;10950:10;10961:9;;10971:1;10961:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10987:6;10975;;10982:1;10975:9;;;;;;;:::i;:::-;;;;;;;;:18;;;;:::i;:::-;10940:9;:56::i;:::-;10921:3;;;;;:::i;:::-;;;;10885:123;;;;10437:578;10342:673:::0;;;;:::o;9892:179::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9987:13:::1;9979:21;;:4;:21;;;;9971:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:5;10039:10;:16;10050:4;10039:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;9892:179:::0;;:::o;9379:345::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9619:4:::1;9603:13;:11;:13::i;:::-;:20;;;;:::i;:::-;9593:4;9576:13;9560;:11;:13::i;:::-;:29;;;;:::i;:::-;9559:38;;;;:::i;:::-;9558:66;;9550:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;9712:4;9695:13;9679;:11;:13::i;:::-;:29;;;;:::i;:::-;9678:38;;;;:::i;:::-;9660:15;:56;;;;9379:345:::0;:::o;2734:152::-;2824:7;2851:11;:18;2863:5;2851:18;;;;;;;;;;;;;;;:27;2870:7;2851:27;;;;;;;;;;;;;;;;2844:34;;2734:152;;;;:::o;9736:148::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9868:8:::1;9830:26;:35;9857:7;9830:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;9736:148:::0;;:::o;6571:37::-;;;;:::o;5691:246::-;5446:12;:10;:12::i;:::-;5436:22;;:6;;;;;;;;;;;:22;;;5428:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5802:1:::1;5782:22;;:8;:22;;;;5774:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5892:8;5863:38;;5884:6;;;;;;;;;;;5863:38;;;;;;;;;;;;5921:8;5912:6;;:17;;;;;;;;;;;;;;;;;;5691:246:::0;:::o;7087:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6348:::-;;;:::o;1433:97::-;1485:7;1512:10;1505:17;;1433:97;:::o;4502:220::-;4660:6;4630:11;:18;4642:5;4630:18;;;;;;;;;;;;;;;:27;4649:7;4630:27;;;;;;;;;;;;;;;:36;;;;4698:7;4682:32;;4691:5;4682:32;;;4707:6;4682:32;;;;;;:::i;:::-;;;;;;;;4502:220;;;:::o;11023:1420::-;11224:22;11249:42;11224:67;;11326:1;11316:6;:11;11312:102;;;11344:37;11360:6;11368:9;11379:1;11344:15;:37::i;:::-;11396:7;;;11312:102;11454:7;:5;:7::i;:::-;11444:17;;:6;:17;;;;:54;;;;;11491:7;:5;:7::i;:::-;11478:20;;:9;:20;;;;11444:54;11426:955;;;11533:9;;;;;;;;;;;11525:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11588:10;:18;11599:6;11588:18;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;11611:31;:42;11643:9;11611:42;;;;;;;;;;;;;;;;;;;;;;;;;11610:43;11588:65;11584:366;;;11692:12;;11682:6;:22;;11674:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11584:366;;;11780:10;:21;11791:9;11780:21;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;11806:31;:39;11838:6;11806:39;;;;;;;;;;;;;;;;;;;;;;;;;11805:40;11780:65;11776:174;;;11884:13;;11874:6;:23;;11866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11776:174;11584:366;11971:26;:37;11998:9;11971:37;;;;;;;;;;;;;;;;;;;;;;;;;11966:159;;12070:15;;12046:20;12056:9;12046;:20::i;:::-;12037:6;:29;;;;:::i;:::-;:48;;12029:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;11966:159;12236:1;12215:18;;:22;:74;;;;;12278:10;;12257:18;;:31;;;;:::i;:::-;12241:12;:48;12215:74;12211:146;;;12327:14;12315:26;;12211:146;11426:955;12393:42;12409:6;12417:9;12428:6;12393:15;:42::i;:::-;11155:1288;11023:1420;;;;:::o;3865:308::-;4046:6;4027:9;:17;4037:6;4027:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;4007:9;:17;4017:6;4007:17;;;;;;;;;;;;;;;:45;;;;4108:6;4086:9;:20;4096:9;4086:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;4063:9;:20;4073:9;4063:20;;;;;;;;;;;;;;;:51;;;;4147:9;4130:35;;4139:6;4130:35;;;4158:6;4130:35;;;;;;:::i;:::-;;;;;;;;3865:308;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:118::-;5803:24;5821:5;5803:24;:::i;:::-;5798:3;5791:37;5716:118;;:::o;5840:222::-;5933:4;5971:2;5960:9;5956:18;5948:26;;5984:71;6052:1;6041:9;6037:17;6028:6;5984:71;:::i;:::-;5840:222;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:117::-;6512:1;6509;6502:12;6526:117;6635:1;6632;6625:12;6649:117;6758:1;6755;6748:12;6789:568;6862:8;6872:6;6922:3;6915:4;6907:6;6903:17;6899:27;6889:122;;6930:79;;:::i;:::-;6889:122;7043:6;7030:20;7020:30;;7073:18;7065:6;7062:30;7059:117;;;7095:79;;:::i;:::-;7059:117;7209:4;7201:6;7197:17;7185:29;;7263:3;7255:4;7247:6;7243:17;7233:8;7229:32;7226:41;7223:128;;;7270:79;;:::i;:::-;7223:128;6789:568;;;;;:::o;7380:::-;7453:8;7463:6;7513:3;7506:4;7498:6;7494:17;7490:27;7480:122;;7521:79;;:::i;:::-;7480:122;7634:6;7621:20;7611:30;;7664:18;7656:6;7653:30;7650:117;;;7686:79;;:::i;:::-;7650:117;7800:4;7792:6;7788:17;7776:29;;7854:3;7846:4;7838:6;7834:17;7824:8;7820:32;7817:41;7814:128;;;7861:79;;:::i;:::-;7814:128;7380:568;;;;;:::o;7954:934::-;8076:6;8084;8092;8100;8149:2;8137:9;8128:7;8124:23;8120:32;8117:119;;;8155:79;;:::i;:::-;8117:119;8303:1;8292:9;8288:17;8275:31;8333:18;8325:6;8322:30;8319:117;;;8355:79;;:::i;:::-;8319:117;8468:80;8540:7;8531:6;8520:9;8516:22;8468:80;:::i;:::-;8450:98;;;;8246:312;8625:2;8614:9;8610:18;8597:32;8656:18;8648:6;8645:30;8642:117;;;8678:79;;:::i;:::-;8642:117;8791:80;8863:7;8854:6;8843:9;8839:22;8791:80;:::i;:::-;8773:98;;;;8568:313;7954:934;;;;;;;:::o;8894:116::-;8964:21;8979:5;8964:21;:::i;:::-;8957:5;8954:32;8944:60;;9000:1;8997;8990:12;8944:60;8894:116;:::o;9016:133::-;9059:5;9097:6;9084:20;9075:29;;9113:30;9137:5;9113:30;:::i;:::-;9016:133;;;;:::o;9155:468::-;9220:6;9228;9277:2;9265:9;9256:7;9252:23;9248:32;9245:119;;;9283:79;;:::i;:::-;9245:119;9403:1;9428:53;9473:7;9464:6;9453:9;9449:22;9428:53;:::i;:::-;9418:63;;9374:117;9530:2;9556:50;9598:7;9589:6;9578:9;9574:22;9556:50;:::i;:::-;9546:60;;9501:115;9155:468;;;;;:::o;9629:474::-;9697:6;9705;9754:2;9742:9;9733:7;9729:23;9725:32;9722:119;;;9760:79;;:::i;:::-;9722:119;9880:1;9905:53;9950:7;9941:6;9930:9;9926:22;9905:53;:::i;:::-;9895:63;;9851:117;10007:2;10033:53;10078:7;10069:6;10058:9;10054:22;10033:53;:::i;:::-;10023:63;;9978:118;9629:474;;;;;:::o;10109:60::-;10137:3;10158:5;10151:12;;10109:60;;;:::o;10175:142::-;10225:9;10258:53;10276:34;10285:24;10303:5;10285:24;:::i;:::-;10276:34;:::i;:::-;10258:53;:::i;:::-;10245:66;;10175:142;;;:::o;10323:126::-;10373:9;10406:37;10437:5;10406:37;:::i;:::-;10393:50;;10323:126;;;:::o;10455:152::-;10531:9;10564:37;10595:5;10564:37;:::i;:::-;10551:50;;10455:152;;;:::o;10613:183::-;10726:63;10783:5;10726:63;:::i;:::-;10721:3;10714:76;10613:183;;:::o;10802:274::-;10921:4;10959:2;10948:9;10944:18;10936:26;;10972:97;11066:1;11055:9;11051:17;11042:6;10972:97;:::i;:::-;10802:274;;;;:::o;11082:180::-;11130:77;11127:1;11120:88;11227:4;11224:1;11217:15;11251:4;11248:1;11241:15;11268:320;11312:6;11349:1;11343:4;11339:12;11329:22;;11396:1;11390:4;11386:12;11417:18;11407:81;;11473:4;11465:6;11461:17;11451:27;;11407:81;11535:2;11527:6;11524:14;11504:18;11501:38;11498:84;;;11554:18;;:::i;:::-;11498:84;11319:269;11268:320;;;:::o;11594:182::-;11734:34;11730:1;11722:6;11718:14;11711:58;11594:182;:::o;11782:366::-;11924:3;11945:67;12009:2;12004:3;11945:67;:::i;:::-;11938:74;;12021:93;12110:3;12021:93;:::i;:::-;12139:2;12134:3;12130:12;12123:19;;11782:366;;;:::o;12154:419::-;12320:4;12358:2;12347:9;12343:18;12335:26;;12407:9;12401:4;12397:20;12393:1;12382:9;12378:17;12371:47;12435:131;12561:4;12435:131;:::i;:::-;12427:139;;12154:419;;;:::o;12579:180::-;12627:77;12624:1;12617:88;12724:4;12721:1;12714:15;12748:4;12745:1;12738:15;12765:180;12813:77;12810:1;12803:88;12910:4;12907:1;12900:15;12934:4;12931:1;12924:15;12951:185;12991:1;13008:20;13026:1;13008:20;:::i;:::-;13003:25;;13042:20;13060:1;13042:20;:::i;:::-;13037:25;;13081:1;13071:35;;13086:18;;:::i;:::-;13071:35;13128:1;13125;13121:9;13116:14;;12951:185;;;;:::o;13142:348::-;13182:7;13205:20;13223:1;13205:20;:::i;:::-;13200:25;;13239:20;13257:1;13239:20;:::i;:::-;13234:25;;13427:1;13359:66;13355:74;13352:1;13349:81;13344:1;13337:9;13330:17;13326:105;13323:131;;;13434:18;;:::i;:::-;13323:131;13482:1;13479;13475:9;13464:20;;13142:348;;;;:::o;13496:225::-;13636:34;13632:1;13624:6;13620:14;13613:58;13705:8;13700:2;13692:6;13688:15;13681:33;13496:225;:::o;13727:366::-;13869:3;13890:67;13954:2;13949:3;13890:67;:::i;:::-;13883:74;;13966:93;14055:3;13966:93;:::i;:::-;14084:2;14079:3;14075:12;14068:19;;13727:366;;;:::o;14099:419::-;14265:4;14303:2;14292:9;14288:18;14280:26;;14352:9;14346:4;14342:20;14338:1;14327:9;14323:17;14316:47;14380:131;14506:4;14380:131;:::i;:::-;14372:139;;14099:419;;;:::o;14524:226::-;14664:34;14660:1;14652:6;14648:14;14641:58;14733:9;14728:2;14720:6;14716:15;14709:34;14524:226;:::o;14756:366::-;14898:3;14919:67;14983:2;14978:3;14919:67;:::i;:::-;14912:74;;14995:93;15084:3;14995:93;:::i;:::-;15113:2;15108:3;15104:12;15097:19;;14756:366;;;:::o;15128:419::-;15294:4;15332:2;15321:9;15317:18;15309:26;;15381:9;15375:4;15371:20;15367:1;15356:9;15352:17;15345:47;15409:131;15535:4;15409:131;:::i;:::-;15401:139;;15128:419;;;:::o;15553:191::-;15593:4;15613:20;15631:1;15613:20;:::i;:::-;15608:25;;15647:20;15665:1;15647:20;:::i;:::-;15642:25;;15686:1;15683;15680:8;15677:34;;;15691:18;;:::i;:::-;15677:34;15736:1;15733;15729:9;15721:17;;15553:191;;;;:::o;15750:305::-;15790:3;15809:20;15827:1;15809:20;:::i;:::-;15804:25;;15843:20;15861:1;15843:20;:::i;:::-;15838:25;;15997:1;15929:66;15925:74;15922:1;15919:81;15916:107;;;16003:18;;:::i;:::-;15916:107;16047:1;16044;16040:9;16033:16;;15750:305;;;;:::o;16061:174::-;16201:26;16197:1;16189:6;16185:14;16178:50;16061:174;:::o;16241:366::-;16383:3;16404:67;16468:2;16463:3;16404:67;:::i;:::-;16397:74;;16480:93;16569:3;16480:93;:::i;:::-;16598:2;16593:3;16589:12;16582:19;;16241:366;;;:::o;16613:419::-;16779:4;16817:2;16806:9;16802:18;16794:26;;16866:9;16860:4;16856:20;16852:1;16841:9;16837:17;16830:47;16894:131;17020:4;16894:131;:::i;:::-;16886:139;;16613:419;;;:::o;17038:332::-;17159:4;17197:2;17186:9;17182:18;17174:26;;17210:71;17278:1;17267:9;17263:17;17254:6;17210:71;:::i;:::-;17291:72;17359:2;17348:9;17344:18;17335:6;17291:72;:::i;:::-;17038:332;;;;;:::o;17376:137::-;17430:5;17461:6;17455:13;17446:22;;17477:30;17501:5;17477:30;:::i;:::-;17376:137;;;;:::o;17519:345::-;17586:6;17635:2;17623:9;17614:7;17610:23;17606:32;17603:119;;;17641:79;;:::i;:::-;17603:119;17761:1;17786:61;17839:7;17830:6;17819:9;17815:22;17786:61;:::i;:::-;17776:71;;17732:125;17519:345;;;;:::o;17870:232::-;18010:34;18006:1;17998:6;17994:14;17987:58;18079:15;18074:2;18066:6;18062:15;18055:40;17870:232;:::o;18108:366::-;18250:3;18271:67;18335:2;18330:3;18271:67;:::i;:::-;18264:74;;18347:93;18436:3;18347:93;:::i;:::-;18465:2;18460:3;18456:12;18449:19;;18108:366;;;:::o;18480:419::-;18646:4;18684:2;18673:9;18669:18;18661:26;;18733:9;18727:4;18723:20;18719:1;18708:9;18704:17;18697:47;18761:131;18887:4;18761:131;:::i;:::-;18753:139;;18480:419;;;:::o;18905:227::-;19045:34;19041:1;19033:6;19029:14;19022:58;19114:10;19109:2;19101:6;19097:15;19090:35;18905:227;:::o;19138:366::-;19280:3;19301:67;19365:2;19360:3;19301:67;:::i;:::-;19294:74;;19377:93;19466:3;19377:93;:::i;:::-;19495:2;19490:3;19486:12;19479:19;;19138:366;;;:::o;19510:419::-;19676:4;19714:2;19703:9;19699:18;19691:26;;19763:9;19757:4;19753:20;19749:1;19738:9;19734:17;19727:47;19791:131;19917:4;19791:131;:::i;:::-;19783:139;;19510:419;;;:::o;19935:180::-;19983:77;19980:1;19973:88;20080:4;20077:1;20070:15;20104:4;20101:1;20094:15;20121:233;20160:3;20183:24;20201:5;20183:24;:::i;:::-;20174:33;;20229:66;20222:5;20219:77;20216:103;;;20299:18;;:::i;:::-;20216:103;20346:1;20339:5;20335:13;20328:20;;20121:233;;;:::o;20360:177::-;20500:29;20496:1;20488:6;20484:14;20477:53;20360:177;:::o;20543:366::-;20685:3;20706:67;20770:2;20765:3;20706:67;:::i;:::-;20699:74;;20782:93;20871:3;20782:93;:::i;:::-;20900:2;20895:3;20891:12;20884:19;;20543:366;;;:::o;20915:419::-;21081:4;21119:2;21108:9;21104:18;21096:26;;21168:9;21162:4;21158:20;21154:1;21143:9;21139:17;21132:47;21196:131;21322:4;21196:131;:::i;:::-;21188:139;;20915:419;;;:::o;21340:173::-;21480:25;21476:1;21468:6;21464:14;21457:49;21340:173;:::o;21519:366::-;21661:3;21682:67;21746:2;21741:3;21682:67;:::i;:::-;21675:74;;21758:93;21847:3;21758:93;:::i;:::-;21876:2;21871:3;21867:12;21860:19;;21519:366;;;:::o;21891:419::-;22057:4;22095:2;22084:9;22080:18;22072:26;;22144:9;22138:4;22134:20;22130:1;22119:9;22115:17;22108:47;22172:131;22298:4;22172:131;:::i;:::-;22164:139;;21891:419;;;:::o;22316:170::-;22456:22;22452:1;22444:6;22440:14;22433:46;22316:170;:::o;22492:366::-;22634:3;22655:67;22719:2;22714:3;22655:67;:::i;:::-;22648:74;;22731:93;22820:3;22731:93;:::i;:::-;22849:2;22844:3;22840:12;22833:19;;22492:366;;;:::o;22864:419::-;23030:4;23068:2;23057:9;23053:18;23045:26;;23117:9;23111:4;23107:20;23103:1;23092:9;23088:17;23081:47;23145:131;23271:4;23145:131;:::i;:::-;23137:139;;22864:419;;;:::o;23289:225::-;23429:34;23425:1;23417:6;23413:14;23406:58;23498:8;23493:2;23485:6;23481:15;23474:33;23289:225;:::o;23520:366::-;23662:3;23683:67;23747:2;23742:3;23683:67;:::i;:::-;23676:74;;23759:93;23848:3;23759:93;:::i;:::-;23877:2;23872:3;23868:12;23861:19;;23520:366;;;:::o;23892:419::-;24058:4;24096:2;24085:9;24081:18;24073:26;;24145:9;24139:4;24135:20;24131:1;24120:9;24116:17;24109:47;24173:131;24299:4;24173:131;:::i;:::-;24165:139;;23892:419;;;:::o;24317:172::-;24457:24;24453:1;24445:6;24441:14;24434:48;24317:172;:::o;24495:366::-;24637:3;24658:67;24722:2;24717:3;24658:67;:::i;:::-;24651:74;;24734:93;24823:3;24734:93;:::i;:::-;24852:2;24847:3;24843:12;24836:19;;24495:366;;;:::o;24867:419::-;25033:4;25071:2;25060:9;25056:18;25048:26;;25120:9;25114:4;25110:20;25106:1;25095:9;25091:17;25084:47;25148:131;25274:4;25148:131;:::i;:::-;25140:139;;24867:419;;;:::o;25292:181::-;25432:33;25428:1;25420:6;25416:14;25409:57;25292:181;:::o;25479:366::-;25621:3;25642:67;25706:2;25701:3;25642:67;:::i;:::-;25635:74;;25718:93;25807:3;25718:93;:::i;:::-;25836:2;25831:3;25827:12;25820:19;;25479:366;;;:::o;25851:419::-;26017:4;26055:2;26044:9;26040:18;26032:26;;26104:9;26098:4;26094:20;26090:1;26079:9;26075:17;26068:47;26132:131;26258:4;26132:131;:::i;:::-;26124:139;;25851:419;;;:::o;26276:182::-;26416:34;26412:1;26404:6;26400:14;26393:58;26276:182;:::o;26464:366::-;26606:3;26627:67;26691:2;26686:3;26627:67;:::i;:::-;26620:74;;26703:93;26792:3;26703:93;:::i;:::-;26821:2;26816:3;26812:12;26805:19;;26464:366;;;:::o;26836:419::-;27002:4;27040:2;27029:9;27025:18;27017:26;;27089:9;27083:4;27079:20;27075:1;27064:9;27060:17;27053:47;27117:131;27243:4;27117:131;:::i;:::-;27109:139;;26836:419;;;:::o;27261:169::-;27401:21;27397:1;27389:6;27385:14;27378:45;27261:169;:::o;27436:366::-;27578:3;27599:67;27663:2;27658:3;27599:67;:::i;:::-;27592:74;;27675:93;27764:3;27675:93;:::i;:::-;27793:2;27788:3;27784:12;27777:19;;27436:366;;;:::o;27808:419::-;27974:4;28012:2;28001:9;27997:18;27989:26;;28061:9;28055:4;28051:20;28047:1;28036:9;28032:17;28025:47;28089:131;28215:4;28089:131;:::i;:::-;28081:139;;27808:419;;;:::o

Swarm Source

ipfs://adf219e0c3a4c934e023f3a14d12ec4a4cc6db552e6d071e9962f5e5f84d5180

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

BRICS+ is a memecoin inspired from the BRICS currency. LP burnt and contract renounced.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.