ETH Price: $3,895.03 (+0.27%)

Token

ERC-20: Shibpiece Coin (SHIBPIECE)
 

Overview

Max Total Supply

1,000,000,000,000,000 SHIBPIECE

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,680,729,370,605.888701082 SHIBPIECE

Value
$0.00
0x7e5ae7c9991c3a5bf556d1d1e20ed2277e26a73e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SHIBPIECE

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-06
*/

/**
SHIBA+One Piece=SHIBPIECE
WANTED SHIBA=SHIPIECE
HODL+EARN=SHIPIECE
SHIPIECE WILL BE MARINE KING OF ERC
*/
//https://shibpiece.com/
//https://t.me/ShibPieceERC
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract SHIBPIECE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _FeeoFSell;
    uint256 private _FeeOfBuy;
    address payable private _feeAddress;
    
    string private constant _name = " Shibpiece Coin";
    string private constant _symbol = "SHIBPIECE";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private removeMaxTx = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddress = payable(0x099e0483eC9727F35B908A097b607CC3F4fb7E4A);
        _FeeOfBuy = 12;
        _FeeoFSell = 12;
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddress] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function setRemoveMaxTx(bool onoff) external onlyOwner() {
        removeMaxTx = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0);
        require(!bots[from]);

        if (!_isExcludedFromFee[from] 
            && !_isExcludedFromFee[to] ) {
            _feeAddr1 = 0;
            _feeAddr2 = _FeeOfBuy;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && removeMaxTx) {
                uint walletBalance = balanceOf(address(to));
                require(amount.add(walletBalance) <= _maxTxAmount);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = _FeeoFSell;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint burnAmount = contractTokenBalance/3;
                contractTokenBalance -= burnAmount;
                burnToken(burnAmount);
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function burnToken(uint burnAmount) private lockTheSwap{
        if(burnAmount > 0){
            _transfer(address(this), address(0xdead),burnAmount);
        }

    }

    function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        if (maxTxAmount > 10000000000000 * 10**9) {
            _maxTxAmount = maxTxAmount;
        }
    }
    

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddress.transfer(amount);
    }

    function createPair() external onlyOwner(){
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

    }
    
    function openTrading() external onlyOwner() {
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        removeMaxTx = true;
        _maxTxAmount = 10000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() public onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    
    function _setFee(uint256 buyFee,uint256 sellFee) external onlyOwner() {
            _FeeOfBuy = buyFee;
            _FeeoFSell = sellFee;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"_setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setRemoveMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062000412565b6000196200002d919062000479565b6007556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff02191690831515021790555069d3c21bcecceda10000006010553480156200009c57600080fd5b506000620000af620003a860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073099e0483ec9727f35b908a097b607cc3f4fb7e4a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c8081905550600c600b81905550600754600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020d620003b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040516200039a9190620004c5565b60405180910390a3620004e2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200041f82620003d9565b91506200042c83620003d9565b9250826200043f576200043e620003e3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200048682620003d9565b91506200049383620003d9565b925082821015620004a957620004a86200044a565b5b828203905092915050565b620004bf81620003d9565b82525050565b6000602082019050620004dc6000830184620004b4565b92915050565b6134ed80620004f26000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063b515566a11610064578063b515566a146103ba578063c3c8cd80146103e3578063c9567bf9146103fa578063dd62ed3e14610411578063dd726e7c1461044e5761012a565b8063715018a6146102f95780638da5cb5b1461031057806395d89b411461033b5780639e78fb4f14610366578063a9059cbb1461037d5761012a565b8063273123b7116100e7578063273123b714610228578063313ce5671461025157806346df33b71461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd146101975780631bbae6e0146101c257806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610477565b6040516101519190612617565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906126e1565b6104b4565b60405161018e919061273c565b60405180910390f35b3480156101a357600080fd5b506101ac6104d2565b6040516101b99190612766565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612781565b6104e4565b005b3480156101f757600080fd5b50610212600480360381019061020d91906127ae565b610596565b60405161021f919061273c565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612801565b61066f565b005b34801561025d57600080fd5b5061026661075f565b604051610273919061284a565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612891565b610768565b005b3480156102b157600080fd5b506102ba61081a565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612801565b6108c0565b6040516102f09190612766565b60405180910390f35b34801561030557600080fd5b5061030e610911565b005b34801561031c57600080fd5b50610325610a64565b60405161033291906128cd565b60405180910390f35b34801561034757600080fd5b50610350610a8d565b60405161035d9190612617565b60405180910390f35b34801561037257600080fd5b5061037b610aca565b005b34801561038957600080fd5b506103a4600480360381019061039f91906126e1565b610da6565b6040516103b1919061273c565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190612a30565b610dc4565b005b3480156103ef57600080fd5b506103f8610eee565b005b34801561040657600080fd5b5061040f610f9c565b005b34801561041d57600080fd5b5061043860048036038101906104339190612a79565b61126b565b6040516104459190612766565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190612ab9565b6112f2565b005b60606040518060400160405280600f81526020017f2053686962706965636520436f696e0000000000000000000000000000000000815250905090565b60006104c86104c1611399565b84846113a1565b6001905092915050565b600069d3c21bcecceda1000000905090565b6104ec611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057090612b45565b60405180910390fd5b69021e19e0c9bab240000081111561059357806010819055505b50565b60006105a384848461156a565b610664846105af611399565b61065f8560405180606001604052806028815260200161349060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610615611399565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b6113a1565b600190509392505050565b610677611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90612b45565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610770611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490612b45565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b610822611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a690612b45565b60405180910390fd5b60004790506108bd81611b23565b50565b600061090a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f565b9050919050565b610919611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612b45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5348494250494543450000000000000000000000000000000000000000000000815250905090565b610ad2611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612b45565b60405180910390fd5b600f60149054906101000a900460ff1615610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba690612bb1565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190612be6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190612be6565b6040518363ffffffff1660e01b8152600401610d20929190612c13565b6020604051808303816000875af1158015610d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d639190612be6565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610dba610db3611399565b848461156a565b6001905092915050565b610dcc611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090612b45565b60405180910390fd5b60005b8151811015610eea57600160066000848481518110610e7e57610e7d612c3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ee290612c9a565b915050610e5c565b5050565b610ef6611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612b45565b60405180910390fd5b6000610f8e306108c0565b9050610f9981611bfd565b50565b610fa4611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612b45565b60405180910390fd5b61106830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda10000006113a1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b1306108c0565b6000806110bc610a64565b426040518863ffffffff1660e01b81526004016110de96959493929190612d27565b60606040518083038185885af11580156110fc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111219190612d9d565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff02191690831515021790555069021e19e0c9bab24000006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611225929190612df0565b6020604051808303816000875af1158015611244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112689190612e2e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fa611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b45565b60405180910390fd5b81600c8190555080600b819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140790612ecd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612f5f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155d9190612766565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612ff1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90613083565b60405180910390fd5b6000811161165557600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116ac57600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117505750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aaf576000600981905550600c54600a81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118115750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118675750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561187f5750600f60179054906101000a900460ff165b156118b457600061188f836108c0565b90506010546118a78284611e7690919063ffffffff16565b11156118b257600080fd5b505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561195f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cc576000600981905550600b54600a819055505b60006119d7306108c0565b9050600f60159054906101000a900460ff16158015611a445750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a5c5750600f60169054906101000a900460ff165b15611aad576000600382611a7091906130d2565b90508082611a7e9190613103565b9150611a8981611ed4565b611a9282611bfd565b60004790506000811115611aaa57611aa947611b23565b5b50505b505b611aba838383611f24565b505050565b6000838311158290611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe9190612617565b60405180910390fd5b5060008385611b169190613103565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b8b573d6000803e3d6000fd5b5050565b6000600754821115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd906131a9565b60405180910390fd5b6000611be0611f34565b9050611bf58184611f5f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3557611c346128ed565b5b604051908082528060200260200182016040528015611c635781602001602082028036833780820191505090505b5090503081600081518110611c7b57611c7a612c3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d469190612be6565b81600181518110611d5a57611d59612c3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dc130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113a1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e25959493929190613287565b600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b6000808284611e8591906132e1565b905083811015611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190613383565b60405180910390fd5b8091505092915050565b6001600f60156101000a81548160ff0219169083151502179055506000811115611f0657611f053061dead8361156a565b5b6000600f60156101000a81548160ff02191690831515021790555050565b611f2f838383611fa9565b505050565b6000806000611f41612174565b91509150611f588183611f5f90919063ffffffff16565b9250505090565b6000611fa183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d9565b905092915050565b600080600080600080611fbb8761223c565b95509550955095509550955061201986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fa816122ee565b61210484836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121619190612766565b60405180910390a3505050505050505050565b60008060006007549050600069d3c21bcecceda100000090506121ac69d3c21bcecceda1000000600754611f5f90919063ffffffff16565b8210156121cc5760075469d3c21bcecceda10000009350935050506121d5565b81819350935050505b9091565b60008083118290612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179190612617565b60405180910390fd5b506000838561222f91906130d2565b9050809150509392505050565b60008060008060008060008060006122598a600954600a546123e5565b9250925092506000612269611f34565b9050600080600061227c8e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611abf565b905092915050565b60006122f8611f34565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c0826007546122a490919063ffffffff16565b6007819055506123db81600854611e7690919063ffffffff16565b6008819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f5f90919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f5f90919063ffffffff16565b9050600061246482612456858c6122a490919063ffffffff16565b6122a490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd85876122a490919063ffffffff16565b6122a490919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036125165760009050612578565b6000828461252491906133a3565b905082848261253391906130d2565b14612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9061346f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b857808201518184015260208101905061259d565b838111156125c7576000848401525b50505050565b6000601f19601f8301169050919050565b60006125e98261257e565b6125f38185612589565b935061260381856020860161259a565b61260c816125cd565b840191505092915050565b6000602082019050818103600083015261263181846125de565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126788261264d565b9050919050565b6126888161266d565b811461269357600080fd5b50565b6000813590506126a58161267f565b92915050565b6000819050919050565b6126be816126ab565b81146126c957600080fd5b50565b6000813590506126db816126b5565b92915050565b600080604083850312156126f8576126f7612643565b5b600061270685828601612696565b9250506020612717858286016126cc565b9150509250929050565b60008115159050919050565b61273681612721565b82525050565b6000602082019050612751600083018461272d565b92915050565b612760816126ab565b82525050565b600060208201905061277b6000830184612757565b92915050565b60006020828403121561279757612796612643565b5b60006127a5848285016126cc565b91505092915050565b6000806000606084860312156127c7576127c6612643565b5b60006127d586828701612696565b93505060206127e686828701612696565b92505060406127f7868287016126cc565b9150509250925092565b60006020828403121561281757612816612643565b5b600061282584828501612696565b91505092915050565b600060ff82169050919050565b6128448161282e565b82525050565b600060208201905061285f600083018461283b565b92915050565b61286e81612721565b811461287957600080fd5b50565b60008135905061288b81612865565b92915050565b6000602082840312156128a7576128a6612643565b5b60006128b58482850161287c565b91505092915050565b6128c78161266d565b82525050565b60006020820190506128e260008301846128be565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612925826125cd565b810181811067ffffffffffffffff82111715612944576129436128ed565b5b80604052505050565b6000612957612639565b9050612963828261291c565b919050565b600067ffffffffffffffff821115612983576129826128ed565b5b602082029050602081019050919050565b600080fd5b60006129ac6129a784612968565b61294d565b905080838252602082019050602084028301858111156129cf576129ce612994565b5b835b818110156129f857806129e48882612696565b8452602084019350506020810190506129d1565b5050509392505050565b600082601f830112612a1757612a166128e8565b5b8135612a27848260208601612999565b91505092915050565b600060208284031215612a4657612a45612643565b5b600082013567ffffffffffffffff811115612a6457612a63612648565b5b612a7084828501612a02565b91505092915050565b60008060408385031215612a9057612a8f612643565b5b6000612a9e85828601612696565b9250506020612aaf85828601612696565b9150509250929050565b60008060408385031215612ad057612acf612643565b5b6000612ade858286016126cc565b9250506020612aef858286016126cc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b2f602083612589565b9150612b3a82612af9565b602082019050919050565b60006020820190508181036000830152612b5e81612b22565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b9b601783612589565b9150612ba682612b65565b602082019050919050565b60006020820190508181036000830152612bca81612b8e565b9050919050565b600081519050612be08161267f565b92915050565b600060208284031215612bfc57612bfb612643565b5b6000612c0a84828501612bd1565b91505092915050565b6000604082019050612c2860008301856128be565b612c3560208301846128be565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ca5826126ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cd757612cd6612c6b565b5b600182019050919050565b6000819050919050565b6000819050919050565b6000612d11612d0c612d0784612ce2565b612cec565b6126ab565b9050919050565b612d2181612cf6565b82525050565b600060c082019050612d3c60008301896128be565b612d496020830188612757565b612d566040830187612d18565b612d636060830186612d18565b612d7060808301856128be565b612d7d60a0830184612757565b979650505050505050565b600081519050612d97816126b5565b92915050565b600080600060608486031215612db657612db5612643565b5b6000612dc486828701612d88565b9350506020612dd586828701612d88565b9250506040612de686828701612d88565b9150509250925092565b6000604082019050612e0560008301856128be565b612e126020830184612757565b9392505050565b600081519050612e2881612865565b92915050565b600060208284031215612e4457612e43612643565b5b6000612e5284828501612e19565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602483612589565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602283612589565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fdb602583612589565b9150612fe682612f7f565b604082019050919050565b6000602082019050818103600083015261300a81612fce565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061306d602383612589565b915061307882613011565b604082019050919050565b6000602082019050818103600083015261309c81613060565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130dd826126ab565b91506130e8836126ab565b9250826130f8576130f76130a3565b5b828204905092915050565b600061310e826126ab565b9150613119836126ab565b92508282101561312c5761312b612c6b565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613193602a83612589565b915061319e82613137565b604082019050919050565b600060208201905081810360008301526131c281613186565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131fe8161266d565b82525050565b600061321083836131f5565b60208301905092915050565b6000602082019050919050565b6000613234826131c9565b61323e81856131d4565b9350613249836131e5565b8060005b8381101561327a5781516132618882613204565b975061326c8361321c565b92505060018101905061324d565b5085935050505092915050565b600060a08201905061329c6000830188612757565b6132a96020830187612d18565b81810360408301526132bb8186613229565b90506132ca60608301856128be565b6132d76080830184612757565b9695505050505050565b60006132ec826126ab565b91506132f7836126ab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561332c5761332b612c6b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061336d601b83612589565b915061337882613337565b602082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b60006133ae826126ab565b91506133b9836126ab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133f2576133f1612c6b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613459602183612589565b9150613464826133fd565b604082019050919050565b600060208201905081810360008301526134888161344c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e5ab3a56794de3868a2c326be8c552e64635f75889b73966eca96ff5e655e0164736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063b515566a11610064578063b515566a146103ba578063c3c8cd80146103e3578063c9567bf9146103fa578063dd62ed3e14610411578063dd726e7c1461044e5761012a565b8063715018a6146102f95780638da5cb5b1461031057806395d89b411461033b5780639e78fb4f14610366578063a9059cbb1461037d5761012a565b8063273123b7116100e7578063273123b714610228578063313ce5671461025157806346df33b71461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd146101975780631bbae6e0146101c257806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610477565b6040516101519190612617565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906126e1565b6104b4565b60405161018e919061273c565b60405180910390f35b3480156101a357600080fd5b506101ac6104d2565b6040516101b99190612766565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612781565b6104e4565b005b3480156101f757600080fd5b50610212600480360381019061020d91906127ae565b610596565b60405161021f919061273c565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612801565b61066f565b005b34801561025d57600080fd5b5061026661075f565b604051610273919061284a565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612891565b610768565b005b3480156102b157600080fd5b506102ba61081a565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612801565b6108c0565b6040516102f09190612766565b60405180910390f35b34801561030557600080fd5b5061030e610911565b005b34801561031c57600080fd5b50610325610a64565b60405161033291906128cd565b60405180910390f35b34801561034757600080fd5b50610350610a8d565b60405161035d9190612617565b60405180910390f35b34801561037257600080fd5b5061037b610aca565b005b34801561038957600080fd5b506103a4600480360381019061039f91906126e1565b610da6565b6040516103b1919061273c565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190612a30565b610dc4565b005b3480156103ef57600080fd5b506103f8610eee565b005b34801561040657600080fd5b5061040f610f9c565b005b34801561041d57600080fd5b5061043860048036038101906104339190612a79565b61126b565b6040516104459190612766565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190612ab9565b6112f2565b005b60606040518060400160405280600f81526020017f2053686962706965636520436f696e0000000000000000000000000000000000815250905090565b60006104c86104c1611399565b84846113a1565b6001905092915050565b600069d3c21bcecceda1000000905090565b6104ec611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057090612b45565b60405180910390fd5b69021e19e0c9bab240000081111561059357806010819055505b50565b60006105a384848461156a565b610664846105af611399565b61065f8560405180606001604052806028815260200161349060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610615611399565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b6113a1565b600190509392505050565b610677611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90612b45565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610770611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490612b45565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b610822611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a690612b45565b60405180910390fd5b60004790506108bd81611b23565b50565b600061090a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f565b9050919050565b610919611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612b45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5348494250494543450000000000000000000000000000000000000000000000815250905090565b610ad2611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612b45565b60405180910390fd5b600f60149054906101000a900460ff1615610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba690612bb1565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190612be6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190612be6565b6040518363ffffffff1660e01b8152600401610d20929190612c13565b6020604051808303816000875af1158015610d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d639190612be6565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610dba610db3611399565b848461156a565b6001905092915050565b610dcc611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090612b45565b60405180910390fd5b60005b8151811015610eea57600160066000848481518110610e7e57610e7d612c3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ee290612c9a565b915050610e5c565b5050565b610ef6611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612b45565b60405180910390fd5b6000610f8e306108c0565b9050610f9981611bfd565b50565b610fa4611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612b45565b60405180910390fd5b61106830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda10000006113a1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b1306108c0565b6000806110bc610a64565b426040518863ffffffff1660e01b81526004016110de96959493929190612d27565b60606040518083038185885af11580156110fc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111219190612d9d565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff02191690831515021790555069021e19e0c9bab24000006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611225929190612df0565b6020604051808303816000875af1158015611244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112689190612e2e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fa611399565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b45565b60405180910390fd5b81600c8190555080600b819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140790612ecd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612f5f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155d9190612766565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612ff1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90613083565b60405180910390fd5b6000811161165557600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116ac57600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117505750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aaf576000600981905550600c54600a81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118115750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118675750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561187f5750600f60179054906101000a900460ff165b156118b457600061188f836108c0565b90506010546118a78284611e7690919063ffffffff16565b11156118b257600080fd5b505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561195f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cc576000600981905550600b54600a819055505b60006119d7306108c0565b9050600f60159054906101000a900460ff16158015611a445750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a5c5750600f60169054906101000a900460ff165b15611aad576000600382611a7091906130d2565b90508082611a7e9190613103565b9150611a8981611ed4565b611a9282611bfd565b60004790506000811115611aaa57611aa947611b23565b5b50505b505b611aba838383611f24565b505050565b6000838311158290611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe9190612617565b60405180910390fd5b5060008385611b169190613103565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b8b573d6000803e3d6000fd5b5050565b6000600754821115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd906131a9565b60405180910390fd5b6000611be0611f34565b9050611bf58184611f5f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3557611c346128ed565b5b604051908082528060200260200182016040528015611c635781602001602082028036833780820191505090505b5090503081600081518110611c7b57611c7a612c3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d469190612be6565b81600181518110611d5a57611d59612c3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dc130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113a1565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e25959493929190613287565b600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b6000808284611e8591906132e1565b905083811015611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190613383565b60405180910390fd5b8091505092915050565b6001600f60156101000a81548160ff0219169083151502179055506000811115611f0657611f053061dead8361156a565b5b6000600f60156101000a81548160ff02191690831515021790555050565b611f2f838383611fa9565b505050565b6000806000611f41612174565b91509150611f588183611f5f90919063ffffffff16565b9250505090565b6000611fa183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d9565b905092915050565b600080600080600080611fbb8761223c565b95509550955095509550955061201986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fa816122ee565b61210484836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121619190612766565b60405180910390a3505050505050505050565b60008060006007549050600069d3c21bcecceda100000090506121ac69d3c21bcecceda1000000600754611f5f90919063ffffffff16565b8210156121cc5760075469d3c21bcecceda10000009350935050506121d5565b81819350935050505b9091565b60008083118290612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179190612617565b60405180910390fd5b506000838561222f91906130d2565b9050809150509392505050565b60008060008060008060008060006122598a600954600a546123e5565b9250925092506000612269611f34565b9050600080600061227c8e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611abf565b905092915050565b60006122f8611f34565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c0826007546122a490919063ffffffff16565b6007819055506123db81600854611e7690919063ffffffff16565b6008819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f5f90919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f5f90919063ffffffff16565b9050600061246482612456858c6122a490919063ffffffff16565b6122a490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd85876122a490919063ffffffff16565b6122a490919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036125165760009050612578565b6000828461252491906133a3565b905082848261253391906130d2565b14612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9061346f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b857808201518184015260208101905061259d565b838111156125c7576000848401525b50505050565b6000601f19601f8301169050919050565b60006125e98261257e565b6125f38185612589565b935061260381856020860161259a565b61260c816125cd565b840191505092915050565b6000602082019050818103600083015261263181846125de565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126788261264d565b9050919050565b6126888161266d565b811461269357600080fd5b50565b6000813590506126a58161267f565b92915050565b6000819050919050565b6126be816126ab565b81146126c957600080fd5b50565b6000813590506126db816126b5565b92915050565b600080604083850312156126f8576126f7612643565b5b600061270685828601612696565b9250506020612717858286016126cc565b9150509250929050565b60008115159050919050565b61273681612721565b82525050565b6000602082019050612751600083018461272d565b92915050565b612760816126ab565b82525050565b600060208201905061277b6000830184612757565b92915050565b60006020828403121561279757612796612643565b5b60006127a5848285016126cc565b91505092915050565b6000806000606084860312156127c7576127c6612643565b5b60006127d586828701612696565b93505060206127e686828701612696565b92505060406127f7868287016126cc565b9150509250925092565b60006020828403121561281757612816612643565b5b600061282584828501612696565b91505092915050565b600060ff82169050919050565b6128448161282e565b82525050565b600060208201905061285f600083018461283b565b92915050565b61286e81612721565b811461287957600080fd5b50565b60008135905061288b81612865565b92915050565b6000602082840312156128a7576128a6612643565b5b60006128b58482850161287c565b91505092915050565b6128c78161266d565b82525050565b60006020820190506128e260008301846128be565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612925826125cd565b810181811067ffffffffffffffff82111715612944576129436128ed565b5b80604052505050565b6000612957612639565b9050612963828261291c565b919050565b600067ffffffffffffffff821115612983576129826128ed565b5b602082029050602081019050919050565b600080fd5b60006129ac6129a784612968565b61294d565b905080838252602082019050602084028301858111156129cf576129ce612994565b5b835b818110156129f857806129e48882612696565b8452602084019350506020810190506129d1565b5050509392505050565b600082601f830112612a1757612a166128e8565b5b8135612a27848260208601612999565b91505092915050565b600060208284031215612a4657612a45612643565b5b600082013567ffffffffffffffff811115612a6457612a63612648565b5b612a7084828501612a02565b91505092915050565b60008060408385031215612a9057612a8f612643565b5b6000612a9e85828601612696565b9250506020612aaf85828601612696565b9150509250929050565b60008060408385031215612ad057612acf612643565b5b6000612ade858286016126cc565b9250506020612aef858286016126cc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b2f602083612589565b9150612b3a82612af9565b602082019050919050565b60006020820190508181036000830152612b5e81612b22565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b9b601783612589565b9150612ba682612b65565b602082019050919050565b60006020820190508181036000830152612bca81612b8e565b9050919050565b600081519050612be08161267f565b92915050565b600060208284031215612bfc57612bfb612643565b5b6000612c0a84828501612bd1565b91505092915050565b6000604082019050612c2860008301856128be565b612c3560208301846128be565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ca5826126ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cd757612cd6612c6b565b5b600182019050919050565b6000819050919050565b6000819050919050565b6000612d11612d0c612d0784612ce2565b612cec565b6126ab565b9050919050565b612d2181612cf6565b82525050565b600060c082019050612d3c60008301896128be565b612d496020830188612757565b612d566040830187612d18565b612d636060830186612d18565b612d7060808301856128be565b612d7d60a0830184612757565b979650505050505050565b600081519050612d97816126b5565b92915050565b600080600060608486031215612db657612db5612643565b5b6000612dc486828701612d88565b9350506020612dd586828701612d88565b9250506040612de686828701612d88565b9150509250925092565b6000604082019050612e0560008301856128be565b612e126020830184612757565b9392505050565b600081519050612e2881612865565b92915050565b600060208284031215612e4457612e43612643565b5b6000612e5284828501612e19565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602483612589565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602283612589565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fdb602583612589565b9150612fe682612f7f565b604082019050919050565b6000602082019050818103600083015261300a81612fce565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061306d602383612589565b915061307882613011565b604082019050919050565b6000602082019050818103600083015261309c81613060565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130dd826126ab565b91506130e8836126ab565b9250826130f8576130f76130a3565b5b828204905092915050565b600061310e826126ab565b9150613119836126ab565b92508282101561312c5761312b612c6b565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613193602a83612589565b915061319e82613137565b604082019050919050565b600060208201905081810360008301526131c281613186565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131fe8161266d565b82525050565b600061321083836131f5565b60208301905092915050565b6000602082019050919050565b6000613234826131c9565b61323e81856131d4565b9350613249836131e5565b8060005b8381101561327a5781516132618882613204565b975061326c8361321c565b92505060018101905061324d565b5085935050505092915050565b600060a08201905061329c6000830188612757565b6132a96020830187612d18565b81810360408301526132bb8186613229565b90506132ca60608301856128be565b6132d76080830184612757565b9695505050505050565b60006132ec826126ab565b91506132f7836126ab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561332c5761332b612c6b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061336d601b83612589565b915061337882613337565b602082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b60006133ae826126ab565b91506133b9836126ab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133f2576133f1612c6b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613459602183612589565b9150613464826133fd565b604082019050919050565b600060208201905081810360008301526134888161344c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e5ab3a56794de3868a2c326be8c552e64635f75889b73966eca96ff5e655e0164736f6c634300080d0033

Deployed Bytecode Sourcemap

3686:10729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5424:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6276:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5701:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9201:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6445:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11064:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5610:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6766:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12400:153;;;;;;;;;;;;;:::i;:::-;;5804:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2765:148;;;;;;;;;;;;;:::i;:::-;;2551:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5515:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9995:389;;;;;;;;;;;;;:::i;:::-;;5950:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10888:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12234:154;;;;;;;;;;;;;:::i;:::-;;10396:478;;;;;;;;;;;;;:::i;:::-;;6125:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13996:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5424:83;5461:13;5494:5;;;;;;;;;;;;;;;;;5487:12;;5424:83;:::o;6276:161::-;6351:4;6368:39;6377:12;:10;:12::i;:::-;6391:7;6400:6;6368:8;:39::i;:::-;6425:4;6418:11;;6276:161;;;;:::o;5701:95::-;5754:7;4139:24;5774:14;;5701:95;:::o;9201:180::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9297:22:::1;9283:11;:36;9279:95;;;9351:11;9336:12;:26;;;;9279:95;9201:180:::0;:::o;6445:313::-;6543:4;6560:36;6570:6;6578:9;6589:6;6560:9;:36::i;:::-;6607:121;6616:6;6624:12;:10;:12::i;:::-;6638:89;6676:6;6638:89;;;;;;;;;;;;;;;;;:11;:19;6650:6;6638:19;;;;;;;;;;;;;;;:33;6658:12;:10;:12::i;:::-;6638:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6607:8;:121::i;:::-;6746:4;6739:11;;6445:313;;;;;:::o;11064:88::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11139:5:::1;11124:4;:12;11129:6;11124:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11064:88:::0;:::o;5610:83::-;5651:5;4585:1;5669:16;;5610:83;:::o;6766:95::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6848:5:::1;6834:11;;:19;;;;;;;;;;;;;;;;;;6766:95:::0;:::o;12400:153::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12452:26:::1;12481:21;12452:50;;12513:32;12526:18;12513:12;:32::i;:::-;12441:112;12400:153::o:0;5804:138::-;5870:7;5897:37;5917:7;:16;5925:7;5917:16;;;;;;;;;;;;;;;;5897:19;:37::i;:::-;5890:44;;5804:138;;;:::o;2765:148::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2872:1:::1;2835:40;;2856:6;::::0;::::1;;;;;;;;2835:40;;;;;;;;;;;;2903:1;2886:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2765:148::o:0;2551:79::-;2589:7;2616:6;;;;;;;;;;;2609:13;;2551:79;:::o;5515:87::-;5554:13;5587:7;;;;;;;;;;;;;;;;;5580:14;;5515:87;:::o;9995:389::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10057:11:::1;;;;;;;;;;;10056:12;10048:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10106:35;10163:42;10106:100;;10235:16;10217:15;;:34;;;;;;;;;;;;;;;;;;10296:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10278:56;;;10343:4;10350:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10278:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10262:13;;:112;;;;;;;;;;;;;;;;;;10037:347;9995:389::o:0;5950:167::-;6028:4;6045:42;6055:12;:10;:12::i;:::-;6069:9;6080:6;6045:9;:42::i;:::-;6105:4;6098:11;;5950:167;;;;:::o;10888:164::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10962:6:::1;10957:88;10978:5;:12;10974:1;:16;10957:88;;;11029:4;11012;:14;11017:5;11023:1;11017:8;;;;;;;;:::i;:::-;;;;;;;;11012:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10992:3;;;;;:::i;:::-;;;;10957:88;;;;10888:164:::0;:::o;12234:154::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12286:23:::1;12312:24;12330:4;12312:9;:24::i;:::-;12286:50;;12347:33;12364:15;12347:16;:33::i;:::-;12275:113;12234:154::o:0;10396:478::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10451:58:::1;10468:4;10483:15;;;;;;;;;;;4139:24;10451:8;:58::i;:::-;10520:15;;;;;;;;;;;:31;;;10559:21;10590:4;10596:24;10614:4;10596:9;:24::i;:::-;10621:1;10623::::0;10625:7:::1;:5;:7::i;:::-;10633:15;10520:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10674:4;10660:11;;:18;;;;;;;;;;;;;;;;;;10703:4;10689:11;;:18;;;;;;;;;;;;;;;;;;10733:22;10718:12;:37;;;;10780:4;10766:11;;:18;;;;;;;;;;;;;;;;;;10802:13;;;;;;;;;;;10795:29;;;10833:15;;;;;;;;;;;10851:14;10795:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10396:478::o:0;6125:143::-;6206:7;6233:11;:18;6245:5;6233:18;;;;;;;;;;;;;;;:27;6252:7;6233:27;;;;;;;;;;;;;;;;6226:34;;6125:143;;;;:::o;13996:146::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:6:::1;14081:9;:18;;;;14127:7;14114:10;:20;;;;13996:146:::0;;:::o;269:98::-;322:7;349:10;342:17;;269:98;:::o;7131:335::-;7241:1;7224:19;;:5;:19;;;7216:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7322:1;7303:21;;:7;:21;;;7295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7404:6;7374:11;:18;7386:5;7374:18;;;;;;;;;;;;;;;:27;7393:7;7374:27;;;;;;;;;;;;;;;:36;;;;7442:7;7426:32;;7435:5;7426:32;;;7451:6;7426:32;;;;;;:::i;:::-;;;;;;;;7131:335;;;:::o;7474:1539::-;7578:1;7562:18;;:4;:18;;;7554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7655:1;7641:16;;:2;:16;;;7633:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7725:1;7716:6;:10;7708:19;;;;;;7747:4;:10;7752:4;7747:10;;;;;;;;;;;;;;;;;;;;;;;;;7746:11;7738:20;;;;;;7776:18;:24;7795:4;7776:24;;;;;;;;;;;;;;;;;;;;;;;;;7775:25;:66;;;;;7819:18;:22;7838:2;7819:22;;;;;;;;;;;;;;;;;;;;;;;;;7818:23;7775:66;7771:1190;;;7871:1;7859:9;:13;;;;7899:9;;7887;:21;;;;7935:13;;;;;;;;;;;7927:21;;:4;:21;;;:55;;;;;7966:15;;;;;;;;;;;7952:30;;:2;:30;;;;7927:55;:83;;;;;7988:18;:22;8007:2;7988:22;;;;;;;;;;;;;;;;;;;;;;;;;7986:24;7927:83;:98;;;;;8014:11;;;;;;;;;;;7927:98;7923:251;;;8046:18;8067:22;8085:2;8067:9;:22::i;:::-;8046:43;;8145:12;;8116:25;8127:13;8116:6;:10;;:25;;;;:::i;:::-;:41;;8108:50;;;;;;8027:147;7923:251;8226:13;;;;;;;;;;;8220:19;;:2;:19;;;:55;;;;;8259:15;;;;;;;;;;;8243:32;;:4;:32;;;;8220:55;:85;;;;;8281:18;:24;8300:4;8281:24;;;;;;;;;;;;;;;;;;;;;;;;;8279:26;8220:85;8216:180;;;8338:1;8326:9;:13;;;;8370:10;;8358:9;:22;;;;8216:180;8410:28;8441:24;8459:4;8441:9;:24::i;:::-;8410:55;;8485:6;;;;;;;;;;;8484:7;:32;;;;;8503:13;;;;;;;;;;;8495:21;;:4;:21;;;;8484:32;:47;;;;;8520:11;;;;;;;;;;;8484:47;8480:470;;;8552:15;8591:1;8570:20;:22;;;;:::i;:::-;8552:40;;8635:10;8611:34;;;;;:::i;:::-;;;8664:21;8674:10;8664:9;:21::i;:::-;8704:38;8721:20;8704:16;:38::i;:::-;8761:26;8790:21;8761:50;;8854:1;8833:18;:22;8830:105;;;8880:35;8893:21;8880:12;:35::i;:::-;8830:105;8533:417;;8480:470;7844:1117;7771:1190;8975:30;8990:4;8995:2;8998:6;8975:14;:30::i;:::-;7474:1539;;;:::o;1406:190::-;1492:7;1525:1;1520;:6;;1528:12;1512:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1552:9;1568:1;1564;:5;;;;:::i;:::-;1552:17;;1587:1;1580:8;;;1406:190;;;;;:::o;9894:93::-;9951:11;;;;;;;;;;;:20;;:28;9972:6;9951:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:93;:::o;6869:254::-;6936:7;6975;;6964;:18;;6956:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7040:19;7063:10;:8;:10::i;:::-;7040:33;;7091:24;7103:11;7091:7;:11;;:24;;;;:::i;:::-;7084:31;;;6869:254;;;:::o;9395:483::-;4963:4;4954:6;;:13;;;;;;;;;;;;;;;;;;9473:21:::1;9511:1;9497:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9473:40;;9542:4;9524;9529:1;9524:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9568:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9558:4;9563:1;9558:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9601:62;9618:4;9633:15;;;;;;;;;;;9651:11;9601:8;:62::i;:::-;9674:15;;;;;;;;;;;:66;;;9755:11;9781:1;9797:4;9824;9844:15;9674:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9462:416;4999:5:::0;4990:6;;:14;;;;;;;;;;;;;;;;;;9395:483;:::o;1075:179::-;1133:7;1153:9;1169:1;1165;:5;;;;:::i;:::-;1153:17;;1194:1;1189;:6;;1181:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1245:1;1238:8;;;1075:179;;;;:::o;9021:172::-;4963:4;4954:6;;:13;;;;;;;;;;;;;;;;;;9103:1:::1;9090:10;:14;9087:97;;;9120:52;9138:4;9153:6;9161:10;9120:9;:52::i;:::-;9087:97;4999:5:::0;4990:6;;:14;;;;;;;;;;;;;;;;;;9021:172;:::o;11168:146::-;11262:44;11280:6;11288:9;11299:6;11262:17;:44::i;:::-;11168:146;;;:::o;13819:163::-;13860:7;13881:15;13898;13917:19;:17;:19::i;:::-;13880:56;;;;13954:20;13966:7;13954;:11;;:20;;;;:::i;:::-;13947:27;;;;13819:163;:::o;1858:132::-;1916:7;1943:39;1947:1;1950;1943:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1936:46;;1858:132;;;;:::o;11322:488::-;11421:15;11438:23;11463:12;11477:23;11502:12;11516:13;11533:19;11544:7;11533:10;:19::i;:::-;11420:132;;;;;;;;;;;;11581:28;11601:7;11581;:15;11589:6;11581:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11563:7;:15;11571:6;11563:15;;;;;;;;;;;;;;;:46;;;;11641:39;11664:15;11641:7;:18;11649:9;11641:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11620:7;:18;11628:9;11620:18;;;;;;;;;;;;;;;:60;;;;11692:16;11702:5;11692:9;:16::i;:::-;11719:23;11731:4;11737;11719:11;:23::i;:::-;11775:9;11758:44;;11767:6;11758:44;;;11786:15;11758:44;;;;;;:::i;:::-;;;;;;;;11409:401;;;;;;11322:488;;;:::o;14150:262::-;14200:7;14209;14229:15;14247:7;;14229:25;;14265:15;4139:24;14265:25;;14321:20;4139:24;14321:7;;:11;;:20;;;;:::i;:::-;14311:7;:30;14307:61;;;14351:7;;4139:24;14343:25;;;;;;;;14307:61;14387:7;14396;14379:25;;;;;;14150:262;;;:::o;1998:189::-;2084:7;2116:1;2112;:5;2119:12;2104:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2143:9;2159:1;2155;:5;;;;:::i;:::-;2143:17;;2178:1;2171:8;;;1998:189;;;;;:::o;12567:471::-;12626:7;12635;12644;12653;12662;12671;12692:23;12717:12;12731:13;12748:42;12760:7;12769:9;;12780;;12748:11;:42::i;:::-;12691:99;;;;;;12801:19;12824:10;:8;:10::i;:::-;12801:33;;12846:15;12863:23;12888:12;12904:46;12916:7;12925:4;12931:5;12938:11;12904;:46::i;:::-;12845:105;;;;;;12969:7;12978:15;12995:4;13001:15;13018:4;13024:5;12961:69;;;;;;;;;;;;;;;;;;;12567:471;;;;;;;:::o;1262:136::-;1320:7;1347:43;1351:1;1354;1347:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1340:50;;1262:136;;;;:::o;11818:212::-;11871:19;11894:10;:8;:10::i;:::-;11871:33;;11915:13;11931:22;11941:11;11931:5;:9;;:22;;;;:::i;:::-;11915:38;;11989:33;12016:5;11989:7;:22;12005:4;11989:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11964:7;:22;11980:4;11964:22;;;;;;;;;;;;;;;:58;;;;11860:170;;11818:212;:::o;12038:147::-;12116:17;12128:4;12116:7;;:11;;:17;;;;:::i;:::-;12106:7;:27;;;;12157:20;12172:4;12157:10;;:14;;:20;;;;:::i;:::-;12144:10;:33;;;;12038:147;;:::o;13046:351::-;13139:7;13148;13157;13177:12;13192:28;13216:3;13192:19;13204:6;13192:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13177:43;;13231:13;13247:29;13272:3;13247:20;13259:7;13247;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13231:45;;13287:23;13313:28;13335:5;13313:17;13325:4;13313:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13287:54;;13360:15;13377:4;13383:5;13352:37;;;;;;;;;13046:351;;;;;;;:::o;13405:409::-;13515:7;13524;13533;13553:15;13571:24;13583:11;13571:7;:11;;:24;;;;:::i;:::-;13553:42;;13606:12;13621:21;13630:11;13621:4;:8;;:21;;;;:::i;:::-;13606:36;;13653:13;13669:22;13679:11;13669:5;:9;;:22;;;;:::i;:::-;13653:38;;13702:23;13728:28;13750:5;13728:17;13740:4;13728:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13702:54;;13775:7;13784:15;13801:4;13767:39;;;;;;;;;;13405:409;;;;;;;;:::o;1604:246::-;1662:7;1691:1;1686;:6;1682:47;;1716:1;1709:8;;;;1682:47;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1784:1;1779;1775;:5;;;;:::i;:::-;:10;1767:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1841:1;1834:8;;;1604:246;;;;;:::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;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::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:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;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;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:329::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:323::-;5888:6;5937:2;5925:9;5916:7;5912:23;5908:32;5905:119;;;5943:79;;:::i;:::-;5905:119;6063:1;6088:50;6130:7;6121:6;6110:9;6106:22;6088:50;:::i;:::-;6078:60;;6034:114;5832:323;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:539::-;8894:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9097:1;9086:9;9082:17;9069:31;9127:18;9119:6;9116:30;9113:117;;;9149:79;;:::i;:::-;9113:117;9254:78;9324:7;9315:6;9304:9;9300:22;9254:78;:::i;:::-;9244:88;;9040:302;8810:539;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:::-;9903:6;9911;9960:2;9948:9;9939:7;9935:23;9931:32;9928:119;;;9966:79;;:::i;:::-;9928:119;10086:1;10111:53;10156:7;10147:6;10136:9;10132:22;10111:53;:::i;:::-;10101:63;;10057:117;10213:2;10239:53;10284:7;10275:6;10264:9;10260:22;10239:53;:::i;:::-;10229:63;;10184:118;9835:474;;;;;:::o;10315:182::-;10455:34;10451:1;10443:6;10439:14;10432:58;10315:182;:::o;10503:366::-;10645:3;10666:67;10730:2;10725:3;10666:67;:::i;:::-;10659:74;;10742:93;10831:3;10742:93;:::i;:::-;10860:2;10855:3;10851:12;10844:19;;10503:366;;;:::o;10875:419::-;11041:4;11079:2;11068:9;11064:18;11056:26;;11128:9;11122:4;11118:20;11114:1;11103:9;11099:17;11092:47;11156:131;11282:4;11156:131;:::i;:::-;11148:139;;10875:419;;;:::o;11300:173::-;11440:25;11436:1;11428:6;11424:14;11417:49;11300:173;:::o;11479:366::-;11621:3;11642:67;11706:2;11701:3;11642:67;:::i;:::-;11635:74;;11718:93;11807:3;11718:93;:::i;:::-;11836:2;11831:3;11827:12;11820:19;;11479:366;;;:::o;11851:419::-;12017:4;12055:2;12044:9;12040:18;12032:26;;12104:9;12098:4;12094:20;12090:1;12079:9;12075:17;12068:47;12132:131;12258:4;12132:131;:::i;:::-;12124:139;;11851:419;;;:::o;12276:143::-;12333:5;12364:6;12358:13;12349:22;;12380:33;12407:5;12380:33;:::i;:::-;12276:143;;;;:::o;12425:351::-;12495:6;12544:2;12532:9;12523:7;12519:23;12515:32;12512:119;;;12550:79;;:::i;:::-;12512:119;12670:1;12695:64;12751:7;12742:6;12731:9;12727:22;12695:64;:::i;:::-;12685:74;;12641:128;12425:351;;;;:::o;12782:332::-;12903:4;12941:2;12930:9;12926:18;12918:26;;12954:71;13022:1;13011:9;13007:17;12998:6;12954:71;:::i;:::-;13035:72;13103:2;13092:9;13088:18;13079:6;13035:72;:::i;:::-;12782:332;;;;;:::o;13120:180::-;13168:77;13165:1;13158:88;13265:4;13262:1;13255:15;13289:4;13286:1;13279:15;13306:180;13354:77;13351:1;13344:88;13451:4;13448:1;13441:15;13475:4;13472:1;13465:15;13492:233;13531:3;13554:24;13572:5;13554:24;:::i;:::-;13545:33;;13600:66;13593:5;13590:77;13587:103;;13670:18;;:::i;:::-;13587:103;13717:1;13710:5;13706:13;13699:20;;13492:233;;;:::o;13731:85::-;13776:7;13805:5;13794:16;;13731:85;;;:::o;13822:60::-;13850:3;13871:5;13864:12;;13822:60;;;:::o;13888:158::-;13946:9;13979:61;13997:42;14006:32;14032:5;14006:32;:::i;:::-;13997:42;:::i;:::-;13979:61;:::i;:::-;13966:74;;13888:158;;;:::o;14052:147::-;14147:45;14186:5;14147:45;:::i;:::-;14142:3;14135:58;14052:147;;:::o;14205:807::-;14454:4;14492:3;14481:9;14477:19;14469:27;;14506:71;14574:1;14563:9;14559:17;14550:6;14506:71;:::i;:::-;14587:72;14655:2;14644:9;14640:18;14631:6;14587:72;:::i;:::-;14669:80;14745:2;14734:9;14730:18;14721:6;14669:80;:::i;:::-;14759;14835:2;14824:9;14820:18;14811:6;14759:80;:::i;:::-;14849:73;14917:3;14906:9;14902:19;14893:6;14849:73;:::i;:::-;14932;15000:3;14989:9;14985:19;14976:6;14932:73;:::i;:::-;14205:807;;;;;;;;;:::o;15018:143::-;15075:5;15106:6;15100:13;15091:22;;15122:33;15149:5;15122:33;:::i;:::-;15018:143;;;;:::o;15167:663::-;15255:6;15263;15271;15320:2;15308:9;15299:7;15295:23;15291:32;15288:119;;;15326:79;;:::i;:::-;15288:119;15446:1;15471:64;15527:7;15518:6;15507:9;15503:22;15471:64;:::i;:::-;15461:74;;15417:128;15584:2;15610:64;15666:7;15657:6;15646:9;15642:22;15610:64;:::i;:::-;15600:74;;15555:129;15723:2;15749:64;15805:7;15796:6;15785:9;15781:22;15749:64;:::i;:::-;15739:74;;15694:129;15167:663;;;;;:::o;15836:332::-;15957:4;15995:2;15984:9;15980:18;15972:26;;16008:71;16076:1;16065:9;16061:17;16052:6;16008:71;:::i;:::-;16089:72;16157:2;16146:9;16142:18;16133:6;16089:72;:::i;:::-;15836:332;;;;;:::o;16174:137::-;16228:5;16259:6;16253:13;16244:22;;16275:30;16299:5;16275:30;:::i;:::-;16174:137;;;;:::o;16317:345::-;16384:6;16433:2;16421:9;16412:7;16408:23;16404:32;16401:119;;;16439:79;;:::i;:::-;16401:119;16559:1;16584:61;16637:7;16628:6;16617:9;16613:22;16584:61;:::i;:::-;16574:71;;16530:125;16317:345;;;;:::o;16668:223::-;16808:34;16804:1;16796:6;16792:14;16785:58;16877:6;16872:2;16864:6;16860:15;16853:31;16668:223;:::o;16897:366::-;17039:3;17060:67;17124:2;17119:3;17060:67;:::i;:::-;17053:74;;17136:93;17225:3;17136:93;:::i;:::-;17254:2;17249:3;17245:12;17238:19;;16897:366;;;:::o;17269:419::-;17435:4;17473:2;17462:9;17458:18;17450:26;;17522:9;17516:4;17512:20;17508:1;17497:9;17493:17;17486:47;17550:131;17676:4;17550:131;:::i;:::-;17542:139;;17269:419;;;:::o;17694:221::-;17834:34;17830:1;17822:6;17818:14;17811:58;17903:4;17898:2;17890:6;17886:15;17879:29;17694:221;:::o;17921:366::-;18063:3;18084:67;18148:2;18143:3;18084:67;:::i;:::-;18077:74;;18160:93;18249:3;18160:93;:::i;:::-;18278:2;18273:3;18269:12;18262:19;;17921:366;;;:::o;18293:419::-;18459:4;18497:2;18486:9;18482:18;18474:26;;18546:9;18540:4;18536:20;18532:1;18521:9;18517:17;18510:47;18574:131;18700:4;18574:131;:::i;:::-;18566:139;;18293:419;;;:::o;18718:224::-;18858:34;18854:1;18846:6;18842:14;18835:58;18927:7;18922:2;18914:6;18910:15;18903:32;18718:224;:::o;18948:366::-;19090:3;19111:67;19175:2;19170:3;19111:67;:::i;:::-;19104:74;;19187:93;19276:3;19187:93;:::i;:::-;19305:2;19300:3;19296:12;19289:19;;18948:366;;;:::o;19320:419::-;19486:4;19524:2;19513:9;19509:18;19501:26;;19573:9;19567:4;19563:20;19559:1;19548:9;19544:17;19537:47;19601:131;19727:4;19601:131;:::i;:::-;19593:139;;19320:419;;;:::o;19745:222::-;19885:34;19881:1;19873:6;19869:14;19862:58;19954:5;19949:2;19941:6;19937:15;19930:30;19745:222;:::o;19973:366::-;20115:3;20136:67;20200:2;20195:3;20136:67;:::i;:::-;20129:74;;20212:93;20301:3;20212:93;:::i;:::-;20330:2;20325:3;20321:12;20314:19;;19973:366;;;:::o;20345:419::-;20511:4;20549:2;20538:9;20534:18;20526:26;;20598:9;20592:4;20588:20;20584:1;20573:9;20569:17;20562:47;20626:131;20752:4;20626:131;:::i;:::-;20618:139;;20345:419;;;:::o;20770:180::-;20818:77;20815:1;20808:88;20915:4;20912:1;20905:15;20939:4;20936:1;20929:15;20956:185;20996:1;21013:20;21031:1;21013:20;:::i;:::-;21008:25;;21047:20;21065:1;21047:20;:::i;:::-;21042:25;;21086:1;21076:35;;21091:18;;:::i;:::-;21076:35;21133:1;21130;21126:9;21121:14;;20956:185;;;;:::o;21147:191::-;21187:4;21207:20;21225:1;21207:20;:::i;:::-;21202:25;;21241:20;21259:1;21241:20;:::i;:::-;21236:25;;21280:1;21277;21274:8;21271:34;;;21285:18;;:::i;:::-;21271:34;21330:1;21327;21323:9;21315:17;;21147:191;;;;:::o;21344:229::-;21484:34;21480:1;21472:6;21468:14;21461:58;21553:12;21548:2;21540:6;21536:15;21529:37;21344:229;:::o;21579:366::-;21721:3;21742:67;21806:2;21801:3;21742:67;:::i;:::-;21735:74;;21818:93;21907:3;21818:93;:::i;:::-;21936:2;21931:3;21927:12;21920:19;;21579:366;;;:::o;21951:419::-;22117:4;22155:2;22144:9;22140:18;22132:26;;22204:9;22198:4;22194:20;22190:1;22179:9;22175:17;22168:47;22232:131;22358:4;22232:131;:::i;:::-;22224:139;;21951:419;;;:::o;22376:114::-;22443:6;22477:5;22471:12;22461:22;;22376:114;;;:::o;22496:184::-;22595:11;22629:6;22624:3;22617:19;22669:4;22664:3;22660:14;22645:29;;22496:184;;;;:::o;22686:132::-;22753:4;22776:3;22768:11;;22806:4;22801:3;22797:14;22789:22;;22686:132;;;:::o;22824:108::-;22901:24;22919:5;22901:24;:::i;:::-;22896:3;22889:37;22824:108;;:::o;22938:179::-;23007:10;23028:46;23070:3;23062:6;23028:46;:::i;:::-;23106:4;23101:3;23097:14;23083:28;;22938:179;;;;:::o;23123:113::-;23193:4;23225;23220:3;23216:14;23208:22;;23123:113;;;:::o;23272:732::-;23391:3;23420:54;23468:5;23420:54;:::i;:::-;23490:86;23569:6;23564:3;23490:86;:::i;:::-;23483:93;;23600:56;23650:5;23600:56;:::i;:::-;23679:7;23710:1;23695:284;23720:6;23717:1;23714:13;23695:284;;;23796:6;23790:13;23823:63;23882:3;23867:13;23823:63;:::i;:::-;23816:70;;23909:60;23962:6;23909:60;:::i;:::-;23899:70;;23755:224;23742:1;23739;23735:9;23730:14;;23695:284;;;23699:14;23995:3;23988:10;;23396:608;;;23272:732;;;;:::o;24010:831::-;24273:4;24311:3;24300:9;24296:19;24288:27;;24325:71;24393:1;24382:9;24378:17;24369:6;24325:71;:::i;:::-;24406:80;24482:2;24471:9;24467:18;24458:6;24406:80;:::i;:::-;24533:9;24527:4;24523:20;24518:2;24507:9;24503:18;24496:48;24561:108;24664:4;24655:6;24561:108;:::i;:::-;24553:116;;24679:72;24747:2;24736:9;24732:18;24723:6;24679:72;:::i;:::-;24761:73;24829:3;24818:9;24814:19;24805:6;24761:73;:::i;:::-;24010:831;;;;;;;;:::o;24847:305::-;24887:3;24906:20;24924:1;24906:20;:::i;:::-;24901:25;;24940:20;24958:1;24940:20;:::i;:::-;24935:25;;25094:1;25026:66;25022:74;25019:1;25016:81;25013:107;;;25100:18;;:::i;:::-;25013:107;25144:1;25141;25137:9;25130:16;;24847:305;;;;:::o;25158:177::-;25298:29;25294:1;25286:6;25282:14;25275:53;25158:177;:::o;25341:366::-;25483:3;25504:67;25568:2;25563:3;25504:67;:::i;:::-;25497:74;;25580:93;25669:3;25580:93;:::i;:::-;25698:2;25693:3;25689:12;25682:19;;25341:366;;;:::o;25713:419::-;25879:4;25917:2;25906:9;25902:18;25894:26;;25966:9;25960:4;25956:20;25952:1;25941:9;25937:17;25930:47;25994:131;26120:4;25994:131;:::i;:::-;25986:139;;25713:419;;;:::o;26138:348::-;26178:7;26201:20;26219:1;26201:20;:::i;:::-;26196:25;;26235:20;26253:1;26235:20;:::i;:::-;26230:25;;26423:1;26355:66;26351:74;26348:1;26345:81;26340:1;26333:9;26326:17;26322:105;26319:131;;;26430:18;;:::i;:::-;26319:131;26478:1;26475;26471:9;26460:20;;26138:348;;;;:::o;26492:220::-;26632:34;26628:1;26620:6;26616:14;26609:58;26701:3;26696:2;26688:6;26684:15;26677:28;26492:220;:::o;26718:366::-;26860:3;26881:67;26945:2;26940:3;26881:67;:::i;:::-;26874:74;;26957:93;27046:3;26957:93;:::i;:::-;27075:2;27070:3;27066:12;27059:19;;26718:366;;;:::o;27090:419::-;27256:4;27294:2;27283:9;27279:18;27271:26;;27343:9;27337:4;27333:20;27329:1;27318:9;27314:17;27307:47;27371:131;27497:4;27371:131;:::i;:::-;27363:139;;27090:419;;;:::o

Swarm Source

ipfs://4e5ab3a56794de3868a2c326be8c552e64635f75889b73966eca96ff5e655e01
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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