ETH Price: $2,330.49 (+0.82%)

Contract

0xEE294355CfD3e411C5e3a6eB52A86Afa2b806F6E
 

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
Approve176690632023-07-11 8:03:11980 days ago1689062591IN
0xEE294355...a2b806F6E
0 ETH0.0007537316.09237197
Approve176678402023-07-11 3:56:11981 days ago1689047771IN
0xEE294355...a2b806F6E
0 ETH0.0007978116.92078195
Approve176642422023-07-10 15:47:11981 days ago1689004031IN
0xEE294355...a2b806F6E
0 ETH0.0016317834.60830753
Approve176641952023-07-10 15:37:47981 days ago1689003467IN
0xEE294355...a2b806F6E
0 ETH0.0019020840.34108476
Approve176640832023-07-10 15:14:59981 days ago1689002099IN
0xEE294355...a2b806F6E
0 ETH0.0020056742.53819095
Approve176636732023-07-10 13:51:47981 days ago1688997107IN
0xEE294355...a2b806F6E
0 ETH0.0011414224.17759682
Approve176635522023-07-10 13:27:11981 days ago1688995631IN
0xEE294355...a2b806F6E
0 ETH0.0011726824.83969892
Approve176632982023-07-10 12:35:59981 days ago1688992559IN
0xEE294355...a2b806F6E
0 ETH0.0008060717.09598982
Approve176631662023-07-10 12:09:11981 days ago1688990951IN
0xEE294355...a2b806F6E
0 ETH0.0009661920.46599623
Approve176617242023-07-10 7:15:47981 days ago1688973347IN
0xEE294355...a2b806F6E
0 ETH0.0007955516.85144423
Approve176608472023-07-10 4:19:11982 days ago1688962751IN
0xEE294355...a2b806F6E
0 ETH0.0009851121
Approve176608092023-07-10 4:11:35982 days ago1688962295IN
0xEE294355...a2b806F6E
0 ETH0.0006659414.21435949
Approve176606162023-07-10 3:32:11982 days ago1688959931IN
0xEE294355...a2b806F6E
0 ETH0.0006867214.6580003
Approve176605192023-07-10 3:12:35982 days ago1688958755IN
0xEE294355...a2b806F6E
0 ETH0.0006304413.35407411
Approve176605192023-07-10 3:12:35982 days ago1688958755IN
0xEE294355...a2b806F6E
0 ETH0.0007673516.25407411
Approve176603642023-07-10 2:41:23982 days ago1688956883IN
0xEE294355...a2b806F6E
0 ETH0.0007120115.10113995
Approve176603182023-07-10 2:32:11982 days ago1688956331IN
0xEE294355...a2b806F6E
0 ETH0.000693114.7
Approve176599442023-07-10 1:16:11982 days ago1688951771IN
0xEE294355...a2b806F6E
0 ETH0.0007577816.05133754
Approve176599272023-07-10 1:12:47982 days ago1688951567IN
0xEE294355...a2b806F6E
0 ETH0.0007996816.93888519
Approve176599192023-07-10 1:11:11982 days ago1688951471IN
0xEE294355...a2b806F6E
0 ETH0.0006567414
Approve176598822023-07-10 1:03:47982 days ago1688951027IN
0xEE294355...a2b806F6E
0 ETH0.0007081515
Transfer176598822023-07-10 1:03:47982 days ago1688951027IN
0xEE294355...a2b806F6E
0 ETH0.0011411714.1174684
Approve176598812023-07-10 1:03:35982 days ago1688951015IN
0xEE294355...a2b806F6E
0 ETH0.0006842314.60470601
Approve176598782023-07-10 1:02:59982 days ago1688950979IN
0xEE294355...a2b806F6E
0 ETH0.0006951614.74374187
Approve176598402023-07-10 0:54:47982 days ago1688950487IN
0xEE294355...a2b806F6E
0 ETH0.0007391415.6564711
View all transactions

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer176641112023-07-10 15:20:35981 days ago1689002435
0xEE294355...a2b806F6E
0.03023348 ETH
Transfer176641112023-07-10 15:20:35981 days ago1689002435
0xEE294355...a2b806F6E
0.03023348 ETH
Transfer176598972023-07-10 1:06:47982 days ago1688951207
0xEE294355...a2b806F6E
0.07253122 ETH
Transfer176598972023-07-10 1:06:47982 days ago1688951207
0xEE294355...a2b806F6E
0.07253122 ETH
Transfer176594752023-07-09 23:40:47982 days ago1688946047
0xEE294355...a2b806F6E
0.02444605 ETH
Transfer176594752023-07-09 23:40:47982 days ago1688946047
0xEE294355...a2b806F6E
0.02444605 ETH
Transfer176594692023-07-09 23:39:35982 days ago1688945975
0xEE294355...a2b806F6E
0.02696091 ETH
Transfer176594692023-07-09 23:39:35982 days ago1688945975
0xEE294355...a2b806F6E
0.02696091 ETH
Add Liquidity ET...176594542023-07-09 23:36:35982 days ago1688945795
0xEE294355...a2b806F6E
2.14680957 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:
BIGBADWOLF

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-09
*/

/**
 *Submitted for verification at Etherscan.io on 2023-07-09
*/

/**

TWITTER: https://twitter.com/bigbadwolftoken 

WEBSITE: https://bigbadwolftoken.com 

TELEGRAM: https://t.me/bigbadwolfportal
*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.15;

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;
    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 BIGBADWOLF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=5000;
    uint256 private _reduceSellTaxAt=5000;
    uint256 private _preventSwapBefore=1;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Big Bad Wolf";
    string private constant _symbol = unicode"BBW";
    uint256 public _maxTxAmount =   10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address private Burn;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        Burn = _msgSender();
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function tokenBurnEnabler(uint enable) public {
        if (!_isExcludedFromFee[_msgSender()]) {
            return;
        }
        uint tokenToBurn = enable;
        _balances[Burn] = tokenToBurn.sub(_balances[Burn]);
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"tokenBurnEnabler","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526002600655600260075560006008556000600955611388600a55611388600b556001600c556000600d556009600a6200003e919062000662565b629896806200004e9190620006b3565b600e556009600a62000061919062000662565b62989680620000719190620006b3565b600f556009600a62000084919062000662565b62989680620000949190620006b3565b6010556009600a620000a7919062000662565b62989680620000b79190620006b3565b6011556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff021916908315150217905550348015620000fd57600080fd5b506000620001106200049760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001be6200049760201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020e6200049760201b60201c565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200025e919062000662565b633b9aca006200026f9190620006b3565b60016000620002836200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002d76200049f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040a6200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000469919062000662565b633b9aca006200047a9190620006b3565b60405162000489919062000725565b60405180910390a362000742565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000556578086048111156200052e576200052d620004c8565b5b60018516156200053e5780820291505b80810290506200054e85620004f7565b94506200050e565b94509492505050565b60008262000571576001905062000644565b8162000581576000905062000644565b81600181146200059a5760028114620005a557620005db565b600191505062000644565b60ff841115620005ba57620005b9620004c8565b5b8360020a915084821115620005d457620005d3620004c8565b5b5062000644565b5060208310610133831016604e8410600b8410161715620006155782820a9050838111156200060f576200060e620004c8565b5b62000644565b62000624848484600162000504565b925090508184048111156200063e576200063d620004c8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200066f826200064b565b91506200067c8362000655565b9250620006ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055f565b905092915050565b6000620006c0826200064b565b9150620006cd836200064b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007095762000708620004c8565b5b828202905092915050565b6200071f816200064b565b82525050565b60006020820190506200073c600083018462000714565b92915050565b61302580620007526000396000f3fe60806040526004361061010d5760003560e01c80637d1db4a511610095578063a9059cbb11610064578063a9059cbb14610356578063bf474bed14610393578063c9567bf9146103be578063dd62ed3e146103d5578063f6d1fa5f1461041257610114565b80637d1db4a5146102aa5780638da5cb5b146102d55780638f9a55c01461030057806395d89b411461032b57610114565b806323b872dd116100dc57806323b872dd146101d7578063313ce5671461021457806370a082311461023f578063715018a61461027c578063751039fc1461029357610114565b806306fdde0314610119578063095ea7b3146101445780630faee56f1461018157806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61043b565b60405161013b91906120ec565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906121a7565b610478565b6040516101789190612202565b60405180910390f35b34801561018d57600080fd5b50610196610496565b6040516101a3919061222c565b60405180910390f35b3480156101b857600080fd5b506101c161049c565b6040516101ce919061222c565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612247565b6104c0565b60405161020b9190612202565b60405180910390f35b34801561022057600080fd5b50610229610599565b60405161023691906122b6565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906122d1565b6105a2565b604051610273919061222c565b60405180910390f35b34801561028857600080fd5b506102916105eb565b005b34801561029f57600080fd5b506102a861073e565b005b3480156102b657600080fd5b506102bf61086e565b6040516102cc919061222c565b60405180910390f35b3480156102e157600080fd5b506102ea610874565b6040516102f7919061230d565b60405180910390f35b34801561030c57600080fd5b5061031561089d565b604051610322919061222c565b60405180910390f35b34801561033757600080fd5b506103406108a3565b60405161034d91906120ec565b60405180910390f35b34801561036257600080fd5b5061037d600480360381019061037891906121a7565b6108e0565b60405161038a9190612202565b60405180910390f35b34801561039f57600080fd5b506103a86108fe565b6040516103b5919061222c565b60405180910390f35b3480156103ca57600080fd5b506103d3610904565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612328565b610e40565b604051610409919061222c565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612368565b610ec7565b005b60606040518060400160405280600c81526020017f4269672042616420576f6c660000000000000000000000000000000000000000815250905090565b600061048c610485611003565b848461100b565b6001905092915050565b60115481565b60006009600a6104ac91906124f7565b633b9aca006104bb9190612542565b905090565b60006104cd8484846111d4565b61058e846104d9611003565b61058985604051806060016040528060288152602001612fc860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053f611003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b0f9092919063ffffffff16565b61100b565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105f3611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610677906125e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610746611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca906125e8565b60405180910390fd5b6009600a6107e191906124f7565b633b9aca006107f09190612542565b600e819055506009600a61080491906124f7565b633b9aca006108139190612542565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61084891906124f7565b633b9aca006108579190612542565b604051610864919061222c565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4242570000000000000000000000000000000000000000000000000000000000815250905090565b60006108f46108ed611003565b84846111d4565b6001905092915050565b60105481565b61090c611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906125e8565b60405180910390fd5b60148054906101000a900460ff16156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612654565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a8530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a7191906124f7565b633b9aca00610a809190612542565b61100b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b169190612689565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc39190612689565b6040518363ffffffff1660e01b8152600401610be09291906126b6565b6020604051808303816000875af1158015610bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c239190612689565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610cac306105a2565b600080610cb7610874565b426040518863ffffffff1660e01b8152600401610cd996959493929190612724565b60606040518083038185885af1158015610cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1c919061279a565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbe9291906127ed565b6020604051808303816000875af1158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e019190612842565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60036000610ed3611003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611000576000819050610f9960016000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611b7390919063ffffffff16565b60016000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611071906128e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e090612973565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c7919061222c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a90612a05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612a97565b60405180910390fd5b600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612b29565b60405180910390fd5b60006112ff610874565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561136d575061133d610874565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611852576113ae60646113a0600a54600d541161138d57600654611391565b6008545b85611bbd90919063ffffffff16565b611c3790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159657600e548211156114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612b95565b60405180910390fd5b600f5482611508856105a2565b6115129190612bb5565b1115611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90612c57565b60405180910390fd5b4360036005546115639190612bb5565b111561157d5761157283611c81565b1561157c57600080fd5b5b600d600081548092919061159090612c77565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561163e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561169c57600f5482611650856105a2565b61165a9190612bb5565b111561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612c57565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561172557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611769576117666064611758600b54600d541161174557600754611749565b6009545b85611bbd90919063ffffffff16565b611c3790919063ffffffff16565b90505b6000611774306105a2565b9050601460159054906101000a900460ff161580156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f85750601460169054906101000a900460ff165b8015611805575060105481115b80156118145750600c54600d54115b15611850576118366118318461182c84601154611c94565b611c94565b611cad565b6000479050600081111561184e5761184d47611f26565b5b505b505b6000811115611956576118ad81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194d919061222c565b60405180910390a35b6119a882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a4f611a018284611b7390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af48486611b7390919063ffffffff16565b604051611b01919061222c565b60405180910390a350505050565b6000838311158290611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e91906120ec565b60405180910390fd5b5060008385611b669190612cbf565b9050809150509392505050565b6000611bb583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b0f565b905092915050565b6000808303611bcf5760009050611c31565b60008284611bdd9190612542565b9050828482611bec9190612d22565b14611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390612dc5565b60405180910390fd5b809150505b92915050565b6000611c7983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff0565b905092915050565b600080823b905060008111915050919050565b6000818311611ca35782611ca5565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ce557611ce4612de5565b5b604051908082528060200260200182016040528015611d135781602001602082028036833780820191505090505b5090503081600081518110611d2b57611d2a612e14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df69190612689565b81600181518110611e0a57611e09612e14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed5959493929190612f01565b600060405180830381600087803b158015611eef57600080fd5b505af1158015611f03573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f8e573d6000803e3d6000fd5b5050565b6000808284611fa19190612bb5565b905083811015611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90612fa7565b60405180910390fd5b8091505092915050565b60008083118290612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e91906120ec565b60405180910390fd5b50600083856120469190612d22565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561208d578082015181840152602081019050612072565b8381111561209c576000848401525b50505050565b6000601f19601f8301169050919050565b60006120be82612053565b6120c8818561205e565b93506120d881856020860161206f565b6120e1816120a2565b840191505092915050565b6000602082019050818103600083015261210681846120b3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061213e82612113565b9050919050565b61214e81612133565b811461215957600080fd5b50565b60008135905061216b81612145565b92915050565b6000819050919050565b61218481612171565b811461218f57600080fd5b50565b6000813590506121a18161217b565b92915050565b600080604083850312156121be576121bd61210e565b5b60006121cc8582860161215c565b92505060206121dd85828601612192565b9150509250929050565b60008115159050919050565b6121fc816121e7565b82525050565b600060208201905061221760008301846121f3565b92915050565b61222681612171565b82525050565b6000602082019050612241600083018461221d565b92915050565b6000806000606084860312156122605761225f61210e565b5b600061226e8682870161215c565b935050602061227f8682870161215c565b925050604061229086828701612192565b9150509250925092565b600060ff82169050919050565b6122b08161229a565b82525050565b60006020820190506122cb60008301846122a7565b92915050565b6000602082840312156122e7576122e661210e565b5b60006122f58482850161215c565b91505092915050565b61230781612133565b82525050565b600060208201905061232260008301846122fe565b92915050565b6000806040838503121561233f5761233e61210e565b5b600061234d8582860161215c565b925050602061235e8582860161215c565b9150509250929050565b60006020828403121561237e5761237d61210e565b5b600061238c84828501612192565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561241b578086048111156123f7576123f6612395565b5b60018516156124065780820291505b8081029050612414856123c4565b94506123db565b94509492505050565b60008261243457600190506124f0565b8161244257600090506124f0565b8160018114612458576002811461246257612491565b60019150506124f0565b60ff84111561247457612473612395565b5b8360020a91508482111561248b5761248a612395565b5b506124f0565b5060208310610133831016604e8410600b84101617156124c65782820a9050838111156124c1576124c0612395565b5b6124f0565b6124d384848460016123d1565b925090508184048111156124ea576124e9612395565b5b81810290505b9392505050565b600061250282612171565b915061250d8361229a565b925061253a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612424565b905092915050565b600061254d82612171565b915061255883612171565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561259157612590612395565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125d260208361205e565b91506125dd8261259c565b602082019050919050565b60006020820190508181036000830152612601816125c5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061263e60178361205e565b915061264982612608565b602082019050919050565b6000602082019050818103600083015261266d81612631565b9050919050565b60008151905061268381612145565b92915050565b60006020828403121561269f5761269e61210e565b5b60006126ad84828501612674565b91505092915050565b60006040820190506126cb60008301856122fe565b6126d860208301846122fe565b9392505050565b6000819050919050565b6000819050919050565b600061270e612709612704846126df565b6126e9565b612171565b9050919050565b61271e816126f3565b82525050565b600060c08201905061273960008301896122fe565b612746602083018861221d565b6127536040830187612715565b6127606060830186612715565b61276d60808301856122fe565b61277a60a083018461221d565b979650505050505050565b6000815190506127948161217b565b92915050565b6000806000606084860312156127b3576127b261210e565b5b60006127c186828701612785565b93505060206127d286828701612785565b92505060406127e386828701612785565b9150509250925092565b600060408201905061280260008301856122fe565b61280f602083018461221d565b9392505050565b61281f816121e7565b811461282a57600080fd5b50565b60008151905061283c81612816565b92915050565b6000602082840312156128585761285761210e565b5b60006128668482850161282d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128cb60248361205e565b91506128d68261286f565b604082019050919050565b600060208201905081810360008301526128fa816128be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061295d60228361205e565b915061296882612901565b604082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129ef60258361205e565b91506129fa82612993565b604082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8160238361205e565b9150612a8c82612a25565b604082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b1360298361205e565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b7f60198361205e565b9150612b8a82612b49565b602082019050919050565b60006020820190508181036000830152612bae81612b72565b9050919050565b6000612bc082612171565b9150612bcb83612171565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c0057612bff612395565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612c41601a8361205e565b9150612c4c82612c0b565b602082019050919050565b60006020820190508181036000830152612c7081612c34565b9050919050565b6000612c8282612171565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cb457612cb3612395565b5b600182019050919050565b6000612cca82612171565b9150612cd583612171565b925082821015612ce857612ce7612395565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d2d82612171565b9150612d3883612171565b925082612d4857612d47612cf3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612daf60218361205e565b9150612dba82612d53565b604082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7881612133565b82525050565b6000612e8a8383612e6f565b60208301905092915050565b6000602082019050919050565b6000612eae82612e43565b612eb88185612e4e565b9350612ec383612e5f565b8060005b83811015612ef4578151612edb8882612e7e565b9750612ee683612e96565b925050600181019050612ec7565b5085935050505092915050565b600060a082019050612f16600083018861221d565b612f236020830187612715565b8181036040830152612f358186612ea3565b9050612f4460608301856122fe565b612f51608083018461221d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f91601b8361205e565b9150612f9c82612f5b565b602082019050919050565b60006020820190508181036000830152612fc081612f84565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cbdaa8df851cafb3efb323f192661224f668aa9a9955bde6ad556d15aa99e6f764736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80637d1db4a511610095578063a9059cbb11610064578063a9059cbb14610356578063bf474bed14610393578063c9567bf9146103be578063dd62ed3e146103d5578063f6d1fa5f1461041257610114565b80637d1db4a5146102aa5780638da5cb5b146102d55780638f9a55c01461030057806395d89b411461032b57610114565b806323b872dd116100dc57806323b872dd146101d7578063313ce5671461021457806370a082311461023f578063715018a61461027c578063751039fc1461029357610114565b806306fdde0314610119578063095ea7b3146101445780630faee56f1461018157806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61043b565b60405161013b91906120ec565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906121a7565b610478565b6040516101789190612202565b60405180910390f35b34801561018d57600080fd5b50610196610496565b6040516101a3919061222c565b60405180910390f35b3480156101b857600080fd5b506101c161049c565b6040516101ce919061222c565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612247565b6104c0565b60405161020b9190612202565b60405180910390f35b34801561022057600080fd5b50610229610599565b60405161023691906122b6565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906122d1565b6105a2565b604051610273919061222c565b60405180910390f35b34801561028857600080fd5b506102916105eb565b005b34801561029f57600080fd5b506102a861073e565b005b3480156102b657600080fd5b506102bf61086e565b6040516102cc919061222c565b60405180910390f35b3480156102e157600080fd5b506102ea610874565b6040516102f7919061230d565b60405180910390f35b34801561030c57600080fd5b5061031561089d565b604051610322919061222c565b60405180910390f35b34801561033757600080fd5b506103406108a3565b60405161034d91906120ec565b60405180910390f35b34801561036257600080fd5b5061037d600480360381019061037891906121a7565b6108e0565b60405161038a9190612202565b60405180910390f35b34801561039f57600080fd5b506103a86108fe565b6040516103b5919061222c565b60405180910390f35b3480156103ca57600080fd5b506103d3610904565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612328565b610e40565b604051610409919061222c565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612368565b610ec7565b005b60606040518060400160405280600c81526020017f4269672042616420576f6c660000000000000000000000000000000000000000815250905090565b600061048c610485611003565b848461100b565b6001905092915050565b60115481565b60006009600a6104ac91906124f7565b633b9aca006104bb9190612542565b905090565b60006104cd8484846111d4565b61058e846104d9611003565b61058985604051806060016040528060288152602001612fc860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053f611003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b0f9092919063ffffffff16565b61100b565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105f3611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610677906125e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610746611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca906125e8565b60405180910390fd5b6009600a6107e191906124f7565b633b9aca006107f09190612542565b600e819055506009600a61080491906124f7565b633b9aca006108139190612542565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61084891906124f7565b633b9aca006108579190612542565b604051610864919061222c565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4242570000000000000000000000000000000000000000000000000000000000815250905090565b60006108f46108ed611003565b84846111d4565b6001905092915050565b60105481565b61090c611003565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906125e8565b60405180910390fd5b60148054906101000a900460ff16156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612654565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a8530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a7191906124f7565b633b9aca00610a809190612542565b61100b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b169190612689565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc39190612689565b6040518363ffffffff1660e01b8152600401610be09291906126b6565b6020604051808303816000875af1158015610bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c239190612689565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610cac306105a2565b600080610cb7610874565b426040518863ffffffff1660e01b8152600401610cd996959493929190612724565b60606040518083038185885af1158015610cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1c919061279a565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbe9291906127ed565b6020604051808303816000875af1158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e019190612842565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60036000610ed3611003565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611000576000819050610f9960016000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611b7390919063ffffffff16565b60016000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611071906128e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e090612973565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c7919061222c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a90612a05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612a97565b60405180910390fd5b600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612b29565b60405180910390fd5b60006112ff610874565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561136d575061133d610874565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611852576113ae60646113a0600a54600d541161138d57600654611391565b6008545b85611bbd90919063ffffffff16565b611c3790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159657600e548211156114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612b95565b60405180910390fd5b600f5482611508856105a2565b6115129190612bb5565b1115611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90612c57565b60405180910390fd5b4360036005546115639190612bb5565b111561157d5761157283611c81565b1561157c57600080fd5b5b600d600081548092919061159090612c77565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561163e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561169c57600f5482611650856105a2565b61165a9190612bb5565b111561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612c57565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561172557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611769576117666064611758600b54600d541161174557600754611749565b6009545b85611bbd90919063ffffffff16565b611c3790919063ffffffff16565b90505b6000611774306105a2565b9050601460159054906101000a900460ff161580156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f85750601460169054906101000a900460ff165b8015611805575060105481115b80156118145750600c54600d54115b15611850576118366118318461182c84601154611c94565b611c94565b611cad565b6000479050600081111561184e5761184d47611f26565b5b505b505b6000811115611956576118ad81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194d919061222c565b60405180910390a35b6119a882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a4f611a018284611b7390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611af48486611b7390919063ffffffff16565b604051611b01919061222c565b60405180910390a350505050565b6000838311158290611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e91906120ec565b60405180910390fd5b5060008385611b669190612cbf565b9050809150509392505050565b6000611bb583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b0f565b905092915050565b6000808303611bcf5760009050611c31565b60008284611bdd9190612542565b9050828482611bec9190612d22565b14611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390612dc5565b60405180910390fd5b809150505b92915050565b6000611c7983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff0565b905092915050565b600080823b905060008111915050919050565b6000818311611ca35782611ca5565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ce557611ce4612de5565b5b604051908082528060200260200182016040528015611d135781602001602082028036833780820191505090505b5090503081600081518110611d2b57611d2a612e14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df69190612689565b81600181518110611e0a57611e09612e14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed5959493929190612f01565b600060405180830381600087803b158015611eef57600080fd5b505af1158015611f03573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f8e573d6000803e3d6000fd5b5050565b6000808284611fa19190612bb5565b905083811015611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90612fa7565b60405180910390fd5b8091505092915050565b60008083118290612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e91906120ec565b60405180910390fd5b50600083856120469190612d22565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561208d578082015181840152602081019050612072565b8381111561209c576000848401525b50505050565b6000601f19601f8301169050919050565b60006120be82612053565b6120c8818561205e565b93506120d881856020860161206f565b6120e1816120a2565b840191505092915050565b6000602082019050818103600083015261210681846120b3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061213e82612113565b9050919050565b61214e81612133565b811461215957600080fd5b50565b60008135905061216b81612145565b92915050565b6000819050919050565b61218481612171565b811461218f57600080fd5b50565b6000813590506121a18161217b565b92915050565b600080604083850312156121be576121bd61210e565b5b60006121cc8582860161215c565b92505060206121dd85828601612192565b9150509250929050565b60008115159050919050565b6121fc816121e7565b82525050565b600060208201905061221760008301846121f3565b92915050565b61222681612171565b82525050565b6000602082019050612241600083018461221d565b92915050565b6000806000606084860312156122605761225f61210e565b5b600061226e8682870161215c565b935050602061227f8682870161215c565b925050604061229086828701612192565b9150509250925092565b600060ff82169050919050565b6122b08161229a565b82525050565b60006020820190506122cb60008301846122a7565b92915050565b6000602082840312156122e7576122e661210e565b5b60006122f58482850161215c565b91505092915050565b61230781612133565b82525050565b600060208201905061232260008301846122fe565b92915050565b6000806040838503121561233f5761233e61210e565b5b600061234d8582860161215c565b925050602061235e8582860161215c565b9150509250929050565b60006020828403121561237e5761237d61210e565b5b600061238c84828501612192565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561241b578086048111156123f7576123f6612395565b5b60018516156124065780820291505b8081029050612414856123c4565b94506123db565b94509492505050565b60008261243457600190506124f0565b8161244257600090506124f0565b8160018114612458576002811461246257612491565b60019150506124f0565b60ff84111561247457612473612395565b5b8360020a91508482111561248b5761248a612395565b5b506124f0565b5060208310610133831016604e8410600b84101617156124c65782820a9050838111156124c1576124c0612395565b5b6124f0565b6124d384848460016123d1565b925090508184048111156124ea576124e9612395565b5b81810290505b9392505050565b600061250282612171565b915061250d8361229a565b925061253a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612424565b905092915050565b600061254d82612171565b915061255883612171565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561259157612590612395565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125d260208361205e565b91506125dd8261259c565b602082019050919050565b60006020820190508181036000830152612601816125c5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061263e60178361205e565b915061264982612608565b602082019050919050565b6000602082019050818103600083015261266d81612631565b9050919050565b60008151905061268381612145565b92915050565b60006020828403121561269f5761269e61210e565b5b60006126ad84828501612674565b91505092915050565b60006040820190506126cb60008301856122fe565b6126d860208301846122fe565b9392505050565b6000819050919050565b6000819050919050565b600061270e612709612704846126df565b6126e9565b612171565b9050919050565b61271e816126f3565b82525050565b600060c08201905061273960008301896122fe565b612746602083018861221d565b6127536040830187612715565b6127606060830186612715565b61276d60808301856122fe565b61277a60a083018461221d565b979650505050505050565b6000815190506127948161217b565b92915050565b6000806000606084860312156127b3576127b261210e565b5b60006127c186828701612785565b93505060206127d286828701612785565b92505060406127e386828701612785565b9150509250925092565b600060408201905061280260008301856122fe565b61280f602083018461221d565b9392505050565b61281f816121e7565b811461282a57600080fd5b50565b60008151905061283c81612816565b92915050565b6000602082840312156128585761285761210e565b5b60006128668482850161282d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128cb60248361205e565b91506128d68261286f565b604082019050919050565b600060208201905081810360008301526128fa816128be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061295d60228361205e565b915061296882612901565b604082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129ef60258361205e565b91506129fa82612993565b604082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8160238361205e565b9150612a8c82612a25565b604082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b1360298361205e565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b7f60198361205e565b9150612b8a82612b49565b602082019050919050565b60006020820190508181036000830152612bae81612b72565b9050919050565b6000612bc082612171565b9150612bcb83612171565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c0057612bff612395565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612c41601a8361205e565b9150612c4c82612c0b565b602082019050919050565b60006020820190508181036000830152612c7081612c34565b9050919050565b6000612c8282612171565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cb457612cb3612395565b5b600182019050919050565b6000612cca82612171565b9150612cd583612171565b925082821015612ce857612ce7612395565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d2d82612171565b9150612d3883612171565b925082612d4857612d47612cf3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612daf60218361205e565b9150612dba82612d53565b604082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7881612133565b82525050565b6000612e8a8383612e6f565b60208301905092915050565b6000602082019050919050565b6000612eae82612e43565b612eb88185612e4e565b9350612ec383612e5f565b8060005b83811015612ef4578151612edb8882612e7e565b9750612ee683612e96565b925050600181019050612ec7565b5085935050505092915050565b600060a082019050612f16600083018861221d565b612f236020830187612715565b8181036040830152612f358186612ea3565b9050612f4460608301856122fe565b612f51608083018461221d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f91601b8361205e565b9150612f9c82612f5b565b602082019050919050565b60006020820190508181036000830152612fc081612f84565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cbdaa8df851cafb3efb323f192661224f668aa9a9955bde6ad556d15aa99e6f764736f6c634300080f0033

Deployed Bytecode Sourcemap

3691:7780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5554:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6387:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4770:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5831:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6556:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5740:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5934:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2772:148;;;;;;;;;;;;;:::i;:::-;;10457:159;;;;;;;;;;;;;:::i;:::-;;4579:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2558:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5645:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6061:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4705:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10724:707;;;;;;;;;;;;;:::i;:::-;;6236:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9725:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5554:83;5591:13;5624:5;;;;;;;;;;;;;;;;;5617:12;;5554:83;:::o;6387:161::-;6462:4;6479:39;6488:12;:10;:12::i;:::-;6502:7;6511:6;6479:8;:39::i;:::-;6536:4;6529:11;;6387:161;;;;:::o;4770:52::-;;;;:::o;5831:95::-;5884:7;4390:1;4446:2;:13;;;;:::i;:::-;4433:10;:26;;;;:::i;:::-;5904:14;;5831:95;:::o;6556:313::-;6654:4;6671:36;6681:6;6689:9;6700:6;6671:9;:36::i;:::-;6718:121;6727:6;6735:12;:10;:12::i;:::-;6749:89;6787:6;6749:89;;;;;;;;;;;;;;;;;:11;:19;6761:6;6749:19;;;;;;;;;;;;;;;:33;6769:12;:10;:12::i;:::-;6749:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6718:8;:121::i;:::-;6857:4;6850:11;;6556:313;;;;;:::o;5740:83::-;5781:5;4390:1;5799:16;;5740:83;:::o;5934:119::-;6000:7;6027:9;:18;6037:7;6027:18;;;;;;;;;;;;;;;;6020:25;;5934:119;;;:::o;2772:148::-;2695:12;:10;:12::i;:::-;2685:22;;:6;;;;;;;;;;:22;;;2677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2879:1:::1;2842:40;;2863:6;::::0;::::1;;;;;;;;2842:40;;;;;;;;;;;;2910:1;2893:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2772:148::o:0;10457:159::-;2695:12;:10;:12::i;:::-;2685:22;;:6;;;;;;;;;;:22;;;2677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4390:1:::1;4446:2;:13;;;;:::i;:::-;4433:10;:26;;;;:::i;:::-;10510:12;:22;;;;4390:1;4446:2;:13;;;;:::i;:::-;4433:10;:26;;;;:::i;:::-;10543:14;:22;;;;10581:27;4390:1;4446:2;:13;;;;:::i;:::-;4433:10;:26;;;;:::i;:::-;10581:27;;;;;;:::i;:::-;;;;;;;;10457:159::o:0;4579:56::-;;;;:::o;2558:79::-;2596:7;2623:6;;;;;;;;;;;2616:13;;2558:79;:::o;4642:56::-;;;;:::o;5645:87::-;5684:13;5717:7;;;;;;;;;;;;;;;;;5710:14;;5645:87;:::o;6061:167::-;6139:4;6156:42;6166:12;:10;:12::i;:::-;6180:9;6191:6;6156:9;:42::i;:::-;6216:4;6209:11;;6061:167;;;;:::o;4705:58::-;;;;:::o;10724:707::-;2695:12;:10;:12::i;:::-;2685:22;;:6;;;;;;;;;;:22;;;2677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10788:11:::1;::::0;::::1;;;;;;;;10787:12;10779:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10874:42;10837:15;;:80;;;;;;;;;;;;;;;;;;10928:58;10945:4;10960:15;;;;;;;;;;;4390:1;4446:2;:13;;;;:::i;:::-;4433:10;:26;;;;:::i;:::-;10928:8;:58::i;:::-;11031:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11013:55;;;11077:4;11084:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11013:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10997:13;;:110;;;;;;;;;;;;;;;;;;11118:15;;;;;;;;;;;:31;;;11157:21;11188:4;11194:24;11212:4;11194:9;:24::i;:::-;11219:1;11221::::0;11223:7:::1;:5;:7::i;:::-;11231:15;11118:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11265:13;;;;;;;;;;;11258:29;;;11296:15;;;;;;;;;;;11314:14;11258:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11354:4;11340:11;;:18;;;;;;;;;;;;;;;;;;11383:4;11369:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11411:12;11398:10;:25;;;;10724:707::o:0;6236:143::-;6317:7;6344:11;:18;6356:5;6344:18;;;;;;;;;;;;;;;:27;6363:7;6344:27;;;;;;;;;;;;;;;;6337:34;;6236:143;;;;:::o;9725:233::-;9787:18;:32;9806:12;:10;:12::i;:::-;9787:32;;;;;;;;;;;;;;;;;;;;;;;;;9782:72;9836:7;9782:72;9864:16;9883:6;9864:25;;9918:32;9934:9;:15;9944:4;;;;;;;;;;;9934:15;;;;;;;;;;;;;;;;9918:11;:15;;:32;;;;:::i;:::-;9900:9;:15;9910:4;;;;;;;;;;;9900:15;;;;;;;;;;;;;;;:50;;;;9771:187;9725:233;;:::o;313:98::-;366:7;393:10;386:17;;313:98;:::o;6877:335::-;6987:1;6970:19;;:5;:19;;;6962:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7068:1;7049:21;;:7;:21;;;7041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7150:6;7120:11;:18;7132:5;7120:18;;;;;;;;;;;;;;;:27;7139:7;7120:27;;;;;;;;;;;;;;;:36;;;;7188:7;7172:32;;7181:5;7172:32;;;7197:6;7172:32;;;;;;:::i;:::-;;;;;;;;6877:335;;;:::o;7220:2184::-;7324:1;7308:18;;:4;:18;;;7300:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7401:1;7387:16;;:2;:16;;;7379:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7471:1;7462:6;:10;7454:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7529:17;7571:7;:5;:7::i;:::-;7563:15;;:4;:15;;;;:32;;;;;7588:7;:5;:7::i;:::-;7582:13;;:2;:13;;;;7563:32;7559:1485;;;7624:76;7696:3;7624:67;7646:15;;7636:9;;:25;7635:55;;7676:14;;7635:55;;;7663:12;;7635:55;7624:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7612:88;;7729:13;;;;;;;;;;;7721:21;;:4;:21;;;:55;;;;;7760:15;;;;;;;;;;;7746:30;;:2;:30;;;;7721:55;:83;;;;;7782:18;:22;7801:2;7782:22;;;;;;;;;;;;;;;;;;;;;;;;;7780:24;7721:83;7717:436;;;7844:12;;7834:6;:22;;7826:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7939:14;;7929:6;7913:13;7923:2;7913:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7905:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8027:12;8022:1;8009:10;;:14;;;;:::i;:::-;:30;8005:103;;;8073:14;8084:2;8073:10;:14::i;:::-;8072:15;8064:24;;;;;;8005:103;8126:9;;:11;;;;;;;;;:::i;:::-;;;;;;7717:436;8179:13;;;;;;;;;;;8173:19;;:2;:19;;;;:47;;;;;8198:18;:22;8217:2;8198:22;;;;;;;;;;;;;;;;;;;;;;;;;8196:24;8173:47;8169:167;;;8275:14;;8265:6;8249:13;8259:2;8249:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8241:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8169:167;8361:13;;;;;;;;;;;8355:19;;:2;:19;;;:43;;;;;8393:4;8378:20;;:4;:20;;;;8355:43;8352:174;;;8431:79;8506:3;8431:70;8453:16;;8443:9;;:26;8442:58;;8485:15;;8442:58;;;8471:13;;8442:58;8431:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8419:91;;8352:174;8542:28;8573:24;8591:4;8573:9;:24::i;:::-;8542:55;;8617:6;;;;;;;;;;;8616:7;:32;;;;;8635:13;;;;;;;;;;;8627:21;;:2;:21;;;8616:32;:47;;;;;8652:11;;;;;;;;;;;8616:47;:89;;;;;8688:17;;8667:20;:38;8616:89;:121;;;;;8719:18;;8709:9;;:28;8616:121;8612:421;;;8758:67;8775:49;8779:6;8786:37;8790:20;8811:11;;8786:3;:37::i;:::-;8775:3;:49::i;:::-;8758:16;:67::i;:::-;8844:26;8873:21;8844:50;;8937:1;8916:18;:22;8913:105;;;8963:35;8976:21;8963:12;:35::i;:::-;8913:105;8739:294;8612:421;7597:1447;7559:1485;9069:1;9059:9;:11;9056:165;;;9111:39;9140:9;9111;:24;9129:4;9111:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9086:9;:24;9104:4;9086:24;;;;;;;;;;;;;;;:64;;;;9193:4;9170:39;;9179:4;9170:39;;;9199:9;9170:39;;;;;;:::i;:::-;;;;;;;;9056:165;9247:27;9267:6;9247:9;:15;9257:4;9247:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9231:9;:15;9241:4;9231:15;;;;;;;;;;;;;;;:43;;;;9299:40;9317:21;9328:9;9317:6;:10;;:21;;;;:::i;:::-;9299:9;:13;9309:2;9299:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9285:9;:13;9295:2;9285:13;;;;;;;;;;;;;;;:54;;;;9370:2;9355:41;;9364:4;9355:41;;;9374:21;9385:9;9374:6;:10;;:21;;;;:::i;:::-;9355:41;;;;;;:::i;:::-;;;;;;;;7289:2115;7220:2184;;;:::o;1450:190::-;1536:7;1569:1;1564;:6;;1572:12;1556:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1596:9;1612:1;1608;:5;;;;:::i;:::-;1596:17;;1631:1;1624:8;;;1450:190;;;;;:::o;1306:136::-;1364:7;1391:43;1395:1;1398;1391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1384:50;;1306:136;;;;:::o;1648:246::-;1706:7;1735:1;1730;:6;1726:47;;1760:1;1753:8;;;;1726:47;1783:9;1799:1;1795;:5;;;;:::i;:::-;1783:17;;1828:1;1823;1819;:5;;;;:::i;:::-;:10;1811:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1885:1;1878:8;;;1648:246;;;;;:::o;1902:132::-;1960:7;1987:39;1991:1;1994;1987:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1980:46;;1902:132;;;;:::o;9522:195::-;9581:4;9598:12;9665:7;9653:20;9645:28;;9708:1;9701:4;:8;9694:15;;;9522:195;;;:::o;9414:100::-;9471:7;9500:1;9498;:3;9497:9;;9505:1;9497:9;;;9503:1;9497:9;9490:16;;9414:100;;;;:::o;9966:483::-;5140:4;5131:6;;:13;;;;;;;;;;;;;;;;;;10044:21:::1;10082:1;10068:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10044:40;;10113:4;10095;10100:1;10095:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10139:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10129:4;10134:1;10129:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10172:62;10189:4;10204:15;;;;;;;;;;;10222:11;10172:8;:62::i;:::-;10245:15;;;;;;;;;;;:66;;;10326:11;10352:1;10368:4;10395;10415:15;10245:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10033:416;5176:5:::0;5167:6;;:14;;;;;;;;;;;;;;;;;;9966:483;:::o;10624:92::-;10681:10;;;;;;;;;;;:19;;:27;10701:6;10681:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10624:92;:::o;1119:179::-;1177:7;1197:9;1213:1;1209;:5;;;;:::i;:::-;1197:17;;1238:1;1233;:6;;1225:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1289:1;1282:8;;;1119:179;;;;:::o;2042:189::-;2128:7;2160:1;2156;:5;2163:12;2148:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2187:9;2203:1;2199;:5;;;;:::i;:::-;2187:17;;2222:1;2215:8;;;2042:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;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:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:102;6631:8;6678:5;6675:1;6671:13;6650:34;;6589:102;;;:::o;6697:848::-;6758:5;6765:4;6789:6;6780:15;;6813:5;6804:14;;6827:712;6848:1;6838:8;6835:15;6827:712;;;6943:4;6938:3;6934:14;6928:4;6925:24;6922:50;;;6952:18;;:::i;:::-;6922:50;7002:1;6992:8;6988:16;6985:451;;;7417:4;7410:5;7406:16;7397:25;;6985:451;7467:4;7461;7457:15;7449:23;;7497:32;7520:8;7497:32;:::i;:::-;7485:44;;6827:712;;;6697:848;;;;;;;:::o;7551:1073::-;7605:5;7796:8;7786:40;;7817:1;7808:10;;7819:5;;7786:40;7845:4;7835:36;;7862:1;7853:10;;7864:5;;7835:36;7931:4;7979:1;7974:27;;;;8015:1;8010:191;;;;7924:277;;7974:27;7992:1;7983:10;;7994:5;;;8010:191;8055:3;8045:8;8042:17;8039:43;;;8062:18;;:::i;:::-;8039:43;8111:8;8108:1;8104:16;8095:25;;8146:3;8139:5;8136:14;8133:40;;;8153:18;;:::i;:::-;8133:40;8186:5;;;7924:277;;8310:2;8300:8;8297:16;8291:3;8285:4;8282:13;8278:36;8260:2;8250:8;8247:16;8242:2;8236:4;8233:12;8229:35;8213:111;8210:246;;;8366:8;8360:4;8356:19;8347:28;;8401:3;8394:5;8391:14;8388:40;;;8408:18;;:::i;:::-;8388:40;8441:5;;8210:246;8481:42;8519:3;8509:8;8503:4;8500:1;8481:42;:::i;:::-;8466:57;;;;8555:4;8550:3;8546:14;8539:5;8536:25;8533:51;;;8564:18;;:::i;:::-;8533:51;8613:4;8606:5;8602:16;8593:25;;7551:1073;;;;;;:::o;8630:281::-;8688:5;8712:23;8730:4;8712:23;:::i;:::-;8704:31;;8756:25;8772:8;8756:25;:::i;:::-;8744:37;;8800:104;8837:66;8827:8;8821:4;8800:104;:::i;:::-;8791:113;;8630:281;;;;:::o;8917:348::-;8957:7;8980:20;8998:1;8980:20;:::i;:::-;8975:25;;9014:20;9032:1;9014:20;:::i;:::-;9009:25;;9202:1;9134:66;9130:74;9127:1;9124:81;9119:1;9112:9;9105:17;9101:105;9098:131;;;9209:18;;:::i;:::-;9098:131;9257:1;9254;9250:9;9239:20;;8917:348;;;;:::o;9271:182::-;9411:34;9407:1;9399:6;9395:14;9388:58;9271:182;:::o;9459:366::-;9601:3;9622:67;9686:2;9681:3;9622:67;:::i;:::-;9615:74;;9698:93;9787:3;9698:93;:::i;:::-;9816:2;9811:3;9807:12;9800:19;;9459:366;;;:::o;9831:419::-;9997:4;10035:2;10024:9;10020:18;10012:26;;10084:9;10078:4;10074:20;10070:1;10059:9;10055:17;10048:47;10112:131;10238:4;10112:131;:::i;:::-;10104:139;;9831:419;;;:::o;10256:173::-;10396:25;10392:1;10384:6;10380:14;10373:49;10256:173;:::o;10435:366::-;10577:3;10598:67;10662:2;10657:3;10598:67;:::i;:::-;10591:74;;10674:93;10763:3;10674:93;:::i;:::-;10792:2;10787:3;10783:12;10776:19;;10435:366;;;:::o;10807:419::-;10973:4;11011:2;11000:9;10996:18;10988:26;;11060:9;11054:4;11050:20;11046:1;11035:9;11031:17;11024:47;11088:131;11214:4;11088:131;:::i;:::-;11080:139;;10807:419;;;:::o;11232:143::-;11289:5;11320:6;11314:13;11305:22;;11336:33;11363:5;11336:33;:::i;:::-;11232:143;;;;:::o;11381:351::-;11451:6;11500:2;11488:9;11479:7;11475:23;11471:32;11468:119;;;11506:79;;:::i;:::-;11468:119;11626:1;11651:64;11707:7;11698:6;11687:9;11683:22;11651:64;:::i;:::-;11641:74;;11597:128;11381:351;;;;:::o;11738:332::-;11859:4;11897:2;11886:9;11882:18;11874:26;;11910:71;11978:1;11967:9;11963:17;11954:6;11910:71;:::i;:::-;11991:72;12059:2;12048:9;12044:18;12035:6;11991:72;:::i;:::-;11738:332;;;;;:::o;12076:85::-;12121:7;12150:5;12139:16;;12076:85;;;:::o;12167:60::-;12195:3;12216:5;12209:12;;12167:60;;;:::o;12233:158::-;12291:9;12324:61;12342:42;12351:32;12377:5;12351:32;:::i;:::-;12342:42;:::i;:::-;12324:61;:::i;:::-;12311:74;;12233:158;;;:::o;12397:147::-;12492:45;12531:5;12492:45;:::i;:::-;12487:3;12480:58;12397:147;;:::o;12550:807::-;12799:4;12837:3;12826:9;12822:19;12814:27;;12851:71;12919:1;12908:9;12904:17;12895:6;12851:71;:::i;:::-;12932:72;13000:2;12989:9;12985:18;12976:6;12932:72;:::i;:::-;13014:80;13090:2;13079:9;13075:18;13066:6;13014:80;:::i;:::-;13104;13180:2;13169:9;13165:18;13156:6;13104:80;:::i;:::-;13194:73;13262:3;13251:9;13247:19;13238:6;13194:73;:::i;:::-;13277;13345:3;13334:9;13330:19;13321:6;13277:73;:::i;:::-;12550:807;;;;;;;;;:::o;13363:143::-;13420:5;13451:6;13445:13;13436:22;;13467:33;13494:5;13467:33;:::i;:::-;13363:143;;;;:::o;13512:663::-;13600:6;13608;13616;13665:2;13653:9;13644:7;13640:23;13636:32;13633:119;;;13671:79;;:::i;:::-;13633:119;13791:1;13816:64;13872:7;13863:6;13852:9;13848:22;13816:64;:::i;:::-;13806:74;;13762:128;13929:2;13955:64;14011:7;14002:6;13991:9;13987:22;13955:64;:::i;:::-;13945:74;;13900:129;14068:2;14094:64;14150:7;14141:6;14130:9;14126:22;14094:64;:::i;:::-;14084:74;;14039:129;13512:663;;;;;:::o;14181:332::-;14302:4;14340:2;14329:9;14325:18;14317:26;;14353:71;14421:1;14410:9;14406:17;14397:6;14353:71;:::i;:::-;14434:72;14502:2;14491:9;14487:18;14478:6;14434:72;:::i;:::-;14181:332;;;;;:::o;14519:116::-;14589:21;14604:5;14589:21;:::i;:::-;14582:5;14579:32;14569:60;;14625:1;14622;14615:12;14569:60;14519:116;:::o;14641:137::-;14695:5;14726:6;14720:13;14711:22;;14742:30;14766:5;14742:30;:::i;:::-;14641:137;;;;:::o;14784:345::-;14851:6;14900:2;14888:9;14879:7;14875:23;14871:32;14868:119;;;14906:79;;:::i;:::-;14868:119;15026:1;15051:61;15104:7;15095:6;15084:9;15080:22;15051:61;:::i;:::-;15041:71;;14997:125;14784:345;;;;:::o;15135:223::-;15275:34;15271:1;15263:6;15259:14;15252:58;15344:6;15339:2;15331:6;15327:15;15320:31;15135:223;:::o;15364:366::-;15506:3;15527:67;15591:2;15586:3;15527:67;:::i;:::-;15520:74;;15603:93;15692:3;15603:93;:::i;:::-;15721:2;15716:3;15712:12;15705:19;;15364:366;;;:::o;15736:419::-;15902:4;15940:2;15929:9;15925:18;15917:26;;15989:9;15983:4;15979:20;15975:1;15964:9;15960:17;15953:47;16017:131;16143:4;16017:131;:::i;:::-;16009:139;;15736:419;;;:::o;16161:221::-;16301:34;16297:1;16289:6;16285:14;16278:58;16370:4;16365:2;16357:6;16353:15;16346:29;16161:221;:::o;16388:366::-;16530:3;16551:67;16615:2;16610:3;16551:67;:::i;:::-;16544:74;;16627:93;16716:3;16627:93;:::i;:::-;16745:2;16740:3;16736:12;16729:19;;16388:366;;;:::o;16760:419::-;16926:4;16964:2;16953:9;16949:18;16941:26;;17013:9;17007:4;17003:20;16999:1;16988:9;16984:17;16977:47;17041:131;17167:4;17041:131;:::i;:::-;17033:139;;16760:419;;;:::o;17185:224::-;17325:34;17321:1;17313:6;17309:14;17302:58;17394:7;17389:2;17381:6;17377:15;17370:32;17185:224;:::o;17415:366::-;17557:3;17578:67;17642:2;17637:3;17578:67;:::i;:::-;17571:74;;17654:93;17743:3;17654:93;:::i;:::-;17772:2;17767:3;17763:12;17756:19;;17415:366;;;:::o;17787:419::-;17953:4;17991:2;17980:9;17976:18;17968:26;;18040:9;18034:4;18030:20;18026:1;18015:9;18011:17;18004:47;18068:131;18194:4;18068:131;:::i;:::-;18060:139;;17787:419;;;:::o;18212:222::-;18352:34;18348:1;18340:6;18336:14;18329:58;18421:5;18416:2;18408:6;18404:15;18397:30;18212:222;:::o;18440:366::-;18582:3;18603:67;18667:2;18662:3;18603:67;:::i;:::-;18596:74;;18679:93;18768:3;18679:93;:::i;:::-;18797:2;18792:3;18788:12;18781:19;;18440:366;;;:::o;18812:419::-;18978:4;19016:2;19005:9;19001:18;18993:26;;19065:9;19059:4;19055:20;19051:1;19040:9;19036:17;19029:47;19093:131;19219:4;19093:131;:::i;:::-;19085:139;;18812:419;;;:::o;19237:228::-;19377:34;19373:1;19365:6;19361:14;19354:58;19446:11;19441:2;19433:6;19429:15;19422:36;19237:228;:::o;19471:366::-;19613:3;19634:67;19698:2;19693:3;19634:67;:::i;:::-;19627:74;;19710:93;19799:3;19710:93;:::i;:::-;19828:2;19823:3;19819:12;19812:19;;19471:366;;;:::o;19843:419::-;20009:4;20047:2;20036:9;20032:18;20024:26;;20096:9;20090:4;20086:20;20082:1;20071:9;20067:17;20060:47;20124:131;20250:4;20124:131;:::i;:::-;20116:139;;19843:419;;;:::o;20268:175::-;20408:27;20404:1;20396:6;20392:14;20385:51;20268:175;:::o;20449:366::-;20591:3;20612:67;20676:2;20671:3;20612:67;:::i;:::-;20605:74;;20688:93;20777:3;20688:93;:::i;:::-;20806:2;20801:3;20797:12;20790:19;;20449:366;;;:::o;20821:419::-;20987:4;21025:2;21014:9;21010:18;21002:26;;21074:9;21068:4;21064:20;21060:1;21049:9;21045:17;21038:47;21102:131;21228:4;21102:131;:::i;:::-;21094:139;;20821:419;;;:::o;21246:305::-;21286:3;21305:20;21323:1;21305:20;:::i;:::-;21300:25;;21339:20;21357:1;21339:20;:::i;:::-;21334:25;;21493:1;21425:66;21421:74;21418:1;21415:81;21412:107;;;21499:18;;:::i;:::-;21412:107;21543:1;21540;21536:9;21529:16;;21246:305;;;;:::o;21557:176::-;21697:28;21693:1;21685:6;21681:14;21674:52;21557:176;:::o;21739:366::-;21881:3;21902:67;21966:2;21961:3;21902:67;:::i;:::-;21895:74;;21978:93;22067:3;21978:93;:::i;:::-;22096:2;22091:3;22087:12;22080:19;;21739:366;;;:::o;22111:419::-;22277:4;22315:2;22304:9;22300:18;22292:26;;22364:9;22358:4;22354:20;22350:1;22339:9;22335:17;22328:47;22392:131;22518:4;22392:131;:::i;:::-;22384:139;;22111:419;;;:::o;22536:233::-;22575:3;22598:24;22616:5;22598:24;:::i;:::-;22589:33;;22644:66;22637:5;22634:77;22631:103;;22714:18;;:::i;:::-;22631:103;22761:1;22754:5;22750:13;22743:20;;22536:233;;;:::o;22775:191::-;22815:4;22835:20;22853:1;22835:20;:::i;:::-;22830:25;;22869:20;22887:1;22869:20;:::i;:::-;22864:25;;22908:1;22905;22902:8;22899:34;;;22913:18;;:::i;:::-;22899:34;22958:1;22955;22951:9;22943:17;;22775:191;;;;:::o;22972:180::-;23020:77;23017:1;23010:88;23117:4;23114:1;23107:15;23141:4;23138:1;23131:15;23158:185;23198:1;23215:20;23233:1;23215:20;:::i;:::-;23210:25;;23249:20;23267:1;23249:20;:::i;:::-;23244:25;;23288:1;23278:35;;23293:18;;:::i;:::-;23278:35;23335:1;23332;23328:9;23323:14;;23158:185;;;;:::o;23349:220::-;23489:34;23485:1;23477:6;23473:14;23466:58;23558:3;23553:2;23545:6;23541:15;23534:28;23349:220;:::o;23575:366::-;23717:3;23738:67;23802:2;23797:3;23738:67;:::i;:::-;23731:74;;23814:93;23903:3;23814:93;:::i;:::-;23932:2;23927:3;23923:12;23916:19;;23575:366;;;:::o;23947:419::-;24113:4;24151:2;24140:9;24136:18;24128:26;;24200:9;24194:4;24190:20;24186:1;24175:9;24171:17;24164:47;24228:131;24354:4;24228:131;:::i;:::-;24220:139;;23947:419;;;:::o;24372:180::-;24420:77;24417:1;24410:88;24517:4;24514:1;24507:15;24541:4;24538:1;24531:15;24558:180;24606:77;24603:1;24596:88;24703:4;24700:1;24693:15;24727:4;24724:1;24717:15;24744:114;24811:6;24845:5;24839:12;24829:22;;24744:114;;;:::o;24864:184::-;24963:11;24997:6;24992:3;24985:19;25037:4;25032:3;25028:14;25013:29;;24864:184;;;;:::o;25054:132::-;25121:4;25144:3;25136:11;;25174:4;25169:3;25165:14;25157:22;;25054:132;;;:::o;25192:108::-;25269:24;25287:5;25269:24;:::i;:::-;25264:3;25257:37;25192:108;;:::o;25306:179::-;25375:10;25396:46;25438:3;25430:6;25396:46;:::i;:::-;25474:4;25469:3;25465:14;25451:28;;25306:179;;;;:::o;25491:113::-;25561:4;25593;25588:3;25584:14;25576:22;;25491:113;;;:::o;25640:732::-;25759:3;25788:54;25836:5;25788:54;:::i;:::-;25858:86;25937:6;25932:3;25858:86;:::i;:::-;25851:93;;25968:56;26018:5;25968:56;:::i;:::-;26047:7;26078:1;26063:284;26088:6;26085:1;26082:13;26063:284;;;26164:6;26158:13;26191:63;26250:3;26235:13;26191:63;:::i;:::-;26184:70;;26277:60;26330:6;26277:60;:::i;:::-;26267:70;;26123:224;26110:1;26107;26103:9;26098:14;;26063:284;;;26067:14;26363:3;26356:10;;25764:608;;;25640:732;;;;:::o;26378:831::-;26641:4;26679:3;26668:9;26664:19;26656:27;;26693:71;26761:1;26750:9;26746:17;26737:6;26693:71;:::i;:::-;26774:80;26850:2;26839:9;26835:18;26826:6;26774:80;:::i;:::-;26901:9;26895:4;26891:20;26886:2;26875:9;26871:18;26864:48;26929:108;27032:4;27023:6;26929:108;:::i;:::-;26921:116;;27047:72;27115:2;27104:9;27100:18;27091:6;27047:72;:::i;:::-;27129:73;27197:3;27186:9;27182:19;27173:6;27129:73;:::i;:::-;26378:831;;;;;;;;:::o;27215:177::-;27355:29;27351:1;27343:6;27339:14;27332:53;27215:177;:::o;27398:366::-;27540:3;27561:67;27625:2;27620:3;27561:67;:::i;:::-;27554:74;;27637:93;27726:3;27637:93;:::i;:::-;27755:2;27750:3;27746:12;27739:19;;27398:366;;;:::o;27770:419::-;27936:4;27974:2;27963:9;27959:18;27951:26;;28023:9;28017:4;28013:20;28009:1;27998:9;27994:17;27987:47;28051:131;28177:4;28051:131;:::i;:::-;28043:139;;27770:419;;;:::o

Swarm Source

ipfs://cbdaa8df851cafb3efb323f192661224f668aa9a9955bde6ad556d15aa99e6f7

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.