ETH Price: $1,929.45 (-3.61%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve150138112022-06-23 16:24:381347 days ago1656001478IN
0xC7b74B8e...369749d8b
0 ETH0.0022725348.13069798
Approve137705212021-12-09 10:28:351544 days ago1639045715IN
0xC7b74B8e...369749d8b
0 ETH0.0037493579.40857024
Approve137699482021-12-09 8:12:551544 days ago1639037575IN
0xC7b74B8e...369749d8b
0 ETH0.0037772880
Approve137699422021-12-09 8:12:091544 days ago1639037529IN
0xC7b74B8e...369749d8b
0 ETH0.0045092395.50225644
Approve137699362021-12-09 8:08:481544 days ago1639037328IN
0xC7b74B8e...369749d8b
0 ETH0.0041030786.9
Approve137699232021-12-09 8:05:491544 days ago1639037149IN
0xC7b74B8e...369749d8b
0 ETH0.0030133763.82109139
Approve137699192021-12-09 8:05:191544 days ago1639037119IN
0xC7b74B8e...369749d8b
0 ETH0.00343272.68725717
Approve137699182021-12-09 8:04:561544 days ago1639037096IN
0xC7b74B8e...369749d8b
0 ETH0.0032704769.26618156
Approve137699122021-12-09 8:03:321544 days ago1639037012IN
0xC7b74B8e...369749d8b
0 ETH0.0034351572.75405413
Approve137699082021-12-09 8:02:541544 days ago1639036974IN
0xC7b74B8e...369749d8b
0 ETH0.0033795671.57663337
Renounce Ownersh...137699062021-12-09 8:02:391544 days ago1639036959IN
0xC7b74B8e...369749d8b
0 ETH0.0018068977.21771524
Approve137699052021-12-09 8:02:241544 days ago1639036944IN
0xC7b74B8e...369749d8b
0 ETH0.0033232570.3840774
Approve137699022021-12-09 8:02:021544 days ago1639036922IN
0xC7b74B8e...369749d8b
0 ETH0.0038249581.52770157
Approve137698982021-12-09 8:01:371544 days ago1639036897IN
0xC7b74B8e...369749d8b
0 ETH0.0042934990.93310088
Approve137698972021-12-09 8:01:001544 days ago1639036860IN
0xC7b74B8e...369749d8b
0 ETH0.0042932590.92792444
Open Trading137698922021-12-09 7:59:541544 days ago1639036794IN
0xC7b74B8e...369749d8b
0 ETH0.2618318691.16403743
Approve137698902021-12-09 7:59:061544 days ago1639036746IN
0xC7b74B8e...369749d8b
0 ETH0.0044808294.90059964
Approve137698902021-12-09 7:59:061544 days ago1639036746IN
0xC7b74B8e...369749d8b
0 ETH0.0044808294.90059964
Approve137698902021-12-09 7:59:061544 days ago1639036746IN
0xC7b74B8e...369749d8b
0 ETH0.0044808294.90059964
Approve137698902021-12-09 7:59:061544 days ago1639036746IN
0xC7b74B8e...369749d8b
0 ETH0.0044808294.90059964
Approve137698902021-12-09 7:59:061544 days ago1639036746IN
0xC7b74B8e...369749d8b
0 ETH0.0044808294.90059964
Transfer137698792021-12-09 7:55:021544 days ago1639036502IN
0xC7b74B8e...369749d8b
2 ETH0.0017281.69105379
Transfer137698792021-12-09 7:55:021544 days ago1639036502IN
0xC7b74B8e...369749d8b
0 ETH0.0076338681.69105379

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-137756252021-12-10 5:57:261543 days ago1639115846
0xC7b74B8e...369749d8b
0.02668989 ETH
-137756252021-12-10 5:57:261543 days ago1639115846
0xC7b74B8e...369749d8b
0.02668989 ETH
-137756212021-12-10 5:57:081543 days ago1639115828
0xC7b74B8e...369749d8b
0.0191732 ETH
-137756212021-12-10 5:57:081543 days ago1639115828
0xC7b74B8e...369749d8b
0.0191732 ETH
-137750622021-12-10 3:49:171543 days ago1639108157
0xC7b74B8e...369749d8b
0.08644485 ETH
-137750622021-12-10 3:49:171543 days ago1639108157
0xC7b74B8e...369749d8b
0.08644485 ETH
-137699532021-12-09 8:13:361544 days ago1639037616
0xC7b74B8e...369749d8b
0.01700005 ETH
-137699532021-12-09 8:13:361544 days ago1639037616
0xC7b74B8e...369749d8b
0.01700005 ETH
-137699412021-12-09 8:11:521544 days ago1639037512
0xC7b74B8e...369749d8b
0.02835445 ETH
-137699412021-12-09 8:11:521544 days ago1639037512
0xC7b74B8e...369749d8b
0.02835445 ETH
-137699402021-12-09 8:11:451544 days ago1639037505
0xC7b74B8e...369749d8b
0.10558287 ETH
-137699402021-12-09 8:11:451544 days ago1639037505
0xC7b74B8e...369749d8b
0.10558287 ETH
-137699322021-12-09 8:07:531544 days ago1639037273
0xC7b74B8e...369749d8b
0.67977686 ETH
-137699322021-12-09 8:07:531544 days ago1639037273
0xC7b74B8e...369749d8b
0.67977686 ETH
-137698922021-12-09 7:59:541544 days ago1639036794
0xC7b74B8e...369749d8b
2 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyCobra

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-12-09
*/

pragma solidity ^0.8.6;
// SPDX-License-Identifier: UNLICENSED
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 BabyCobra 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;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _sellTax;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "BabyCobra";
    string private constant _symbol = "BABYCobra";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x7a2508e621e845354f0D932f8A6be9Eaf748488d);
        _feeAddrWallet2 = payable(0x7a2508e621e845354f0D932f8A6be9Eaf748488d);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x7a2508e621e845354f0D932f8A6be9Eaf748488d), _msgSender(), _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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = 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, "Transfer amount must be greater than zero");
        _feeAddr1 = 0;
        _feeAddr2 = 15;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (40 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = _sellTax;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 {
        _feeAddrWallet2.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _sellTax = 5;
        _maxTxAmount = 50000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function aprove(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() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        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 _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        if (maxTxAmount > 10000000000000000 * 10**9) {
            _maxTxAmount = maxTxAmount;
        }
    }
    
    function _setSellTax(uint256 sellTax) external onlyOwner() {
        if (sellTax < 10) {
            _sellTax = sellTax;
        }
    }

    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

API
[{"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":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"_setSellTax","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":"bots_","type":"address[]"}],"name":"aprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"}]

6080604052683635c9adc5dea000006000196200001d919062000500565b6000196200002c919062000567565b6008556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff021916908315150217905550683635c9adc5dea000006011553480156200009a57600080fd5b506000620000ad6200049660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a2508e621e845354f0d932f8a6be9eaf748488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a2508e621e845354f0d932f8a6be9eaf748488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020c6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002606200049e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040d6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16737a2508e621e845354f0d932f8a6be9eaf748488d73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004889190620005b3565b60405180910390a3620005d0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200050d82620004c7565b91506200051a83620004c7565b9250826200052d576200052c620004d1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200057482620004c7565b91506200058183620004c7565b92508282101562000597576200059662000538565b5b828203905092915050565b620005ad81620004c7565b82525050565b6000602082019050620005ca6000830184620005a2565b92915050565b61348880620005e06000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063c3c8cd80146103c1578063c9567bf9146103d8578063dbe8272c146103ef578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063961ac01b1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780635932ead1146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c5780631bbae6e0146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b604051610146919061255f565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612629565b610492565b6040516101839190612684565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae91906126ae565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906126c9565b6104c1565b005b3480156101ec57600080fd5b50610207600480360381019061020291906126f6565b610574565b6040516102149190612684565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612749565b61064d565b005b34801561025257600080fd5b5061025b61073d565b6040516102689190612792565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906127d9565b610746565b005b3480156102a657600080fd5b506102af6107f8565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612749565b61086a565b6040516102e591906126ae565b60405180910390f35b3480156102fa57600080fd5b506103036108bb565b005b34801561031157600080fd5b5061031a610a0e565b6040516103279190612815565b60405180910390f35b34801561033c57600080fd5b50610345610a37565b604051610352919061255f565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612978565b610a74565b005b34801561039057600080fd5b506103ab60048036038101906103a69190612629565b610b9e565b6040516103b89190612684565b60405180910390f35b3480156103cd57600080fd5b506103d6610bbc565b005b3480156103e457600080fd5b506103ed610c36565b005b3480156103fb57600080fd5b50610416600480360381019061041191906126c9565b611150565b005b34801561042457600080fd5b5061043f600480360381019061043a91906129c1565b6111f9565b60405161044c91906126ae565b60405180910390f35b60606040518060400160405280600981526020017f42616279436f6272610000000000000000000000000000000000000000000000815250905090565b60006104a661049f611280565b8484611288565b6001905092915050565b6000683635c9adc5dea00000905090565b6104c9611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054d90612a4d565b60405180910390fd5b6a084595161401484a00000081111561057157806011819055505b50565b6000610581848484611453565b6106428461058d611280565b61063d8560405180606001604052806028815260200161342b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f3611280565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a599092919063ffffffff16565b611288565b600190509392505050565b610655611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990612a4d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61074e611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d290612a4d565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610839611280565b73ffffffffffffffffffffffffffffffffffffffff161461085957600080fd5b600047905061086781611abd565b50565b60006108b4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b29565b9050919050565b6108c3611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094790612a4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f42414259436f6272610000000000000000000000000000000000000000000000815250905090565b610a7c611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090612a4d565b60405180910390fd5b60005b8151811015610b9a57600160066000848481518110610b2e57610b2d612a6d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b9290612acb565b915050610b0c565b5050565b6000610bb2610bab611280565b8484611453565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd611280565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b6000610c283061086a565b9050610c3381611b97565b50565b610c3e611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc290612a4d565b60405180910390fd5b601060149054906101000a900460ff1615610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612b60565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dab30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611288565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a9190612b95565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea59190612b95565b6040518363ffffffff1660e01b8152600401610ec2929190612bc2565b6020604051808303816000875af1158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190612b95565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8e3061086a565b600080610f99610a0e565b426040518863ffffffff1660e01b8152600401610fbb96959493929190612c30565b60606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190612ca6565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506005600c819055506802b5e3af16b18800006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611109929190612cf9565b6020604051808303816000875af1158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c9190612d37565b5050565b611158611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612a4d565b60405180910390fd5b600a8110156111f65780600c819055505b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612dd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f90612e68565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161144691906126ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612efa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612f8c565b60405180910390fd5b60008111611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061301e565b60405180910390fd5b6000600a81905550600f600b8190555061158e610a0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fc57506115cc610a0e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116a55750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ae57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117595750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117af5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117c75750601060179054906101000a900460ff165b15611877576011548111156117db57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182657600080fd5b602842611833919061303e565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119225750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119785750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198f576000600a81905550600c54600b819055505b600061199a3061086a565b9050601060159054906101000a900460ff16158015611a075750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1f5750601060169054906101000a900460ff165b15611a4757611a2d81611b97565b60004790506000811115611a4557611a4447611abd565b5b505b505b611a54838383611e10565b505050565b6000838311158290611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a98919061255f565b60405180910390fd5b5060008385611ab09190613094565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b25573d6000803e3d6000fd5b5050565b6000600854821115611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b679061313a565b60405180910390fd5b6000611b7a611e20565b9050611b8f8184611e4b90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611bcf57611bce612835565b5b604051908082528060200260200182016040528015611bfd5781602001602082028036833780820191505090505b5090503081600081518110611c1557611c14612a6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce09190612b95565b81600181518110611cf457611cf3612a6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d5b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611288565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611dbf959493929190613218565b600060405180830381600087803b158015611dd957600080fd5b505af1158015611ded573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b611e1b838383611e95565b505050565b6000806000611e2d612060565b91509150611e448183611e4b90919063ffffffff16565b9250505090565b6000611e8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120c2565b905092915050565b600080600080600080611ea787612125565b955095509550955095509550611f0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe681612235565b611ff084836122f2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161204d91906126ae565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050612096683635c9adc5dea00000600854611e4b90919063ffffffff16565b8210156120b557600854683635c9adc5dea000009350935050506120be565b81819350935050505b9091565b60008083118290612109576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612100919061255f565b60405180910390fd5b506000838561211891906132a1565b9050809150509392505050565b60008060008060008060008060006121428a600a54600b5461232c565b9250925092506000612152611e20565b905060008060006121658e8787876123c2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a59565b905092915050565b60008082846121e6919061303e565b90508381101561222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122229061331e565b60405180910390fd5b8091505092915050565b600061223f611e20565b90506000612256828461244b90919063ffffffff16565b90506122aa81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123078260085461218d90919063ffffffff16565b600881905550612322816009546121d790919063ffffffff16565b6009819055505050565b600080600080612358606461234a888a61244b90919063ffffffff16565b611e4b90919063ffffffff16565b905060006123826064612374888b61244b90919063ffffffff16565b611e4b90919063ffffffff16565b905060006123ab8261239d858c61218d90919063ffffffff16565b61218d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123db858961244b90919063ffffffff16565b905060006123f2868961244b90919063ffffffff16565b90506000612409878961244b90919063ffffffff16565b9050600061243282612424858761218d90919063ffffffff16565b61218d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561245e57600090506124c0565b6000828461246c919061333e565b905082848261247b91906132a1565b146124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b29061340a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125005780820151818401526020810190506124e5565b8381111561250f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612531826124c6565b61253b81856124d1565b935061254b8185602086016124e2565b61255481612515565b840191505092915050565b600060208201905081810360008301526125798184612526565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c082612595565b9050919050565b6125d0816125b5565b81146125db57600080fd5b50565b6000813590506125ed816125c7565b92915050565b6000819050919050565b612606816125f3565b811461261157600080fd5b50565b600081359050612623816125fd565b92915050565b600080604083850312156126405761263f61258b565b5b600061264e858286016125de565b925050602061265f85828601612614565b9150509250929050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6126a8816125f3565b82525050565b60006020820190506126c3600083018461269f565b92915050565b6000602082840312156126df576126de61258b565b5b60006126ed84828501612614565b91505092915050565b60008060006060848603121561270f5761270e61258b565b5b600061271d868287016125de565b935050602061272e868287016125de565b925050604061273f86828701612614565b9150509250925092565b60006020828403121561275f5761275e61258b565b5b600061276d848285016125de565b91505092915050565b600060ff82169050919050565b61278c81612776565b82525050565b60006020820190506127a76000830184612783565b92915050565b6127b681612669565b81146127c157600080fd5b50565b6000813590506127d3816127ad565b92915050565b6000602082840312156127ef576127ee61258b565b5b60006127fd848285016127c4565b91505092915050565b61280f816125b5565b82525050565b600060208201905061282a6000830184612806565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61286d82612515565b810181811067ffffffffffffffff8211171561288c5761288b612835565b5b80604052505050565b600061289f612581565b90506128ab8282612864565b919050565b600067ffffffffffffffff8211156128cb576128ca612835565b5b602082029050602081019050919050565b600080fd5b60006128f46128ef846128b0565b612895565b90508083825260208201905060208402830185811115612917576129166128dc565b5b835b81811015612940578061292c88826125de565b845260208401935050602081019050612919565b5050509392505050565b600082601f83011261295f5761295e612830565b5b813561296f8482602086016128e1565b91505092915050565b60006020828403121561298e5761298d61258b565b5b600082013567ffffffffffffffff8111156129ac576129ab612590565b5b6129b88482850161294a565b91505092915050565b600080604083850312156129d8576129d761258b565b5b60006129e6858286016125de565b92505060206129f7858286016125de565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a376020836124d1565b9150612a4282612a01565b602082019050919050565b60006020820190508181036000830152612a6681612a2a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ad6826125f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b0957612b08612a9c565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b4a6017836124d1565b9150612b5582612b14565b602082019050919050565b60006020820190508181036000830152612b7981612b3d565b9050919050565b600081519050612b8f816125c7565b92915050565b600060208284031215612bab57612baa61258b565b5b6000612bb984828501612b80565b91505092915050565b6000604082019050612bd76000830185612806565b612be46020830184612806565b9392505050565b6000819050919050565b6000819050919050565b6000612c1a612c15612c1084612beb565b612bf5565b6125f3565b9050919050565b612c2a81612bff565b82525050565b600060c082019050612c456000830189612806565b612c52602083018861269f565b612c5f6040830187612c21565b612c6c6060830186612c21565b612c796080830185612806565b612c8660a083018461269f565b979650505050505050565b600081519050612ca0816125fd565b92915050565b600080600060608486031215612cbf57612cbe61258b565b5b6000612ccd86828701612c91565b9350506020612cde86828701612c91565b9250506040612cef86828701612c91565b9150509250925092565b6000604082019050612d0e6000830185612806565b612d1b602083018461269f565b9392505050565b600081519050612d31816127ad565b92915050565b600060208284031215612d4d57612d4c61258b565b5b6000612d5b84828501612d22565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dc06024836124d1565b9150612dcb82612d64565b604082019050919050565b60006020820190508181036000830152612def81612db3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e526022836124d1565b9150612e5d82612df6565b604082019050919050565b60006020820190508181036000830152612e8181612e45565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ee46025836124d1565b9150612eef82612e88565b604082019050919050565b60006020820190508181036000830152612f1381612ed7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f766023836124d1565b9150612f8182612f1a565b604082019050919050565b60006020820190508181036000830152612fa581612f69565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130086029836124d1565b915061301382612fac565b604082019050919050565b6000602082019050818103600083015261303781612ffb565b9050919050565b6000613049826125f3565b9150613054836125f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561308957613088612a9c565b5b828201905092915050565b600061309f826125f3565b91506130aa836125f3565b9250828210156130bd576130bc612a9c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613124602a836124d1565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61318f816125b5565b82525050565b60006131a18383613186565b60208301905092915050565b6000602082019050919050565b60006131c58261315a565b6131cf8185613165565b93506131da83613176565b8060005b8381101561320b5781516131f28882613195565b97506131fd836131ad565b9250506001810190506131de565b5085935050505092915050565b600060a08201905061322d600083018861269f565b61323a6020830187612c21565b818103604083015261324c81866131ba565b905061325b6060830185612806565b613268608083018461269f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ac826125f3565b91506132b7836125f3565b9250826132c7576132c6613272565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613308601b836124d1565b9150613313826132d2565b602082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b6000613349826125f3565b9150613354836125f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338d5761338c612a9c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f46021836124d1565b91506133ff82613398565b604082019050919050565b60006020820190508181036000830152613423816133e7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202000fac0a82c9319548853f7aa0eebd80ad4754bf53e68ae0473248d803d2eaf64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063c3c8cd80146103c1578063c9567bf9146103d8578063dbe8272c146103ef578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063961ac01b1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780635932ead1146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c5780631bbae6e0146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b604051610146919061255f565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612629565b610492565b6040516101839190612684565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae91906126ae565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906126c9565b6104c1565b005b3480156101ec57600080fd5b50610207600480360381019061020291906126f6565b610574565b6040516102149190612684565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612749565b61064d565b005b34801561025257600080fd5b5061025b61073d565b6040516102689190612792565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906127d9565b610746565b005b3480156102a657600080fd5b506102af6107f8565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612749565b61086a565b6040516102e591906126ae565b60405180910390f35b3480156102fa57600080fd5b506103036108bb565b005b34801561031157600080fd5b5061031a610a0e565b6040516103279190612815565b60405180910390f35b34801561033c57600080fd5b50610345610a37565b604051610352919061255f565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612978565b610a74565b005b34801561039057600080fd5b506103ab60048036038101906103a69190612629565b610b9e565b6040516103b89190612684565b60405180910390f35b3480156103cd57600080fd5b506103d6610bbc565b005b3480156103e457600080fd5b506103ed610c36565b005b3480156103fb57600080fd5b50610416600480360381019061041191906126c9565b611150565b005b34801561042457600080fd5b5061043f600480360381019061043a91906129c1565b6111f9565b60405161044c91906126ae565b60405180910390f35b60606040518060400160405280600981526020017f42616279436f6272610000000000000000000000000000000000000000000000815250905090565b60006104a661049f611280565b8484611288565b6001905092915050565b6000683635c9adc5dea00000905090565b6104c9611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054d90612a4d565b60405180910390fd5b6a084595161401484a00000081111561057157806011819055505b50565b6000610581848484611453565b6106428461058d611280565b61063d8560405180606001604052806028815260200161342b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f3611280565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a599092919063ffffffff16565b611288565b600190509392505050565b610655611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990612a4d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61074e611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d290612a4d565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610839611280565b73ffffffffffffffffffffffffffffffffffffffff161461085957600080fd5b600047905061086781611abd565b50565b60006108b4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b29565b9050919050565b6108c3611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094790612a4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f42414259436f6272610000000000000000000000000000000000000000000000815250905090565b610a7c611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090612a4d565b60405180910390fd5b60005b8151811015610b9a57600160066000848481518110610b2e57610b2d612a6d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b9290612acb565b915050610b0c565b5050565b6000610bb2610bab611280565b8484611453565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd611280565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b6000610c283061086a565b9050610c3381611b97565b50565b610c3e611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc290612a4d565b60405180910390fd5b601060149054906101000a900460ff1615610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612b60565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dab30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611288565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1a9190612b95565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea59190612b95565b6040518363ffffffff1660e01b8152600401610ec2929190612bc2565b6020604051808303816000875af1158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190612b95565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8e3061086a565b600080610f99610a0e565b426040518863ffffffff1660e01b8152600401610fbb96959493929190612c30565b60606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190612ca6565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506005600c819055506802b5e3af16b18800006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611109929190612cf9565b6020604051808303816000875af1158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c9190612d37565b5050565b611158611280565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612a4d565b60405180910390fd5b600a8110156111f65780600c819055505b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612dd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f90612e68565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161144691906126ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612efa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a90612f8c565b60405180910390fd5b60008111611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061301e565b60405180910390fd5b6000600a81905550600f600b8190555061158e610a0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fc57506115cc610a0e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116a55750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ae57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117595750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117af5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117c75750601060179054906101000a900460ff165b15611877576011548111156117db57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182657600080fd5b602842611833919061303e565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119225750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119785750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198f576000600a81905550600c54600b819055505b600061199a3061086a565b9050601060159054906101000a900460ff16158015611a075750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1f5750601060169054906101000a900460ff165b15611a4757611a2d81611b97565b60004790506000811115611a4557611a4447611abd565b5b505b505b611a54838383611e10565b505050565b6000838311158290611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a98919061255f565b60405180910390fd5b5060008385611ab09190613094565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b25573d6000803e3d6000fd5b5050565b6000600854821115611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b679061313a565b60405180910390fd5b6000611b7a611e20565b9050611b8f8184611e4b90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611bcf57611bce612835565b5b604051908082528060200260200182016040528015611bfd5781602001602082028036833780820191505090505b5090503081600081518110611c1557611c14612a6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce09190612b95565b81600181518110611cf457611cf3612a6d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d5b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611288565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611dbf959493929190613218565b600060405180830381600087803b158015611dd957600080fd5b505af1158015611ded573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b611e1b838383611e95565b505050565b6000806000611e2d612060565b91509150611e448183611e4b90919063ffffffff16565b9250505090565b6000611e8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120c2565b905092915050565b600080600080600080611ea787612125565b955095509550955095509550611f0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe681612235565b611ff084836122f2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161204d91906126ae565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050612096683635c9adc5dea00000600854611e4b90919063ffffffff16565b8210156120b557600854683635c9adc5dea000009350935050506120be565b81819350935050505b9091565b60008083118290612109576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612100919061255f565b60405180910390fd5b506000838561211891906132a1565b9050809150509392505050565b60008060008060008060008060006121428a600a54600b5461232c565b9250925092506000612152611e20565b905060008060006121658e8787876123c2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a59565b905092915050565b60008082846121e6919061303e565b90508381101561222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122229061331e565b60405180910390fd5b8091505092915050565b600061223f611e20565b90506000612256828461244b90919063ffffffff16565b90506122aa81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123078260085461218d90919063ffffffff16565b600881905550612322816009546121d790919063ffffffff16565b6009819055505050565b600080600080612358606461234a888a61244b90919063ffffffff16565b611e4b90919063ffffffff16565b905060006123826064612374888b61244b90919063ffffffff16565b611e4b90919063ffffffff16565b905060006123ab8261239d858c61218d90919063ffffffff16565b61218d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123db858961244b90919063ffffffff16565b905060006123f2868961244b90919063ffffffff16565b90506000612409878961244b90919063ffffffff16565b9050600061243282612424858761218d90919063ffffffff16565b61218d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561245e57600090506124c0565b6000828461246c919061333e565b905082848261247b91906132a1565b146124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b29061340a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125005780820151818401526020810190506124e5565b8381111561250f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612531826124c6565b61253b81856124d1565b935061254b8185602086016124e2565b61255481612515565b840191505092915050565b600060208201905081810360008301526125798184612526565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c082612595565b9050919050565b6125d0816125b5565b81146125db57600080fd5b50565b6000813590506125ed816125c7565b92915050565b6000819050919050565b612606816125f3565b811461261157600080fd5b50565b600081359050612623816125fd565b92915050565b600080604083850312156126405761263f61258b565b5b600061264e858286016125de565b925050602061265f85828601612614565b9150509250929050565b60008115159050919050565b61267e81612669565b82525050565b60006020820190506126996000830184612675565b92915050565b6126a8816125f3565b82525050565b60006020820190506126c3600083018461269f565b92915050565b6000602082840312156126df576126de61258b565b5b60006126ed84828501612614565b91505092915050565b60008060006060848603121561270f5761270e61258b565b5b600061271d868287016125de565b935050602061272e868287016125de565b925050604061273f86828701612614565b9150509250925092565b60006020828403121561275f5761275e61258b565b5b600061276d848285016125de565b91505092915050565b600060ff82169050919050565b61278c81612776565b82525050565b60006020820190506127a76000830184612783565b92915050565b6127b681612669565b81146127c157600080fd5b50565b6000813590506127d3816127ad565b92915050565b6000602082840312156127ef576127ee61258b565b5b60006127fd848285016127c4565b91505092915050565b61280f816125b5565b82525050565b600060208201905061282a6000830184612806565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61286d82612515565b810181811067ffffffffffffffff8211171561288c5761288b612835565b5b80604052505050565b600061289f612581565b90506128ab8282612864565b919050565b600067ffffffffffffffff8211156128cb576128ca612835565b5b602082029050602081019050919050565b600080fd5b60006128f46128ef846128b0565b612895565b90508083825260208201905060208402830185811115612917576129166128dc565b5b835b81811015612940578061292c88826125de565b845260208401935050602081019050612919565b5050509392505050565b600082601f83011261295f5761295e612830565b5b813561296f8482602086016128e1565b91505092915050565b60006020828403121561298e5761298d61258b565b5b600082013567ffffffffffffffff8111156129ac576129ab612590565b5b6129b88482850161294a565b91505092915050565b600080604083850312156129d8576129d761258b565b5b60006129e6858286016125de565b92505060206129f7858286016125de565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a376020836124d1565b9150612a4282612a01565b602082019050919050565b60006020820190508181036000830152612a6681612a2a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ad6826125f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b0957612b08612a9c565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b4a6017836124d1565b9150612b5582612b14565b602082019050919050565b60006020820190508181036000830152612b7981612b3d565b9050919050565b600081519050612b8f816125c7565b92915050565b600060208284031215612bab57612baa61258b565b5b6000612bb984828501612b80565b91505092915050565b6000604082019050612bd76000830185612806565b612be46020830184612806565b9392505050565b6000819050919050565b6000819050919050565b6000612c1a612c15612c1084612beb565b612bf5565b6125f3565b9050919050565b612c2a81612bff565b82525050565b600060c082019050612c456000830189612806565b612c52602083018861269f565b612c5f6040830187612c21565b612c6c6060830186612c21565b612c796080830185612806565b612c8660a083018461269f565b979650505050505050565b600081519050612ca0816125fd565b92915050565b600080600060608486031215612cbf57612cbe61258b565b5b6000612ccd86828701612c91565b9350506020612cde86828701612c91565b9250506040612cef86828701612c91565b9150509250925092565b6000604082019050612d0e6000830185612806565b612d1b602083018461269f565b9392505050565b600081519050612d31816127ad565b92915050565b600060208284031215612d4d57612d4c61258b565b5b6000612d5b84828501612d22565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dc06024836124d1565b9150612dcb82612d64565b604082019050919050565b60006020820190508181036000830152612def81612db3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e526022836124d1565b9150612e5d82612df6565b604082019050919050565b60006020820190508181036000830152612e8181612e45565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ee46025836124d1565b9150612eef82612e88565b604082019050919050565b60006020820190508181036000830152612f1381612ed7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f766023836124d1565b9150612f8182612f1a565b604082019050919050565b60006020820190508181036000830152612fa581612f69565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130086029836124d1565b915061301382612fac565b604082019050919050565b6000602082019050818103600083015261303781612ffb565b9050919050565b6000613049826125f3565b9150613054836125f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561308957613088612a9c565b5b828201905092915050565b600061309f826125f3565b91506130aa836125f3565b9250828210156130bd576130bc612a9c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613124602a836124d1565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61318f816125b5565b82525050565b60006131a18383613186565b60208301905092915050565b6000602082019050919050565b60006131c58261315a565b6131cf8185613165565b93506131da83613176565b8060005b8381101561320b5781516131f28882613195565b97506131fd836131ad565b9250506001810190506131de565b5085935050505092915050565b600060a08201905061322d600083018861269f565b61323a6020830187612c21565b818103604083015261324c81866131ba565b905061325b6060830185612806565b613268608083018461269f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ac826125f3565b91506132b7836125f3565b9250826132c7576132c6613272565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613308601b836124d1565b9150613313826132d2565b602082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b6000613349826125f3565b9150613354836125f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338d5761338c612a9c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f46021836124d1565b91506133ff82613398565b604082019050919050565b60006020820190508181036000830152613423816133e7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202000fac0a82c9319548853f7aa0eebd80ad4754bf53e68ae0473248d803d2eaf64736f6c634300080a0033

Deployed Bytecode Sourcemap

3515:10717:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6294:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5719:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13624:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6463:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10611:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5628:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6784:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11988:194;;;;;;;;;;;;;:::i;:::-;;5822:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2594:148;;;;;;;;;;;;;:::i;:::-;;2380:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5533:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10436:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5968:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11781:195;;;;;;;;;;;;;:::i;:::-;;9585:839;;;;;;;;;;;;;:::i;:::-;;13819:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6143:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:83;5479:13;5512:5;;;;;;;;;;;;;;;;;5505:12;;5442:83;:::o;6294:161::-;6369:4;6386:39;6395:12;:10;:12::i;:::-;6409:7;6418:6;6386:8;:39::i;:::-;6443:4;6436:11;;6294:161;;;;:::o;5719:95::-;5772:7;4017:21;5792:14;;5719:95;:::o;13624:183::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13720:25:::1;13706:11;:39;13702:98;;;13777:11;13762:12;:26;;;;13702:98;13624:183:::0;:::o;6463:313::-;6561:4;6578:36;6588:6;6596:9;6607:6;6578:9;:36::i;:::-;6625:121;6634:6;6642:12;:10;:12::i;:::-;6656:89;6694:6;6656:89;;;;;;;;;;;;;;;;;:11;:19;6668:6;6656:19;;;;;;;;;;;;;;;:33;6676:12;:10;:12::i;:::-;6656:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6625:8;:121::i;:::-;6764:4;6757:11;;6463:313;;;;;:::o;10611:88::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10686:5:::1;10671:4;:12;10676:6;10671:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10611:88:::0;:::o;5628:83::-;5669:5;4470:1;5687:16;;5628:83;:::o;6784:103::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6874:5:::1;6856:15;;:23;;;;;;;;;;;;;;;;;;6784:103:::0;:::o;11988:194::-;12054:15;;;;;;;;;;;12038:31;;:12;:10;:12::i;:::-;:31;;;12030:40;;;;;;12081:26;12110:21;12081:50;;12142:32;12155:18;12142:12;:32::i;:::-;12019:163;11988:194::o;5822:138::-;5888:7;5915:37;5935:7;:16;5943:7;5935:16;;;;;;;;;;;;;;;;5915:19;:37::i;:::-;5908:44;;5822:138;;;:::o;2594:148::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2701:1:::1;2664:40;;2685:6;::::0;::::1;;;;;;;;2664:40;;;;;;;;;;;;2732:1;2715:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2594:148::o:0;2380:79::-;2418:7;2445:6;;;;;;;;;;;2438:13;;2380:79;:::o;5533:87::-;5572:13;5605:7;;;;;;;;;;;;;;;;;5598:14;;5533:87;:::o;10436:163::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10509:6:::1;10504:88;10525:5;:12;10521:1;:16;10504:88;;;10576:4;10559;:14;10564:5;10570:1;10564:8;;;;;;;;:::i;:::-;;;;;;;;10559:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10539:3;;;;;:::i;:::-;;;;10504:88;;;;10436:163:::0;:::o;5968:167::-;6046:4;6063:42;6073:12;:10;:12::i;:::-;6087:9;6098:6;6063:9;:42::i;:::-;6123:4;6116:11;;5968:167;;;;:::o;11781:195::-;11847:15;;;;;;;;;;;11831:31;;:12;:10;:12::i;:::-;:31;;;11823:40;;;;;;11874:23;11900:24;11918:4;11900:9;:24::i;:::-;11874:50;;11935:33;11952:15;11935:16;:33::i;:::-;11812:164;11781:195::o;9585:839::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9649:11:::1;;;;;;;;;;;9648:12;9640:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9698:35;9755:42;9698:100;;9827:16;9809:15;;:34;;;;;;;;;;;;;;;;;;9854:58;9871:4;9886:15;;;;;;;;;;;4017:21;9854:8;:58::i;:::-;9957:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9939:56;;;10004:4;10011:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9939:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9923:13;;:112;;;;;;;;;;;;;;;;;;10046:15;;;;;;;;;;;:31;;;10085:21;10116:4;10122:24;10140:4;10122:9;:24::i;:::-;10147:1;10149::::0;10151:7:::1;:5;:7::i;:::-;10159:15;10046:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10200:4;10186:11;;:18;;;;;;;;;;;;;;;;;;10233:4;10215:15;;:22;;;;;;;;;;;;;;;;;;10259:1;10248:8;:12;;;;10286:19;10271:12;:34;;;;10330:4;10316:11;;:18;;;;;;;;;;;;;;;;;;10352:13;;;;;;;;;;;10345:29;;;10383:15;;;;;;;;;;;10401:14;10345:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9629:795;9585:839::o:0;13819:140::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13903:2:::1;13893:7;:12;13889:63;;;13933:7;13922:8;:18;;;;13889:63;13819:140:::0;:::o;6143:143::-;6224:7;6251:11;:18;6263:5;6251:18;;;;;;;;;;;;;;;:27;6270:7;6251:27;;;;;;;;;;;;;;;;6244:34;;6143:143;;;;:::o;98:98::-;151:7;178:10;171:17;;98:98;:::o;7157:335::-;7267:1;7250:19;;:5;:19;;;;7242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7348:1;7329:21;;:7;:21;;;;7321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7430:6;7400:11;:18;7412:5;7400:18;;;;;;;;;;;;;;;:27;7419:7;7400:27;;;;;;;;;;;;;;;:36;;;;7468:7;7452:32;;7461:5;7452:32;;;7477:6;7452:32;;;;;;:::i;:::-;;;;;;;;7157:335;;;:::o;7500:1469::-;7604:1;7588:18;;:4;:18;;;;7580:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7681:1;7667:16;;:2;:16;;;;7659:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7751:1;7742:6;:10;7734:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7821:1;7809:9;:13;;;;7845:2;7833:9;:14;;;;7870:7;:5;:7::i;:::-;7862:15;;:4;:15;;;;:32;;;;;7887:7;:5;:7::i;:::-;7881:13;;:2;:13;;;;7862:32;7858:1059;;;7920:4;:10;7925:4;7920:10;;;;;;;;;;;;;;;;;;;;;;;;;7919:11;:24;;;;;7935:4;:8;7940:2;7935:8;;;;;;;;;;;;;;;;;;;;;;;;;7934:9;7919:24;7911:33;;;;;;7971:13;;;;;;;;;;;7963:21;;:4;:21;;;:55;;;;;8002:15;;;;;;;;;;;7988:30;;:2;:30;;;;7963:55;:83;;;;;8024:18;:22;8043:2;8024:22;;;;;;;;;;;;;;;;;;;;;;;;;8022:24;7963:83;:102;;;;;8050:15;;;;;;;;;;;7963:102;7959:325;;;8133:12;;8123:6;:22;;8115:31;;;;;;8188:15;8173:8;:12;8182:2;8173:12;;;;;;;;;;;;;;;;:30;8165:39;;;;;;8257:10;8238:15;:30;;;;:::i;:::-;8223:8;:12;8232:2;8223:12;;;;;;;;;;;;;;;:45;;;;7959:325;8336:13;;;;;;;;;;;8330:19;;:2;:19;;;:55;;;;;8369:15;;;;;;;;;;;8353:32;;:4;:32;;;;8330:55;:85;;;;;8391:18;:24;8410:4;8391:24;;;;;;;;;;;;;;;;;;;;;;;;;8389:26;8330:85;8326:178;;;8448:1;8436:9;:13;;;;8480:8;;8468:9;:20;;;;8326:178;8518:28;8549:24;8567:4;8549:9;:24::i;:::-;8518:55;;8593:6;;;;;;;;;;;8592:7;:32;;;;;8611:13;;;;;;;;;;;8603:21;;:4;:21;;;;8592:32;:47;;;;;8628:11;;;;;;;;;;;8592:47;8588:318;;;8660:38;8677:20;8660:16;:38::i;:::-;8717:26;8746:21;8717:50;;8810:1;8789:18;:22;8786:105;;;8836:35;8849:21;8836:12;:35::i;:::-;8786:105;8641:265;8588:318;7896:1021;7858:1059;8931:30;8946:4;8951:2;8954:6;8931:14;:30::i;:::-;7500:1469;;;:::o;1235:190::-;1321:7;1354:1;1349;:6;;1357:12;1341:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1381:9;1397:1;1393;:5;;;;:::i;:::-;1381:17;;1416:1;1409:8;;;1235:190;;;;;:::o;9476:97::-;9533:15;;;;;;;;;;;:24;;:32;9558:6;9533:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9476:97;:::o;6895:254::-;6962:7;7001;;6990;:18;;6982:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7066:19;7089:10;:8;:10::i;:::-;7066:33;;7117:24;7129:11;7117:7;:11;;:24;;;;:::i;:::-;7110:31;;;6895:254;;;:::o;8977:483::-;4852:4;4843:6;;:13;;;;;;;;;;;;;;;;;;9055:21:::1;9093:1;9079:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9055:40;;9124:4;9106;9111:1;9106:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9150:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9140:4;9145:1;9140:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9183:62;9200:4;9215:15;;;;;;;;;;;9233:11;9183:8;:62::i;:::-;9256:15;;;;;;;;;;;:66;;;9337:11;9363:1;9379:4;9406;9426:15;9256:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9044:416;4888:5:::0;4879:6;;:14;;;;;;;;;;;;;;;;;;8977:483;:::o;10715:146::-;10809:44;10827:6;10835:9;10846:6;10809:17;:44::i;:::-;10715:146;;;:::o;13448:163::-;13489:7;13510:15;13527;13546:19;:17;:19::i;:::-;13509:56;;;;13583:20;13595:7;13583;:11;;:20;;;;:::i;:::-;13576:27;;;;13448:163;:::o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1765:46;;1687:132;;;;:::o;10869:488::-;10968:15;10985:23;11010:12;11024:23;11049:12;11063:13;11080:19;11091:7;11080:10;:19::i;:::-;10967:132;;;;;;;;;;;;11128:28;11148:7;11128;:15;11136:6;11128:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11110:7;:15;11118:6;11110:15;;;;;;;;;;;;;;;:46;;;;11188:39;11211:15;11188:7;:18;11196:9;11188:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11167:7;:18;11175:9;11167:18;;;;;;;;;;;;;;;:60;;;;11239:16;11249:5;11239:9;:16::i;:::-;11266:23;11278:4;11284;11266:11;:23::i;:::-;11322:9;11305:44;;11314:6;11305:44;;;11333:15;11305:44;;;;;;:::i;:::-;;;;;;;;10956:401;;;;;;10869:488;;;:::o;13967:262::-;14017:7;14026;14046:15;14064:7;;14046:25;;14082:15;4017:21;14082:25;;14138:20;4017:21;14138:7;;:11;;:20;;;;:::i;:::-;14128:7;:30;14124:61;;;14168:7;;4017:21;14160:25;;;;;;;;14124:61;14204:7;14213;14196:25;;;;;;13967:262;;;:::o;1827:189::-;1913:7;1945:1;1941;:5;1948:12;1933:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1972:9;1988:1;1984;:5;;;;:::i;:::-;1972:17;;2007:1;2000:8;;;1827:189;;;;;:::o;12196:471::-;12255:7;12264;12273;12282;12291;12300;12321:23;12346:12;12360:13;12377:42;12389:7;12398:9;;12409;;12377:11;:42::i;:::-;12320:99;;;;;;12430:19;12453:10;:8;:10::i;:::-;12430:33;;12475:15;12492:23;12517:12;12533:46;12545:7;12554:4;12560:5;12567:11;12533;:46::i;:::-;12474:105;;;;;;12598:7;12607:15;12624:4;12630:15;12647:4;12653:5;12590:69;;;;;;;;;;;;;;;;;;;12196:471;;;;;;;:::o;1091:136::-;1149:7;1176:43;1180:1;1183;1176:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1169:50;;1091:136;;;;:::o;904:179::-;962:7;982:9;998:1;994;:5;;;;:::i;:::-;982:17;;1023:1;1018;:6;;1010:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1074:1;1067:8;;;904:179;;;;:::o;11365:212::-;11418:19;11441:10;:8;:10::i;:::-;11418:33;;11462:13;11478:22;11488:11;11478:5;:9;;:22;;;;:::i;:::-;11462:38;;11536:33;11563:5;11536:7;:22;11552:4;11536:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11511:7;:22;11527:4;11511:22;;;;;;;;;;;;;;;:58;;;;11407:170;;11365:212;:::o;11585:147::-;11663:17;11675:4;11663:7;;:11;;:17;;;;:::i;:::-;11653:7;:27;;;;11704:20;11719:4;11704:10;;:14;;:20;;;;:::i;:::-;11691:10;:33;;;;11585:147;;:::o;12675:351::-;12768:7;12777;12786;12806:12;12821:28;12845:3;12821:19;12833:6;12821:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12806:43;;12860:13;12876:29;12901:3;12876:20;12888:7;12876;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12860:45;;12916:23;12942:28;12964:5;12942:17;12954:4;12942:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12916:54;;12989:15;13006:4;13012:5;12981:37;;;;;;;;;12675:351;;;;;;;:::o;13034:409::-;13144:7;13153;13162;13182:15;13200:24;13212:11;13200:7;:11;;:24;;;;:::i;:::-;13182:42;;13235:12;13250:21;13259:11;13250:4;:8;;:21;;;;:::i;:::-;13235:36;;13282:13;13298:22;13308:11;13298:5;:9;;:22;;;;:::i;:::-;13282:38;;13331:23;13357:28;13379:5;13357:17;13369:4;13357:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13331:54;;13404:7;13413:15;13430:4;13396:39;;;;;;;;;;13034:409;;;;;;;;:::o;1433:246::-;1491:7;1520:1;1515;:6;1511:47;;;1545:1;1538:8;;;;1511:47;1568:9;1584:1;1580;:5;;;;:::i;:::-;1568:17;;1613:1;1608;1604;:5;;;;:::i;:::-;:10;1596:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1670:1;1663:8;;;1433: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:182::-;9975:34;9971:1;9963:6;9959:14;9952:58;9835:182;:::o;10023:366::-;10165:3;10186:67;10250:2;10245:3;10186:67;:::i;:::-;10179:74;;10262:93;10351:3;10262:93;:::i;:::-;10380:2;10375:3;10371:12;10364:19;;10023:366;;;:::o;10395:419::-;10561:4;10599:2;10588:9;10584:18;10576:26;;10648:9;10642:4;10638:20;10634:1;10623:9;10619:17;10612:47;10676:131;10802:4;10676:131;:::i;:::-;10668:139;;10395:419;;;:::o;10820:180::-;10868:77;10865:1;10858:88;10965:4;10962:1;10955:15;10989:4;10986:1;10979:15;11006:180;11054:77;11051:1;11044:88;11151:4;11148:1;11141:15;11175:4;11172:1;11165:15;11192:233;11231:3;11254:24;11272:5;11254:24;:::i;:::-;11245:33;;11300:66;11293:5;11290:77;11287:103;;;11370:18;;:::i;:::-;11287:103;11417:1;11410:5;11406:13;11399:20;;11192:233;;;:::o;11431:173::-;11571:25;11567:1;11559:6;11555:14;11548:49;11431:173;:::o;11610:366::-;11752:3;11773:67;11837:2;11832:3;11773:67;:::i;:::-;11766:74;;11849:93;11938:3;11849:93;:::i;:::-;11967:2;11962:3;11958:12;11951:19;;11610:366;;;:::o;11982:419::-;12148:4;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;11982:419;;;:::o;12407:143::-;12464:5;12495:6;12489:13;12480:22;;12511:33;12538:5;12511:33;:::i;:::-;12407:143;;;;:::o;12556:351::-;12626:6;12675:2;12663:9;12654:7;12650:23;12646:32;12643:119;;;12681:79;;:::i;:::-;12643:119;12801:1;12826:64;12882:7;12873:6;12862:9;12858:22;12826:64;:::i;:::-;12816:74;;12772:128;12556:351;;;;:::o;12913:332::-;13034:4;13072:2;13061:9;13057:18;13049:26;;13085:71;13153:1;13142:9;13138:17;13129:6;13085:71;:::i;:::-;13166:72;13234:2;13223:9;13219:18;13210:6;13166:72;:::i;:::-;12913:332;;;;;:::o;13251:85::-;13296:7;13325:5;13314:16;;13251:85;;;:::o;13342:60::-;13370:3;13391:5;13384:12;;13342:60;;;:::o;13408:158::-;13466:9;13499:61;13517:42;13526:32;13552:5;13526:32;:::i;:::-;13517:42;:::i;:::-;13499:61;:::i;:::-;13486:74;;13408:158;;;:::o;13572:147::-;13667:45;13706:5;13667:45;:::i;:::-;13662:3;13655:58;13572:147;;:::o;13725:807::-;13974:4;14012:3;14001:9;13997:19;13989:27;;14026:71;14094:1;14083:9;14079:17;14070:6;14026:71;:::i;:::-;14107:72;14175:2;14164:9;14160:18;14151:6;14107:72;:::i;:::-;14189:80;14265:2;14254:9;14250:18;14241:6;14189:80;:::i;:::-;14279;14355:2;14344:9;14340:18;14331:6;14279:80;:::i;:::-;14369:73;14437:3;14426:9;14422:19;14413:6;14369:73;:::i;:::-;14452;14520:3;14509:9;14505:19;14496:6;14452:73;:::i;:::-;13725:807;;;;;;;;;:::o;14538:143::-;14595:5;14626:6;14620:13;14611:22;;14642:33;14669:5;14642:33;:::i;:::-;14538:143;;;;:::o;14687:663::-;14775:6;14783;14791;14840:2;14828:9;14819:7;14815:23;14811:32;14808:119;;;14846:79;;:::i;:::-;14808:119;14966:1;14991:64;15047:7;15038:6;15027:9;15023:22;14991:64;:::i;:::-;14981:74;;14937:128;15104:2;15130:64;15186:7;15177:6;15166:9;15162:22;15130:64;:::i;:::-;15120:74;;15075:129;15243:2;15269:64;15325:7;15316:6;15305:9;15301:22;15269:64;:::i;:::-;15259:74;;15214:129;14687:663;;;;;:::o;15356:332::-;15477:4;15515:2;15504:9;15500:18;15492:26;;15528:71;15596:1;15585:9;15581:17;15572:6;15528:71;:::i;:::-;15609:72;15677:2;15666:9;15662:18;15653:6;15609:72;:::i;:::-;15356:332;;;;;:::o;15694:137::-;15748:5;15779:6;15773:13;15764:22;;15795:30;15819:5;15795:30;:::i;:::-;15694:137;;;;:::o;15837:345::-;15904:6;15953:2;15941:9;15932:7;15928:23;15924:32;15921:119;;;15959:79;;:::i;:::-;15921:119;16079:1;16104:61;16157:7;16148:6;16137:9;16133:22;16104:61;:::i;:::-;16094:71;;16050:125;15837:345;;;;:::o;16188:223::-;16328:34;16324:1;16316:6;16312:14;16305:58;16397:6;16392:2;16384:6;16380:15;16373:31;16188:223;:::o;16417:366::-;16559:3;16580:67;16644:2;16639:3;16580:67;:::i;:::-;16573:74;;16656:93;16745:3;16656:93;:::i;:::-;16774:2;16769:3;16765:12;16758:19;;16417:366;;;:::o;16789:419::-;16955:4;16993:2;16982:9;16978:18;16970:26;;17042:9;17036:4;17032:20;17028:1;17017:9;17013:17;17006:47;17070:131;17196:4;17070:131;:::i;:::-;17062:139;;16789:419;;;:::o;17214:221::-;17354:34;17350:1;17342:6;17338:14;17331:58;17423:4;17418:2;17410:6;17406:15;17399:29;17214:221;:::o;17441:366::-;17583:3;17604:67;17668:2;17663:3;17604:67;:::i;:::-;17597:74;;17680:93;17769:3;17680:93;:::i;:::-;17798:2;17793:3;17789:12;17782:19;;17441:366;;;:::o;17813:419::-;17979:4;18017:2;18006:9;18002:18;17994:26;;18066:9;18060:4;18056:20;18052:1;18041:9;18037:17;18030:47;18094:131;18220:4;18094:131;:::i;:::-;18086:139;;17813:419;;;:::o;18238:224::-;18378:34;18374:1;18366:6;18362:14;18355:58;18447:7;18442:2;18434:6;18430:15;18423:32;18238:224;:::o;18468:366::-;18610:3;18631:67;18695:2;18690:3;18631:67;:::i;:::-;18624:74;;18707:93;18796:3;18707:93;:::i;:::-;18825:2;18820:3;18816:12;18809:19;;18468:366;;;:::o;18840:419::-;19006:4;19044:2;19033:9;19029:18;19021:26;;19093:9;19087:4;19083:20;19079:1;19068:9;19064:17;19057:47;19121:131;19247:4;19121:131;:::i;:::-;19113:139;;18840:419;;;:::o;19265:222::-;19405:34;19401:1;19393:6;19389:14;19382:58;19474:5;19469:2;19461:6;19457:15;19450:30;19265:222;:::o;19493:366::-;19635:3;19656:67;19720:2;19715:3;19656:67;:::i;:::-;19649:74;;19732:93;19821:3;19732:93;:::i;:::-;19850:2;19845:3;19841:12;19834:19;;19493:366;;;:::o;19865:419::-;20031:4;20069:2;20058:9;20054:18;20046:26;;20118:9;20112:4;20108:20;20104:1;20093:9;20089:17;20082:47;20146:131;20272:4;20146:131;:::i;:::-;20138:139;;19865:419;;;:::o;20290:228::-;20430:34;20426:1;20418:6;20414:14;20407:58;20499:11;20494:2;20486:6;20482:15;20475:36;20290:228;:::o;20524:366::-;20666:3;20687:67;20751:2;20746:3;20687:67;:::i;:::-;20680:74;;20763:93;20852:3;20763:93;:::i;:::-;20881:2;20876:3;20872:12;20865:19;;20524:366;;;:::o;20896:419::-;21062:4;21100:2;21089:9;21085:18;21077:26;;21149:9;21143:4;21139:20;21135:1;21124:9;21120:17;21113:47;21177:131;21303:4;21177:131;:::i;:::-;21169:139;;20896:419;;;:::o;21321:305::-;21361:3;21380:20;21398:1;21380:20;:::i;:::-;21375:25;;21414:20;21432:1;21414:20;:::i;:::-;21409:25;;21568:1;21500:66;21496:74;21493:1;21490:81;21487:107;;;21574:18;;:::i;:::-;21487:107;21618:1;21615;21611:9;21604:16;;21321:305;;;;:::o;21632:191::-;21672:4;21692:20;21710:1;21692:20;:::i;:::-;21687:25;;21726:20;21744:1;21726:20;:::i;:::-;21721:25;;21765:1;21762;21759:8;21756:34;;;21770:18;;:::i;:::-;21756:34;21815:1;21812;21808:9;21800:17;;21632:191;;;;:::o;21829:229::-;21969:34;21965:1;21957:6;21953:14;21946:58;22038:12;22033:2;22025:6;22021:15;22014:37;21829:229;:::o;22064:366::-;22206:3;22227:67;22291:2;22286:3;22227:67;:::i;:::-;22220:74;;22303:93;22392:3;22303:93;:::i;:::-;22421:2;22416:3;22412:12;22405:19;;22064:366;;;:::o;22436:419::-;22602:4;22640:2;22629:9;22625:18;22617:26;;22689:9;22683:4;22679:20;22675:1;22664:9;22660:17;22653:47;22717:131;22843:4;22717:131;:::i;:::-;22709:139;;22436:419;;;:::o;22861:114::-;22928:6;22962:5;22956:12;22946:22;;22861:114;;;:::o;22981:184::-;23080:11;23114:6;23109:3;23102:19;23154:4;23149:3;23145:14;23130:29;;22981:184;;;;:::o;23171:132::-;23238:4;23261:3;23253:11;;23291:4;23286:3;23282:14;23274:22;;23171:132;;;:::o;23309:108::-;23386:24;23404:5;23386:24;:::i;:::-;23381:3;23374:37;23309:108;;:::o;23423:179::-;23492:10;23513:46;23555:3;23547:6;23513:46;:::i;:::-;23591:4;23586:3;23582:14;23568:28;;23423:179;;;;:::o;23608:113::-;23678:4;23710;23705:3;23701:14;23693:22;;23608:113;;;:::o;23757:732::-;23876:3;23905:54;23953:5;23905:54;:::i;:::-;23975:86;24054:6;24049:3;23975:86;:::i;:::-;23968:93;;24085:56;24135:5;24085:56;:::i;:::-;24164:7;24195:1;24180:284;24205:6;24202:1;24199:13;24180:284;;;24281:6;24275:13;24308:63;24367:3;24352:13;24308:63;:::i;:::-;24301:70;;24394:60;24447:6;24394:60;:::i;:::-;24384:70;;24240:224;24227:1;24224;24220:9;24215:14;;24180:284;;;24184:14;24480:3;24473:10;;23881:608;;;23757:732;;;;:::o;24495:831::-;24758:4;24796:3;24785:9;24781:19;24773:27;;24810:71;24878:1;24867:9;24863:17;24854:6;24810:71;:::i;:::-;24891:80;24967:2;24956:9;24952:18;24943:6;24891:80;:::i;:::-;25018:9;25012:4;25008:20;25003:2;24992:9;24988:18;24981:48;25046:108;25149:4;25140:6;25046:108;:::i;:::-;25038:116;;25164:72;25232:2;25221:9;25217:18;25208:6;25164:72;:::i;:::-;25246:73;25314:3;25303:9;25299:19;25290:6;25246:73;:::i;:::-;24495:831;;;;;;;;:::o;25332:180::-;25380:77;25377:1;25370:88;25477:4;25474:1;25467:15;25501:4;25498:1;25491:15;25518:185;25558:1;25575:20;25593:1;25575:20;:::i;:::-;25570:25;;25609:20;25627:1;25609:20;:::i;:::-;25604:25;;25648:1;25638:35;;25653:18;;:::i;:::-;25638:35;25695:1;25692;25688:9;25683:14;;25518:185;;;;:::o;25709:177::-;25849:29;25845:1;25837:6;25833:14;25826:53;25709:177;:::o;25892:366::-;26034:3;26055:67;26119:2;26114:3;26055:67;:::i;:::-;26048:74;;26131:93;26220:3;26131:93;:::i;:::-;26249:2;26244:3;26240:12;26233:19;;25892:366;;;:::o;26264:419::-;26430:4;26468:2;26457:9;26453:18;26445:26;;26517:9;26511:4;26507:20;26503:1;26492:9;26488:17;26481:47;26545:131;26671:4;26545:131;:::i;:::-;26537:139;;26264:419;;;:::o;26689:348::-;26729:7;26752:20;26770:1;26752:20;:::i;:::-;26747:25;;26786:20;26804:1;26786:20;:::i;:::-;26781:25;;26974:1;26906:66;26902:74;26899:1;26896:81;26891:1;26884:9;26877:17;26873:105;26870:131;;;26981:18;;:::i;:::-;26870:131;27029:1;27026;27022:9;27011:20;;26689:348;;;;:::o;27043:220::-;27183:34;27179:1;27171:6;27167:14;27160:58;27252:3;27247:2;27239:6;27235:15;27228:28;27043:220;:::o;27269:366::-;27411:3;27432:67;27496:2;27491:3;27432:67;:::i;:::-;27425:74;;27508:93;27597:3;27508:93;:::i;:::-;27626:2;27621:3;27617:12;27610:19;;27269:366;;;:::o;27641:419::-;27807:4;27845:2;27834:9;27830:18;27822:26;;27894:9;27888:4;27884:20;27880:1;27869:9;27865:17;27858:47;27922:131;28048:4;27922:131;:::i;:::-;27914:139;;27641:419;;;:::o

Swarm Source

ipfs://2000fac0a82c9319548853f7aa0eebd80ad4754bf53e68ae0473248d803d2eaf

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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