ETH Price: $3,419.38 (-1.64%)
Gas: 8 Gwei

Contract

0x7866465296b2F887F2a50b84c23985DafCc77d42
 

Overview

ETH Balance

0.034284914861009841 ETH

Eth Value

$117.23 (@ $3,419.38/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202718052024-07-09 22:05:357 days ago1720562735IN
0x78664652...afCc77d42
0 ETH0.000212064.51539532
Transfer198542682024-05-12 13:34:4766 days ago1715520887IN
0x78664652...afCc77d42
0 ETH0.000282443.96331128
Approve197231522024-04-24 5:27:1184 days ago1713936431IN
0x78664652...afCc77d42
0 ETH0.000242758.07666069
Approve197230652024-04-24 5:09:4784 days ago1713935387IN
0x78664652...afCc77d42
0 ETH0.000438339.34769429
Approve195916292024-04-05 19:30:35102 days ago1712345435IN
0x78664652...afCc77d42
0 ETH0.0004485418.03413548
Approve193455652024-03-02 6:02:23137 days ago1709359343IN
0x78664652...afCc77d42
0 ETH0.0020868744.48109762
Approve190751052024-01-24 7:47:59175 days ago1706082479IN
0x78664652...afCc77d42
0 ETH0.00042599.03189573
Approve189802752024-01-11 0:59:47188 days ago1704934787IN
0x78664652...afCc77d42
0 ETH0.0029615162.72260093
Approve187743102023-12-13 2:35:35217 days ago1702434935IN
0x78664652...afCc77d42
0 ETH0.002594954.95812372
Approve187536582023-12-10 5:14:47220 days ago1702185287IN
0x78664652...afCc77d42
0 ETH0.0010199621.60215552
Approve187401802023-12-08 7:54:23222 days ago1702022063IN
0x78664652...afCc77d42
0 ETH0.001742736.95606884
Approve187080372023-12-03 19:47:59226 days ago1701632879IN
0x78664652...afCc77d42
0 ETH0.0016844935.67640073
Approve187059582023-12-03 12:47:23227 days ago1701607643IN
0x78664652...afCc77d42
0 ETH0.0013895529.46710757
Approve186558082023-11-26 12:20:11234 days ago1701001211IN
0x78664652...afCc77d42
0 ETH0.0005225319.31609228
Approve186558042023-11-26 12:19:23234 days ago1701001163IN
0x78664652...afCc77d42
0 ETH0.0006109820.46704663
Approve186477842023-11-25 9:21:47235 days ago1700904107IN
0x78664652...afCc77d42
0 ETH0.0011121923.6818347
Approve186403662023-11-24 8:26:59236 days ago1700814419IN
0x78664652...afCc77d42
0 ETH0.0013947829.57800867
Approve186365812023-11-23 19:41:11236 days ago1700768471IN
0x78664652...afCc77d42
0 ETH0.0014531630.7769975
Approve186351412023-11-23 14:50:59237 days ago1700751059IN
0x78664652...afCc77d42
0 ETH0.0017443337.18945131
Approve186339502023-11-23 10:51:35237 days ago1700736695IN
0x78664652...afCc77d42
0 ETH0.0015581233
Approve186339252023-11-23 10:46:35237 days ago1700736395IN
0x78664652...afCc77d42
0 ETH0.0011689624.78931801
Approve186323302023-11-23 5:24:59237 days ago1700717099IN
0x78664652...afCc77d42
0 ETH0.0014000429.65193525
Approve186315442023-11-23 2:46:47237 days ago1700707607IN
0x78664652...afCc77d42
0 ETH0.0015454732.77361544
Approve186308042023-11-23 0:17:47237 days ago1700698667IN
0x78664652...afCc77d42
0 ETH0.0015931833.78545101
Approve186296642023-11-22 20:28:47237 days ago1700684927IN
0x78664652...afCc77d42
0 ETH0.0017858837.82379229
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
190751072024-01-24 7:48:23175 days ago1706082503
0x78664652...afCc77d42
0.00269087 ETH
186324922023-11-23 5:58:23237 days ago1700719103
0x78664652...afCc77d42
0.00330778 ETH
186252442023-11-22 5:37:11238 days ago1700631431
0x78664652...afCc77d42
0.00429886 ETH
186223472023-11-21 19:53:23238 days ago1700596403
0x78664652...afCc77d42
0.00530598 ETH
186220792023-11-21 18:59:23239 days ago1700593163
0x78664652...afCc77d42
0.01064646 ETH
186202602023-11-21 12:53:47239 days ago1700571227
0x78664652...afCc77d42
0.00803493 ETH
186195022023-11-21 10:20:11239 days ago1700562011
0x78664652...afCc77d42
0.05133592 ETH
186195022023-11-21 10:20:11239 days ago1700562011
0x78664652...afCc77d42
0.01370357 ETH
186184212023-11-21 6:41:35239 days ago1700548895
0x78664652...afCc77d42
0.01858214 ETH
186172542023-11-21 2:46:23239 days ago1700534783
0x78664652...afCc77d42
0.01905019 ETH
186168682023-11-21 1:29:11239 days ago1700530151
0x78664652...afCc77d42
0.05366702 ETH
186168682023-11-21 1:29:11239 days ago1700530151
0x78664652...afCc77d42
0.03470481 ETH
186163452023-11-20 23:42:59239 days ago1700523779
0x78664652...afCc77d42
0.01896221 ETH
186158982023-11-20 22:13:11239 days ago1700518391
0x78664652...afCc77d42
0.07469561 ETH
186158982023-11-20 22:13:11239 days ago1700518391
0x78664652...afCc77d42
0.04620978 ETH
186155322023-11-20 20:59:11239 days ago1700513951
0x78664652...afCc77d42
0.02848583 ETH
186152442023-11-20 20:00:59239 days ago1700510459
0x78664652...afCc77d42
0.05989698 ETH
186152442023-11-20 20:00:59239 days ago1700510459
0x78664652...afCc77d42
0.0345855 ETH
186147852023-11-20 18:28:35240 days ago1700504915
0x78664652...afCc77d42
0.02531147 ETH
186146962023-11-20 18:10:47240 days ago1700503847
0x78664652...afCc77d42
0.06580964 ETH
186146962023-11-20 18:10:47240 days ago1700503847
0x78664652...afCc77d42
0.01862641 ETH
186143612023-11-20 17:03:47240 days ago1700499827
0x78664652...afCc77d42
0.01528675 ETH
186139602023-11-20 15:42:23240 days ago1700494943
0x78664652...afCc77d42
0.01547581 ETH
186137842023-11-20 15:06:47240 days ago1700492807
0x78664652...afCc77d42
0.01642066 ETH
186136622023-11-20 14:41:59240 days ago1700491319
0x78664652...afCc77d42
0.05573688 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QQC

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-20
*/

// SPDX-License-Identifier:MIT
/* Telegram: https://t.me/QuantumQuoakkaCoin
 
Website: https://www.quantumquoakkacoin.vip/
 
X: https://twitter.com/QuoakkaCoin
*/
pragma solidity ^0.8.8;
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 QQC 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
 
    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=19;
    uint256 private _buyCount=0;
 
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 7000000000 * 10**_decimals;
    string private constant _name = unicode"Quantum Quoakka Coin";
    string private constant _symbol = unicode"QQC";
    uint256 public _maxTxAmount = 140000000 * 10**_decimals;
    uint256 public _maxWalletSize = 140000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 7000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 70000000 * 10**_decimals;
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor () {
        _taxWallet = payable(0xa75b6914e26CBbF3c5a8d7EBAcB263264e00DBE5);
        _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 (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }
 
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
 
            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 > 50000000000000000) {
                    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 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;
        transferDelayEnabled=false;
        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;
    }
 
    receive() external payable {}
 
    function ManualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>3000000000000000000){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526001600560006101000a81548160ff02191690831515021790555060126006556014600755600160085560016009556014600a556019600b556013600c556000600d556012600a62000057919062000635565b6308583b0062000068919062000686565b600e556012600a6200007b919062000635565b6308583b006200008c919062000686565b600f556012600a6200009f919062000635565b626acfc0620000af919062000686565b6010556012600a620000c2919062000635565b63042c1d80620000d3919062000686565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011957600080fd5b5060006200012c6200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a75b6914e26cbbf3c5a8d7ebacb263264e00dbe5600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200022f919062000635565b6401a13b860062000241919062000686565b60016000620002556200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a96200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200043b919062000635565b6401a13b86006200044d919062000686565b6040516200045c9190620006f8565b60405180910390a362000715565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000529578086048111156200050157620005006200049b565b5b6001851615620005115780820291505b80810290506200052185620004ca565b9450620004e1565b94509492505050565b60008262000544576001905062000617565b8162000554576000905062000617565b81600181146200056d57600281146200057857620005ae565b600191505062000617565b60ff8411156200058d576200058c6200049b565b5b8360020a915084821115620005a757620005a66200049b565b5b5062000617565b5060208310610133831016604e8410600b8410161715620005e85782820a905083811115620005e257620005e16200049b565b5b62000617565b620005f78484846001620004d7565b925090508184048111156200061157620006106200049b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000642826200061e565b91506200064f8362000628565b92506200067e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000532565b905092915050565b600062000693826200061e565b9150620006a0836200061e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006dc57620006db6200049b565b5b828202905092915050565b620006f2816200061e565b82525050565b60006020820190506200070f6000830184620006e7565b92915050565b61311b80620007256000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610378578063bf474bed146103b5578063c876d0b9146103e0578063c9567bf91461040b578063dd62ed3e146104225761011f565b80637d1db4a5146102b55780638da5cb5b146102e05780638f9a55c01461030b57806395d89b4114610336578063a1780c18146103615761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a614610287578063751039fc1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045f565b6040516101469190612156565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612211565b61049c565b604051610183919061226c565b60405180910390f35b34801561019857600080fd5b506101a16104ba565b6040516101ae9190612296565b60405180910390f35b3480156101c357600080fd5b506101cc6104c0565b6040516101d99190612296565b60405180910390f35b3480156101ee57600080fd5b50610209600480360381019061020491906122b1565b6104e5565b604051610216919061226c565b60405180910390f35b34801561022b57600080fd5b506102346105be565b6040516102419190612320565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061233b565b6105c7565b60405161027e9190612296565b60405180910390f35b34801561029357600080fd5b5061029c610610565b005b3480156102aa57600080fd5b506102b3610763565b005b3480156102c157600080fd5b506102ca6108b1565b6040516102d79190612296565b60405180910390f35b3480156102ec57600080fd5b506102f56108b7565b6040516103029190612377565b60405180910390f35b34801561031757600080fd5b506103206108e0565b60405161032d9190612296565b60405180910390f35b34801561034257600080fd5b5061034b6108e6565b6040516103589190612156565b60405180910390f35b34801561036d57600080fd5b50610376610923565b005b34801561038457600080fd5b5061039f600480360381019061039a9190612211565b6109c7565b6040516103ac919061226c565b60405180910390f35b3480156103c157600080fd5b506103ca6109e5565b6040516103d79190612296565b60405180910390f35b3480156103ec57600080fd5b506103f56109eb565b604051610402919061226c565b60405180910390f35b34801561041757600080fd5b506104206109fe565b005b34801561042e57600080fd5b5061044960048036038101906104449190612392565b610f82565b6040516104569190612296565b60405180910390f35b60606040518060400160405280601481526020017f5175616e74756d2051756f616b6b6120436f696e000000000000000000000000815250905090565b60006104b06104a9611009565b8484611011565b6001905092915050565b60115481565b60006012600a6104d09190612534565b6401a13b86006104e0919061257f565b905090565b60006104f28484846111dc565b6105b3846104fe611009565b6105ae856040518060600160405280602881526020016130be60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610564611009565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c9092919063ffffffff16565b611011565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610618611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612625565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076b611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90612625565b60405180910390fd5b6012600a6108069190612534565b6401a13b8600610816919061257f565b600e819055506012600a61082a9190612534565b6401a13b860061083a919061257f565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a61088a9190612534565b6401a13b860061089a919061257f565b6040516108a79190612296565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5151430000000000000000000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610964611009565b73ffffffffffffffffffffffffffffffffffffffff161461098457600080fd5b600061098f306105c7565b905060008111156109a4576109a381611be0565b5b60004790506729a2241af62c00008111156109c3576109c281611e68565b5b5050565b60006109db6109d4611009565b84846111dc565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610a06611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612625565b60405180910390fd5b601360149054906101000a900460ff1615610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90612691565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b8230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b6d9190612534565b6401a13b8600610b7d919061257f565b611011565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bea57600080fd5b505afa158015610bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2291906126c6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca657600080fd5b505afa158015610cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cde91906126c6565b6040518363ffffffff1660e01b8152600401610cfb9291906126f3565b602060405180830381600087803b158015610d1557600080fd5b505af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d91906126c6565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd6306105c7565b600080610de16108b7565b426040518863ffffffff1660e01b8152600401610e0396959493929190612761565b6060604051808303818588803b158015610e1c57600080fd5b505af1158015610e30573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5591906127d7565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ef792919061282a565b602060405180830381600087803b158015610f1157600080fd5b505af1158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f49919061287f565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110789061291e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906129b0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111cf9190612296565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390612a42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b390612ad4565b60405180910390fd5b600081116112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690612b66565b60405180910390fd5b60006113096108b7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561137757506113476108b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118bf576113b860646113aa600a54600d54116113975760065461139b565b6008545b85611ed490919063ffffffff16565b611f4f90919063ffffffff16565b9050600560009054906101000a900460ff161561154757601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561147b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115465743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890612c1e565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115f25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116485750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561170357600e54821115611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990612c8a565b60405180910390fd5b600f548261169f856105c7565b6116a99190612caa565b11156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190612d4c565b60405180910390fd5b600d60008154809291906116fd90612d6c565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117d0576117cd60646117bf600b54600d54116117ac576007546117b0565b6009545b85611ed490919063ffffffff16565b611f4f90919063ffffffff16565b90505b60006117db306105c7565b9050601360159054906101000a900460ff161580156118475750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185f5750601360169054906101000a900460ff165b801561186c575060105481115b801561187b5750600c54600d54115b156118bd5761189d6118988461189384601154611f99565b611f99565b611be0565b600047905066b1a2bc2ec500008111156118bb576118ba47611e68565b5b505b505b60008111156119c35761191a81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612296565b60405180910390a35b611a1582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611abc611a6e828461201090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b61848661201090919063ffffffff16565b604051611b6e9190612296565b60405180910390a350505050565b6000838311158290611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9190612156565b60405180910390fd5b5060008385611bd39190612db5565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1857611c17612de9565b5b604051908082528060200260200182016040528015611c465781602001602082028036833780820191505090505b5090503081600081518110611c5e57611c5d612e18565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d0057600080fd5b505afa158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3891906126c6565b81600181518110611d4c57611d4b612e18565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611db330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611011565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e17959493929190612f05565b600060405180830381600087803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ed0573d6000803e3d6000fd5b5050565b600080831415611ee75760009050611f49565b60008284611ef5919061257f565b9050828482611f049190612f8e565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90613031565b60405180910390fd5b809150505b92915050565b6000611f9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061205a565b905092915050565b6000818311611fa85782611faa565b815b905092915050565b6000808284611fc19190612caa565b905083811015612006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffd9061309d565b60405180910390fd5b8091505092915050565b600061205283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b7c565b905092915050565b600080831182906120a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120989190612156565b60405180910390fd5b50600083856120b09190612f8e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120f75780820151818401526020810190506120dc565b83811115612106576000848401525b50505050565b6000601f19601f8301169050919050565b6000612128826120bd565b61213281856120c8565b93506121428185602086016120d9565b61214b8161210c565b840191505092915050565b60006020820190508181036000830152612170818461211d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121a88261217d565b9050919050565b6121b88161219d565b81146121c357600080fd5b50565b6000813590506121d5816121af565b92915050565b6000819050919050565b6121ee816121db565b81146121f957600080fd5b50565b60008135905061220b816121e5565b92915050565b6000806040838503121561222857612227612178565b5b6000612236858286016121c6565b9250506020612247858286016121fc565b9150509250929050565b60008115159050919050565b61226681612251565b82525050565b6000602082019050612281600083018461225d565b92915050565b612290816121db565b82525050565b60006020820190506122ab6000830184612287565b92915050565b6000806000606084860312156122ca576122c9612178565b5b60006122d8868287016121c6565b93505060206122e9868287016121c6565b92505060406122fa868287016121fc565b9150509250925092565b600060ff82169050919050565b61231a81612304565b82525050565b60006020820190506123356000830184612311565b92915050565b60006020828403121561235157612350612178565b5b600061235f848285016121c6565b91505092915050565b6123718161219d565b82525050565b600060208201905061238c6000830184612368565b92915050565b600080604083850312156123a9576123a8612178565b5b60006123b7858286016121c6565b92505060206123c8858286016121c6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561245857808604811115612434576124336123d2565b5b60018516156124435780820291505b808102905061245185612401565b9450612418565b94509492505050565b600082612471576001905061252d565b8161247f576000905061252d565b8160018114612495576002811461249f576124ce565b600191505061252d565b60ff8411156124b1576124b06123d2565b5b8360020a9150848211156124c8576124c76123d2565b5b5061252d565b5060208310610133831016604e8410600b84101617156125035782820a9050838111156124fe576124fd6123d2565b5b61252d565b612510848484600161240e565b92509050818404811115612527576125266123d2565b5b81810290505b9392505050565b600061253f826121db565b915061254a83612304565b92506125777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612461565b905092915050565b600061258a826121db565b9150612595836121db565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125ce576125cd6123d2565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061260f6020836120c8565b915061261a826125d9565b602082019050919050565b6000602082019050818103600083015261263e81612602565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061267b6017836120c8565b915061268682612645565b602082019050919050565b600060208201905081810360008301526126aa8161266e565b9050919050565b6000815190506126c0816121af565b92915050565b6000602082840312156126dc576126db612178565b5b60006126ea848285016126b1565b91505092915050565b60006040820190506127086000830185612368565b6127156020830184612368565b9392505050565b6000819050919050565b6000819050919050565b600061274b6127466127418461271c565b612726565b6121db565b9050919050565b61275b81612730565b82525050565b600060c0820190506127766000830189612368565b6127836020830188612287565b6127906040830187612752565b61279d6060830186612752565b6127aa6080830185612368565b6127b760a0830184612287565b979650505050505050565b6000815190506127d1816121e5565b92915050565b6000806000606084860312156127f0576127ef612178565b5b60006127fe868287016127c2565b935050602061280f868287016127c2565b9250506040612820868287016127c2565b9150509250925092565b600060408201905061283f6000830185612368565b61284c6020830184612287565b9392505050565b61285c81612251565b811461286757600080fd5b50565b60008151905061287981612853565b92915050565b60006020828403121561289557612894612178565b5b60006128a38482850161286a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129086024836120c8565b9150612913826128ac565b604082019050919050565b60006020820190508181036000830152612937816128fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061299a6022836120c8565b91506129a58261293e565b604082019050919050565b600060208201905081810360008301526129c98161298d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a2c6025836120c8565b9150612a37826129d0565b604082019050919050565b60006020820190508181036000830152612a5b81612a1f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612abe6023836120c8565b9150612ac982612a62565b604082019050919050565b60006020820190508181036000830152612aed81612ab1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b506029836120c8565b9150612b5b82612af4565b604082019050919050565b60006020820190508181036000830152612b7f81612b43565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612c086049836120c8565b9150612c1382612b86565b606082019050919050565b60006020820190508181036000830152612c3781612bfb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612c746019836120c8565b9150612c7f82612c3e565b602082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b6000612cb5826121db565b9150612cc0836121db565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cf557612cf46123d2565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d36601a836120c8565b9150612d4182612d00565b602082019050919050565b60006020820190508181036000830152612d6581612d29565b9050919050565b6000612d77826121db565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612daa57612da96123d2565b5b600182019050919050565b6000612dc0826121db565b9150612dcb836121db565b925082821015612dde57612ddd6123d2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7c8161219d565b82525050565b6000612e8e8383612e73565b60208301905092915050565b6000602082019050919050565b6000612eb282612e47565b612ebc8185612e52565b9350612ec783612e63565b8060005b83811015612ef8578151612edf8882612e82565b9750612eea83612e9a565b925050600181019050612ecb565b5085935050505092915050565b600060a082019050612f1a6000830188612287565b612f276020830187612752565b8181036040830152612f398186612ea7565b9050612f486060830185612368565b612f556080830184612287565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f99826121db565b9150612fa4836121db565b925082612fb457612fb3612f5f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061301b6021836120c8565b915061302682612fbf565b604082019050919050565b6000602082019050818103600083015261304a8161300e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613087601b836120c8565b915061309282613051565b602082019050919050565b600060208201905081810360008301526130b68161307a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d2b4d328cdd8931fcf307b2f7689cc83112ee4adcfbf297e3030e335499f5da664736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610378578063bf474bed146103b5578063c876d0b9146103e0578063c9567bf91461040b578063dd62ed3e146104225761011f565b80637d1db4a5146102b55780638da5cb5b146102e05780638f9a55c01461030b57806395d89b4114610336578063a1780c18146103615761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f57806370a082311461024a578063715018a614610287578063751039fc1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045f565b6040516101469190612156565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612211565b61049c565b604051610183919061226c565b60405180910390f35b34801561019857600080fd5b506101a16104ba565b6040516101ae9190612296565b60405180910390f35b3480156101c357600080fd5b506101cc6104c0565b6040516101d99190612296565b60405180910390f35b3480156101ee57600080fd5b50610209600480360381019061020491906122b1565b6104e5565b604051610216919061226c565b60405180910390f35b34801561022b57600080fd5b506102346105be565b6040516102419190612320565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061233b565b6105c7565b60405161027e9190612296565b60405180910390f35b34801561029357600080fd5b5061029c610610565b005b3480156102aa57600080fd5b506102b3610763565b005b3480156102c157600080fd5b506102ca6108b1565b6040516102d79190612296565b60405180910390f35b3480156102ec57600080fd5b506102f56108b7565b6040516103029190612377565b60405180910390f35b34801561031757600080fd5b506103206108e0565b60405161032d9190612296565b60405180910390f35b34801561034257600080fd5b5061034b6108e6565b6040516103589190612156565b60405180910390f35b34801561036d57600080fd5b50610376610923565b005b34801561038457600080fd5b5061039f600480360381019061039a9190612211565b6109c7565b6040516103ac919061226c565b60405180910390f35b3480156103c157600080fd5b506103ca6109e5565b6040516103d79190612296565b60405180910390f35b3480156103ec57600080fd5b506103f56109eb565b604051610402919061226c565b60405180910390f35b34801561041757600080fd5b506104206109fe565b005b34801561042e57600080fd5b5061044960048036038101906104449190612392565b610f82565b6040516104569190612296565b60405180910390f35b60606040518060400160405280601481526020017f5175616e74756d2051756f616b6b6120436f696e000000000000000000000000815250905090565b60006104b06104a9611009565b8484611011565b6001905092915050565b60115481565b60006012600a6104d09190612534565b6401a13b86006104e0919061257f565b905090565b60006104f28484846111dc565b6105b3846104fe611009565b6105ae856040518060600160405280602881526020016130be60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610564611009565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c9092919063ffffffff16565b611011565b600190509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610618611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612625565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076b611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90612625565b60405180910390fd5b6012600a6108069190612534565b6401a13b8600610816919061257f565b600e819055506012600a61082a9190612534565b6401a13b860061083a919061257f565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a61088a9190612534565b6401a13b860061089a919061257f565b6040516108a79190612296565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5151430000000000000000000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610964611009565b73ffffffffffffffffffffffffffffffffffffffff161461098457600080fd5b600061098f306105c7565b905060008111156109a4576109a381611be0565b5b60004790506729a2241af62c00008111156109c3576109c281611e68565b5b5050565b60006109db6109d4611009565b84846111dc565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610a06611009565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612625565b60405180910390fd5b601360149054906101000a900460ff1615610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90612691565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b8230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b6d9190612534565b6401a13b8600610b7d919061257f565b611011565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bea57600080fd5b505afa158015610bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2291906126c6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca657600080fd5b505afa158015610cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cde91906126c6565b6040518363ffffffff1660e01b8152600401610cfb9291906126f3565b602060405180830381600087803b158015610d1557600080fd5b505af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d91906126c6565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd6306105c7565b600080610de16108b7565b426040518863ffffffff1660e01b8152600401610e0396959493929190612761565b6060604051808303818588803b158015610e1c57600080fd5b505af1158015610e30573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5591906127d7565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ef792919061282a565b602060405180830381600087803b158015610f1157600080fd5b505af1158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f49919061287f565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110789061291e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906129b0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111cf9190612296565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390612a42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b390612ad4565b60405180910390fd5b600081116112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690612b66565b60405180910390fd5b60006113096108b7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561137757506113476108b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118bf576113b860646113aa600a54600d54116113975760065461139b565b6008545b85611ed490919063ffffffff16565b611f4f90919063ffffffff16565b9050600560009054906101000a900460ff161561154757601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561147b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115465743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890612c1e565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115f25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116485750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561170357600e54821115611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990612c8a565b60405180910390fd5b600f548261169f856105c7565b6116a99190612caa565b11156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190612d4c565b60405180910390fd5b600d60008154809291906116fd90612d6c565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117d0576117cd60646117bf600b54600d54116117ac576007546117b0565b6009545b85611ed490919063ffffffff16565b611f4f90919063ffffffff16565b90505b60006117db306105c7565b9050601360159054906101000a900460ff161580156118475750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185f5750601360169054906101000a900460ff165b801561186c575060105481115b801561187b5750600c54600d54115b156118bd5761189d6118988461189384601154611f99565b611f99565b611be0565b600047905066b1a2bc2ec500008111156118bb576118ba47611e68565b5b505b505b60008111156119c35761191a81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612296565b60405180910390a35b611a1582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611abc611a6e828461201090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b61848661201090919063ffffffff16565b604051611b6e9190612296565b60405180910390a350505050565b6000838311158290611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9190612156565b60405180910390fd5b5060008385611bd39190612db5565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1857611c17612de9565b5b604051908082528060200260200182016040528015611c465781602001602082028036833780820191505090505b5090503081600081518110611c5e57611c5d612e18565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d0057600080fd5b505afa158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3891906126c6565b81600181518110611d4c57611d4b612e18565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611db330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611011565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e17959493929190612f05565b600060405180830381600087803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ed0573d6000803e3d6000fd5b5050565b600080831415611ee75760009050611f49565b60008284611ef5919061257f565b9050828482611f049190612f8e565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90613031565b60405180910390fd5b809150505b92915050565b6000611f9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061205a565b905092915050565b6000818311611fa85782611faa565b815b905092915050565b6000808284611fc19190612caa565b905083811015612006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffd9061309d565b60405180910390fd5b8091505092915050565b600061205283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b7c565b905092915050565b600080831182906120a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120989190612156565b60405180910390fd5b50600083856120b09190612f8e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120f75780820151818401526020810190506120dc565b83811115612106576000848401525b50505050565b6000601f19601f8301169050919050565b6000612128826120bd565b61213281856120c8565b93506121428185602086016120d9565b61214b8161210c565b840191505092915050565b60006020820190508181036000830152612170818461211d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121a88261217d565b9050919050565b6121b88161219d565b81146121c357600080fd5b50565b6000813590506121d5816121af565b92915050565b6000819050919050565b6121ee816121db565b81146121f957600080fd5b50565b60008135905061220b816121e5565b92915050565b6000806040838503121561222857612227612178565b5b6000612236858286016121c6565b9250506020612247858286016121fc565b9150509250929050565b60008115159050919050565b61226681612251565b82525050565b6000602082019050612281600083018461225d565b92915050565b612290816121db565b82525050565b60006020820190506122ab6000830184612287565b92915050565b6000806000606084860312156122ca576122c9612178565b5b60006122d8868287016121c6565b93505060206122e9868287016121c6565b92505060406122fa868287016121fc565b9150509250925092565b600060ff82169050919050565b61231a81612304565b82525050565b60006020820190506123356000830184612311565b92915050565b60006020828403121561235157612350612178565b5b600061235f848285016121c6565b91505092915050565b6123718161219d565b82525050565b600060208201905061238c6000830184612368565b92915050565b600080604083850312156123a9576123a8612178565b5b60006123b7858286016121c6565b92505060206123c8858286016121c6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561245857808604811115612434576124336123d2565b5b60018516156124435780820291505b808102905061245185612401565b9450612418565b94509492505050565b600082612471576001905061252d565b8161247f576000905061252d565b8160018114612495576002811461249f576124ce565b600191505061252d565b60ff8411156124b1576124b06123d2565b5b8360020a9150848211156124c8576124c76123d2565b5b5061252d565b5060208310610133831016604e8410600b84101617156125035782820a9050838111156124fe576124fd6123d2565b5b61252d565b612510848484600161240e565b92509050818404811115612527576125266123d2565b5b81810290505b9392505050565b600061253f826121db565b915061254a83612304565b92506125777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612461565b905092915050565b600061258a826121db565b9150612595836121db565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125ce576125cd6123d2565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061260f6020836120c8565b915061261a826125d9565b602082019050919050565b6000602082019050818103600083015261263e81612602565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061267b6017836120c8565b915061268682612645565b602082019050919050565b600060208201905081810360008301526126aa8161266e565b9050919050565b6000815190506126c0816121af565b92915050565b6000602082840312156126dc576126db612178565b5b60006126ea848285016126b1565b91505092915050565b60006040820190506127086000830185612368565b6127156020830184612368565b9392505050565b6000819050919050565b6000819050919050565b600061274b6127466127418461271c565b612726565b6121db565b9050919050565b61275b81612730565b82525050565b600060c0820190506127766000830189612368565b6127836020830188612287565b6127906040830187612752565b61279d6060830186612752565b6127aa6080830185612368565b6127b760a0830184612287565b979650505050505050565b6000815190506127d1816121e5565b92915050565b6000806000606084860312156127f0576127ef612178565b5b60006127fe868287016127c2565b935050602061280f868287016127c2565b9250506040612820868287016127c2565b9150509250925092565b600060408201905061283f6000830185612368565b61284c6020830184612287565b9392505050565b61285c81612251565b811461286757600080fd5b50565b60008151905061287981612853565b92915050565b60006020828403121561289557612894612178565b5b60006128a38482850161286a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129086024836120c8565b9150612913826128ac565b604082019050919050565b60006020820190508181036000830152612937816128fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061299a6022836120c8565b91506129a58261293e565b604082019050919050565b600060208201905081810360008301526129c98161298d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a2c6025836120c8565b9150612a37826129d0565b604082019050919050565b60006020820190508181036000830152612a5b81612a1f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612abe6023836120c8565b9150612ac982612a62565b604082019050919050565b60006020820190508181036000830152612aed81612ab1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b506029836120c8565b9150612b5b82612af4565b604082019050919050565b60006020820190508181036000830152612b7f81612b43565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612c086049836120c8565b9150612c1382612b86565b606082019050919050565b60006020820190508181036000830152612c3781612bfb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612c746019836120c8565b9150612c7f82612c3e565b602082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b6000612cb5826121db565b9150612cc0836121db565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cf557612cf46123d2565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d36601a836120c8565b9150612d4182612d00565b602082019050919050565b60006020820190508181036000830152612d6581612d29565b9050919050565b6000612d77826121db565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612daa57612da96123d2565b5b600182019050919050565b6000612dc0826121db565b9150612dcb836121db565b925082821015612dde57612ddd6123d2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7c8161219d565b82525050565b6000612e8e8383612e73565b60208301905092915050565b6000602082019050919050565b6000612eb282612e47565b612ebc8185612e52565b9350612ec783612e63565b8060005b83811015612ef8578151612edf8882612e82565b9750612eea83612e9a565b925050600181019050612ecb565b5085935050505092915050565b600060a082019050612f1a6000830188612287565b612f276020830187612752565b8181036040830152612f398186612ea7565b9050612f486060830185612368565b612f556080830184612287565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f99826121db565b9150612fa4836121db565b925082612fb457612fb3612f5f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061301b6021836120c8565b915061302682612fbf565b604082019050919050565b6000602082019050818103600083015261304a8161300e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613087601b836120c8565b915061309282613051565b602082019050919050565b600060208201905081810360008301526130b68161307a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d2b4d328cdd8931fcf307b2f7689cc83112ee4adcfbf297e3030e335499f5da664736f6c63430008080033

Deployed Bytecode Sourcemap

3623:8035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5556:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6396:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4796:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5836:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6566:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5940:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:148;;;;;;;;;;;;;:::i;:::-;;10262:196;;;;;;;;;;;;;:::i;:::-;;4606:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2484:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5648:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11289:366;;;;;;;;;;;;;:::i;:::-;;6068:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4732:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3963:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10571:671;;;;;;;;;;;;;:::i;:::-;;6244:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5556:83;5593:13;5626:5;;;;;;;;;;;;;;;;;5619:12;;5556:83;:::o;6396:161::-;6471:4;6488:39;6497:12;:10;:12::i;:::-;6511:7;6520:6;6488:8;:39::i;:::-;6545:4;6538:11;;6396:161;;;;:::o;4796:52::-;;;;:::o;5836:95::-;5889:7;4408:2;4465;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;5909:14;;5836:95;:::o;6566:313::-;6664:4;6681:36;6691:6;6699:9;6710:6;6681:9;:36::i;:::-;6728:121;6737:6;6745:12;:10;:12::i;:::-;6759:89;6797:6;6759:89;;;;;;;;;;;;;;;;;:11;:19;6771:6;6759:19;;;;;;;;;;;;;;;:33;6779:12;:10;:12::i;:::-;6759:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6728:8;:121::i;:::-;6867:4;6860:11;;6566:313;;;;;:::o;5744:83::-;5785:5;4408:2;5803:16;;5744:83;:::o;5940:119::-;6006:7;6033:9;:18;6043:7;6033:18;;;;;;;;;;;;;;;;6026:25;;5940:119;;;:::o;2700:148::-;2622:12;:10;:12::i;:::-;2612:22;;:6;;;;;;;;;;:22;;;2604:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1:::1;2770:40;;2791:6;::::0;::::1;;;;;;;;2770:40;;;;;;;;;;;;2838:1;2821:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2700:148::o:0;10262:196::-;2622:12;:10;:12::i;:::-;2612:22;;:6;;;;;;;;;;:22;;;2604:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4408:2:::1;4465;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10315:12;:22;;;;4408:2;4465;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10348:14;:22;;;;10402:5;10381:20;;:26;;;;;;;;;;;;;;;;;;10423:27;4408:2;4465;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10423:27;;;;;;:::i;:::-;;;;;;;;10262:196::o:0;4606:55::-;;;;:::o;2484:79::-;2522:7;2549:6;;;;;;;;;;;2542:13;;2484:79;:::o;4668:57::-;;;;:::o;5648:87::-;5687:13;5720:7;;;;;;;;;;;;;;;;;5713:14;;5648:87;:::o;11289:366::-;11353:10;;;;;;;;;;;11339:24;;:12;:10;:12::i;:::-;:24;;;11331:33;;;;;;11375:20;11396:24;11414:4;11396:9;:24::i;:::-;11375:45;;11447:1;11434:12;:14;11431:73;;;11462:30;11479:12;11462:16;:30::i;:::-;11431:73;11514:18;11533:21;11514:40;;11579:19;11568:10;:30;11565:83;;;11612:24;11625:10;11612:12;:24::i;:::-;11565:83;11320:335;;11289:366::o;6068:167::-;6146:4;6163:42;6173:12;:10;:12::i;:::-;6187:9;6198:6;6163:9;:42::i;:::-;6223:4;6216:11;;6068:167;;;;:::o;4732:57::-;;;;:::o;3963:39::-;;;;;;;;;;;;;:::o;10571:671::-;2622:12;:10;:12::i;:::-;2612:22;;:6;;;;;;;;;;:22;;;2604:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10635:11:::1;;;;;;;;;;;10634:12;10626:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10721:42;10684:15;;:80;;;;;;;;;;;;;;;;;;10775:58;10792:4;10807:15;;;;;;;;;;;4408:2;4465;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10775:8;:58::i;:::-;10878:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10860:55;;;10924:4;10931:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10860:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10844:13;;:110;;;;;;;;;;;;;;;;;;10965:15;;;;;;;;;;;:31;;;11004:21;11035:4;11041:24;11059:4;11041:9;:24::i;:::-;11066:1;11068::::0;11070:7:::1;:5;:7::i;:::-;11078:15;10965:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11112:13;;;;;;;;;;;11105:29;;;11143:15;;;;;;;;;;;11161:14;11105:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11201:4;11187:11;;:18;;;;;;;;;;;;;;;;;;11230:4;11216:11;;:18;;;;;;;;;;;;;;;;;;10571:671::o:0;6244:143::-;6325:7;6352:11;:18;6364:5;6352:18;;;;;;;;;;;;;;;:27;6371:7;6352:27;;;;;;;;;;;;;;;;6345:34;;6244:143;;;;:::o;228:98::-;281:7;308:10;301:17;;228:98;:::o;6888:335::-;6998:1;6981:19;;:5;:19;;;;6973:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7079:1;7060:21;;:7;:21;;;;7052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7161:6;7131:11;:18;7143:5;7131:18;;;;;;;;;;;;;;;:27;7150:7;7131:27;;;;;;;;;;;;;;;:36;;;;7199:7;7183:32;;7192:5;7183:32;;;7208:6;7183:32;;;;;;:::i;:::-;;;;;;;;6888:335;;;:::o;7232:2419::-;7336:1;7320:18;;:4;:18;;;;7312:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7413:1;7399:16;;:2;:16;;;;7391:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7483:1;7474:6;:10;7466:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7541:17;7583:7;:5;:7::i;:::-;7575:15;;:4;:15;;;;:32;;;;;7600:7;:5;:7::i;:::-;7594:13;;:2;:13;;;;7575:32;7571:1723;;;7636:76;7708:3;7636:67;7658:15;;7648:9;;:25;7647:55;;7688:14;;7647:55;;;7675:12;;7647:55;7636:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7624:88;;7734:20;;;;;;;;;;;7730:508;;;7795:15;;;;;;;;;;;7781:30;;:2;:30;;;;:62;;;;;7829:13;;;;;;;;;;;7815:28;;:2;:28;;;;7781:62;7777:444;;;7979:12;7906:28;:39;7935:9;7906:39;;;;;;;;;;;;;;;;:85;7870:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8187:12;8145:28;:39;8174:9;8145:39;;;;;;;;;;;;;;;:54;;;;7777:444;7730:508;8267:13;;;;;;;;;;;8259:21;;:4;:21;;;:55;;;;;8298:15;;;;;;;;;;;8284:30;;:2;:30;;;;8259:55;:83;;;;;8320:18;:22;8339:2;8320:22;;;;;;;;;;;;;;;;;;;;;;;;;8318:24;8259:83;8255:313;;;8382:12;;8372:6;:22;;8364:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8477:14;;8467:6;8451:13;8461:2;8451:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8443:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8541:9;;:11;;;;;;;;;:::i;:::-;;;;;;8255:313;8594:13;;;;;;;;;;;8588:19;;:2;:19;;;:43;;;;;8626:4;8611:20;;:4;:20;;;;8588:43;8585:174;;;8664:79;8739:3;8664:70;8686:16;;8676:9;;:26;8675:58;;8718:15;;8675:58;;;8704:13;;8675:58;8664:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8652:91;;8585:174;8776:28;8807:24;8825:4;8807:9;:24::i;:::-;8776:55;;8851:6;;;;;;;;;;;8850:7;:32;;;;;8869:13;;;;;;;;;;;8861:21;;:2;:21;;;8850:32;:47;;;;;8886:11;;;;;;;;;;;8850:47;:89;;;;;8922:17;;8901:20;:38;8850:89;:121;;;;;8953:18;;8943:9;;:28;8850:121;8846:437;;;8992:67;9009:49;9013:6;9020:37;9024:20;9045:11;;9020:3;:37::i;:::-;9009:3;:49::i;:::-;8992:16;:67::i;:::-;9078:26;9107:21;9078:50;;9171:17;9150:18;:38;9147:121;;;9213:35;9226:21;9213:12;:35::i;:::-;9147:121;8973:310;8846:437;7609:1685;7571:1723;9320:1;9310:9;:11;9307:161;;;9360:39;9389:9;9360;:24;9378:4;9360:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9335:9;:24;9353:4;9335:24;;;;;;;;;;;;;;;:64;;;;9440:4;9417:39;;9426:4;9417:39;;;9446:9;9417:39;;;;;;:::i;:::-;;;;;;;;9307:161;9494:27;9514:6;9494:9;:15;9504:4;9494:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9478:9;:15;9488:4;9478:15;;;;;;;;;;;;;;;:43;;;;9546:40;9564:21;9575:9;9564:6;:10;;:21;;;;:::i;:::-;9546:9;:13;9556:2;9546:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9532:9;:13;9542:2;9532:13;;;;;;;;;;;;;;;:54;;;;9617:2;9602:41;;9611:4;9602:41;;;9621:21;9632:9;9621:6;:10;;:21;;;;:::i;:::-;9602:41;;;;;;:::i;:::-;;;;;;;;7301:2350;7232:2419;;;:::o;1369:190::-;1455:7;1488:1;1483;:6;;1491:12;1475:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1515:9;1531:1;1527;:5;;;;:::i;:::-;1515:17;;1550:1;1543:8;;;1369:190;;;;;:::o;9770:483::-;5141:4;5132:6;;:13;;;;;;;;;;;;;;;;;;9848:21:::1;9886:1;9872:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9848:40;;9917:4;9899;9904:1;9899:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9943:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9933:4;9938:1;9933:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9976:62;9993:4;10008:15;;;;;;;;;;;10026:11;9976:8;:62::i;:::-;10049:15;;;;;;;;;;;:66;;;10130:11;10156:1;10172:4;10199;10219:15;10049:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9837:416;5177:5:::0;5168:6;;:14;;;;;;;;;;;;;;;;;;9770:483;:::o;10467:92::-;10524:10;;;;;;;;;;;:19;;:27;10544:6;10524:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10467:92;:::o;1568:246::-;1626:7;1655:1;1650;:6;1646:47;;;1680:1;1673:8;;;;1646:47;1703:9;1719:1;1715;:5;;;;:::i;:::-;1703:17;;1748:1;1743;1739;:5;;;;:::i;:::-;:10;1731:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1805:1;1798:8;;;1568:246;;;;;:::o;1823:132::-;1881:7;1908:39;1912:1;1915;1908:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1901:46;;1823:132;;;;:::o;9663:98::-;9720:7;9747:1;9745;:3;9744:9;;9752:1;9744:9;;;9750:1;9744:9;9737:16;;9663:98;;;;:::o;1036:179::-;1094:7;1114:9;1130:1;1126;:5;;;;:::i;:::-;1114:17;;1155:1;1150;:6;;1142:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1206:1;1199:8;;;1036:179;;;;:::o;1224:136::-;1282:7;1309:43;1313:1;1316;1309:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1302:50;;1224:136;;;;:::o;1964:189::-;2050:7;2082:1;2078;:5;2085:12;2070:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2109:9;2125:1;2121;:5;;;;:::i;:::-;2109:17;;2144:1;2137:8;;;1964: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:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:102;6296:8;6343:5;6340:1;6336:13;6315:34;;6254:102;;;:::o;6362:848::-;6423:5;6430:4;6454:6;6445:15;;6478:5;6469:14;;6492:712;6513:1;6503:8;6500:15;6492:712;;;6608:4;6603:3;6599:14;6593:4;6590:24;6587:50;;;6617:18;;:::i;:::-;6587:50;6667:1;6657:8;6653:16;6650:451;;;7082:4;7075:5;7071:16;7062:25;;6650:451;7132:4;7126;7122:15;7114:23;;7162:32;7185:8;7162:32;:::i;:::-;7150:44;;6492:712;;;6362:848;;;;;;;:::o;7216:1073::-;7270:5;7461:8;7451:40;;7482:1;7473:10;;7484:5;;7451:40;7510:4;7500:36;;7527:1;7518:10;;7529:5;;7500:36;7596:4;7644:1;7639:27;;;;7680:1;7675:191;;;;7589:277;;7639:27;7657:1;7648:10;;7659:5;;;7675:191;7720:3;7710:8;7707:17;7704:43;;;7727:18;;:::i;:::-;7704:43;7776:8;7773:1;7769:16;7760:25;;7811:3;7804:5;7801:14;7798:40;;;7818:18;;:::i;:::-;7798:40;7851:5;;;7589:277;;7975:2;7965:8;7962:16;7956:3;7950:4;7947:13;7943:36;7925:2;7915:8;7912:16;7907:2;7901:4;7898:12;7894:35;7878:111;7875:246;;;8031:8;8025:4;8021:19;8012:28;;8066:3;8059:5;8056:14;8053:40;;;8073:18;;:::i;:::-;8053:40;8106:5;;7875:246;8146:42;8184:3;8174:8;8168:4;8165:1;8146:42;:::i;:::-;8131:57;;;;8220:4;8215:3;8211:14;8204:5;8201:25;8198:51;;;8229:18;;:::i;:::-;8198:51;8278:4;8271:5;8267:16;8258:25;;7216:1073;;;;;;:::o;8295:281::-;8353:5;8377:23;8395:4;8377:23;:::i;:::-;8369:31;;8421:25;8437:8;8421:25;:::i;:::-;8409:37;;8465:104;8502:66;8492:8;8486:4;8465:104;:::i;:::-;8456:113;;8295:281;;;;:::o;8582:348::-;8622:7;8645:20;8663:1;8645:20;:::i;:::-;8640:25;;8679:20;8697:1;8679:20;:::i;:::-;8674:25;;8867:1;8799:66;8795:74;8792:1;8789:81;8784:1;8777:9;8770:17;8766:105;8763:131;;;8874:18;;:::i;:::-;8763:131;8922:1;8919;8915:9;8904:20;;8582:348;;;;:::o;8936:182::-;9076:34;9072:1;9064:6;9060:14;9053:58;8936:182;:::o;9124:366::-;9266:3;9287:67;9351:2;9346:3;9287:67;:::i;:::-;9280:74;;9363:93;9452:3;9363:93;:::i;:::-;9481:2;9476:3;9472:12;9465:19;;9124:366;;;:::o;9496:419::-;9662:4;9700:2;9689:9;9685:18;9677:26;;9749:9;9743:4;9739:20;9735:1;9724:9;9720:17;9713:47;9777:131;9903:4;9777:131;:::i;:::-;9769:139;;9496:419;;;:::o;9921:173::-;10061:25;10057:1;10049:6;10045:14;10038:49;9921:173;:::o;10100:366::-;10242:3;10263:67;10327:2;10322:3;10263:67;:::i;:::-;10256:74;;10339:93;10428:3;10339:93;:::i;:::-;10457:2;10452:3;10448:12;10441:19;;10100:366;;;:::o;10472:419::-;10638:4;10676:2;10665:9;10661:18;10653:26;;10725:9;10719:4;10715:20;10711:1;10700:9;10696:17;10689:47;10753:131;10879:4;10753:131;:::i;:::-;10745:139;;10472:419;;;:::o;10897:143::-;10954:5;10985:6;10979:13;10970:22;;11001:33;11028:5;11001:33;:::i;:::-;10897:143;;;;:::o;11046:351::-;11116:6;11165:2;11153:9;11144:7;11140:23;11136:32;11133:119;;;11171:79;;:::i;:::-;11133:119;11291:1;11316:64;11372:7;11363:6;11352:9;11348:22;11316:64;:::i;:::-;11306:74;;11262:128;11046:351;;;;:::o;11403:332::-;11524:4;11562:2;11551:9;11547:18;11539:26;;11575:71;11643:1;11632:9;11628:17;11619:6;11575:71;:::i;:::-;11656:72;11724:2;11713:9;11709:18;11700:6;11656:72;:::i;:::-;11403:332;;;;;:::o;11741:85::-;11786:7;11815:5;11804:16;;11741:85;;;:::o;11832:60::-;11860:3;11881:5;11874:12;;11832:60;;;:::o;11898:158::-;11956:9;11989:61;12007:42;12016:32;12042:5;12016:32;:::i;:::-;12007:42;:::i;:::-;11989:61;:::i;:::-;11976:74;;11898:158;;;:::o;12062:147::-;12157:45;12196:5;12157:45;:::i;:::-;12152:3;12145:58;12062:147;;:::o;12215:807::-;12464:4;12502:3;12491:9;12487:19;12479:27;;12516:71;12584:1;12573:9;12569:17;12560:6;12516:71;:::i;:::-;12597:72;12665:2;12654:9;12650:18;12641:6;12597:72;:::i;:::-;12679:80;12755:2;12744:9;12740:18;12731:6;12679:80;:::i;:::-;12769;12845:2;12834:9;12830:18;12821:6;12769:80;:::i;:::-;12859:73;12927:3;12916:9;12912:19;12903:6;12859:73;:::i;:::-;12942;13010:3;12999:9;12995:19;12986:6;12942:73;:::i;:::-;12215:807;;;;;;;;;:::o;13028:143::-;13085:5;13116:6;13110:13;13101:22;;13132:33;13159:5;13132:33;:::i;:::-;13028:143;;;;:::o;13177:663::-;13265:6;13273;13281;13330:2;13318:9;13309:7;13305:23;13301:32;13298:119;;;13336:79;;:::i;:::-;13298:119;13456:1;13481:64;13537:7;13528:6;13517:9;13513:22;13481:64;:::i;:::-;13471:74;;13427:128;13594:2;13620:64;13676:7;13667:6;13656:9;13652:22;13620:64;:::i;:::-;13610:74;;13565:129;13733:2;13759:64;13815:7;13806:6;13795:9;13791:22;13759:64;:::i;:::-;13749:74;;13704:129;13177:663;;;;;:::o;13846:332::-;13967:4;14005:2;13994:9;13990:18;13982:26;;14018:71;14086:1;14075:9;14071:17;14062:6;14018:71;:::i;:::-;14099:72;14167:2;14156:9;14152:18;14143:6;14099:72;:::i;:::-;13846:332;;;;;:::o;14184:116::-;14254:21;14269:5;14254:21;:::i;:::-;14247:5;14244:32;14234:60;;14290:1;14287;14280:12;14234:60;14184:116;:::o;14306:137::-;14360:5;14391:6;14385:13;14376:22;;14407:30;14431:5;14407:30;:::i;:::-;14306:137;;;;:::o;14449:345::-;14516:6;14565:2;14553:9;14544:7;14540:23;14536:32;14533:119;;;14571:79;;:::i;:::-;14533:119;14691:1;14716:61;14769:7;14760:6;14749:9;14745:22;14716:61;:::i;:::-;14706:71;;14662:125;14449:345;;;;:::o;14800:223::-;14940:34;14936:1;14928:6;14924:14;14917:58;15009:6;15004:2;14996:6;14992:15;14985:31;14800:223;:::o;15029:366::-;15171:3;15192:67;15256:2;15251:3;15192:67;:::i;:::-;15185:74;;15268:93;15357:3;15268:93;:::i;:::-;15386:2;15381:3;15377:12;15370:19;;15029:366;;;:::o;15401:419::-;15567:4;15605:2;15594:9;15590:18;15582:26;;15654:9;15648:4;15644:20;15640:1;15629:9;15625:17;15618:47;15682:131;15808:4;15682:131;:::i;:::-;15674:139;;15401:419;;;:::o;15826:221::-;15966:34;15962:1;15954:6;15950:14;15943:58;16035:4;16030:2;16022:6;16018:15;16011:29;15826:221;:::o;16053:366::-;16195:3;16216:67;16280:2;16275:3;16216:67;:::i;:::-;16209:74;;16292:93;16381:3;16292:93;:::i;:::-;16410:2;16405:3;16401:12;16394:19;;16053:366;;;:::o;16425:419::-;16591:4;16629:2;16618:9;16614:18;16606:26;;16678:9;16672:4;16668:20;16664:1;16653:9;16649:17;16642:47;16706:131;16832:4;16706:131;:::i;:::-;16698:139;;16425:419;;;:::o;16850:224::-;16990:34;16986:1;16978:6;16974:14;16967:58;17059:7;17054:2;17046:6;17042:15;17035:32;16850:224;:::o;17080:366::-;17222:3;17243:67;17307:2;17302:3;17243:67;:::i;:::-;17236:74;;17319:93;17408:3;17319:93;:::i;:::-;17437:2;17432:3;17428:12;17421:19;;17080:366;;;:::o;17452:419::-;17618:4;17656:2;17645:9;17641:18;17633:26;;17705:9;17699:4;17695:20;17691:1;17680:9;17676:17;17669:47;17733:131;17859:4;17733:131;:::i;:::-;17725:139;;17452:419;;;:::o;17877:222::-;18017:34;18013:1;18005:6;18001:14;17994:58;18086:5;18081:2;18073:6;18069:15;18062:30;17877:222;:::o;18105:366::-;18247:3;18268:67;18332:2;18327:3;18268:67;:::i;:::-;18261:74;;18344:93;18433:3;18344:93;:::i;:::-;18462:2;18457:3;18453:12;18446:19;;18105:366;;;:::o;18477:419::-;18643:4;18681:2;18670:9;18666:18;18658:26;;18730:9;18724:4;18720:20;18716:1;18705:9;18701:17;18694:47;18758:131;18884:4;18758:131;:::i;:::-;18750:139;;18477:419;;;:::o;18902:228::-;19042:34;19038:1;19030:6;19026:14;19019:58;19111:11;19106:2;19098:6;19094:15;19087:36;18902:228;:::o;19136:366::-;19278:3;19299:67;19363:2;19358:3;19299:67;:::i;:::-;19292:74;;19375:93;19464:3;19375:93;:::i;:::-;19493:2;19488:3;19484:12;19477:19;;19136:366;;;:::o;19508:419::-;19674:4;19712:2;19701:9;19697:18;19689:26;;19761:9;19755:4;19751:20;19747:1;19736:9;19732:17;19725:47;19789:131;19915:4;19789:131;:::i;:::-;19781:139;;19508:419;;;:::o;19933:297::-;20073:34;20069:1;20061:6;20057:14;20050:58;20142:34;20137:2;20129:6;20125:15;20118:59;20211:11;20206:2;20198:6;20194:15;20187:36;19933:297;:::o;20236:366::-;20378:3;20399:67;20463:2;20458:3;20399:67;:::i;:::-;20392:74;;20475:93;20564:3;20475:93;:::i;:::-;20593:2;20588:3;20584:12;20577:19;;20236:366;;;:::o;20608:419::-;20774:4;20812:2;20801:9;20797:18;20789:26;;20861:9;20855:4;20851:20;20847:1;20836:9;20832:17;20825:47;20889:131;21015:4;20889:131;:::i;:::-;20881:139;;20608:419;;;:::o;21033:175::-;21173:27;21169:1;21161:6;21157:14;21150:51;21033:175;:::o;21214:366::-;21356:3;21377:67;21441:2;21436:3;21377:67;:::i;:::-;21370:74;;21453:93;21542:3;21453:93;:::i;:::-;21571:2;21566:3;21562:12;21555:19;;21214:366;;;:::o;21586:419::-;21752:4;21790:2;21779:9;21775:18;21767:26;;21839:9;21833:4;21829:20;21825:1;21814:9;21810:17;21803:47;21867:131;21993:4;21867:131;:::i;:::-;21859:139;;21586:419;;;:::o;22011:305::-;22051:3;22070:20;22088:1;22070:20;:::i;:::-;22065:25;;22104:20;22122:1;22104:20;:::i;:::-;22099:25;;22258:1;22190:66;22186:74;22183:1;22180:81;22177:107;;;22264:18;;:::i;:::-;22177:107;22308:1;22305;22301:9;22294:16;;22011:305;;;;:::o;22322:176::-;22462:28;22458:1;22450:6;22446:14;22439:52;22322:176;:::o;22504:366::-;22646:3;22667:67;22731:2;22726:3;22667:67;:::i;:::-;22660:74;;22743:93;22832:3;22743:93;:::i;:::-;22861:2;22856:3;22852:12;22845:19;;22504:366;;;:::o;22876:419::-;23042:4;23080:2;23069:9;23065:18;23057:26;;23129:9;23123:4;23119:20;23115:1;23104:9;23100:17;23093:47;23157:131;23283:4;23157:131;:::i;:::-;23149:139;;22876:419;;;:::o;23301:233::-;23340:3;23363:24;23381:5;23363:24;:::i;:::-;23354:33;;23409:66;23402:5;23399:77;23396:103;;;23479:18;;:::i;:::-;23396:103;23526:1;23519:5;23515:13;23508:20;;23301:233;;;:::o;23540:191::-;23580:4;23600:20;23618:1;23600:20;:::i;:::-;23595:25;;23634:20;23652:1;23634:20;:::i;:::-;23629:25;;23673:1;23670;23667:8;23664:34;;;23678:18;;:::i;:::-;23664:34;23723:1;23720;23716:9;23708:17;;23540:191;;;;:::o;23737:180::-;23785:77;23782:1;23775:88;23882:4;23879:1;23872:15;23906:4;23903:1;23896:15;23923:180;23971:77;23968:1;23961:88;24068:4;24065:1;24058:15;24092:4;24089:1;24082:15;24109:114;24176:6;24210:5;24204:12;24194:22;;24109:114;;;:::o;24229:184::-;24328:11;24362:6;24357:3;24350:19;24402:4;24397:3;24393:14;24378:29;;24229:184;;;;:::o;24419:132::-;24486:4;24509:3;24501:11;;24539:4;24534:3;24530:14;24522:22;;24419:132;;;:::o;24557:108::-;24634:24;24652:5;24634:24;:::i;:::-;24629:3;24622:37;24557:108;;:::o;24671:179::-;24740:10;24761:46;24803:3;24795:6;24761:46;:::i;:::-;24839:4;24834:3;24830:14;24816:28;;24671:179;;;;:::o;24856:113::-;24926:4;24958;24953:3;24949:14;24941:22;;24856:113;;;:::o;25005:732::-;25124:3;25153:54;25201:5;25153:54;:::i;:::-;25223:86;25302:6;25297:3;25223:86;:::i;:::-;25216:93;;25333:56;25383:5;25333:56;:::i;:::-;25412:7;25443:1;25428:284;25453:6;25450:1;25447:13;25428:284;;;25529:6;25523:13;25556:63;25615:3;25600:13;25556:63;:::i;:::-;25549:70;;25642:60;25695:6;25642:60;:::i;:::-;25632:70;;25488:224;25475:1;25472;25468:9;25463:14;;25428:284;;;25432:14;25728:3;25721:10;;25129:608;;;25005:732;;;;:::o;25743:831::-;26006:4;26044:3;26033:9;26029:19;26021:27;;26058:71;26126:1;26115:9;26111:17;26102:6;26058:71;:::i;:::-;26139:80;26215:2;26204:9;26200:18;26191:6;26139:80;:::i;:::-;26266:9;26260:4;26256:20;26251:2;26240:9;26236:18;26229:48;26294:108;26397:4;26388:6;26294:108;:::i;:::-;26286:116;;26412:72;26480:2;26469:9;26465:18;26456:6;26412:72;:::i;:::-;26494:73;26562:3;26551:9;26547:19;26538:6;26494:73;:::i;:::-;25743:831;;;;;;;;:::o;26580:180::-;26628:77;26625:1;26618:88;26725:4;26722:1;26715:15;26749:4;26746:1;26739:15;26766:185;26806:1;26823:20;26841:1;26823:20;:::i;:::-;26818:25;;26857:20;26875:1;26857:20;:::i;:::-;26852:25;;26896:1;26886:35;;26901:18;;:::i;:::-;26886:35;26943:1;26940;26936:9;26931:14;;26766:185;;;;:::o;26957:220::-;27097:34;27093:1;27085:6;27081:14;27074:58;27166:3;27161:2;27153:6;27149:15;27142:28;26957:220;:::o;27183:366::-;27325:3;27346:67;27410:2;27405:3;27346:67;:::i;:::-;27339:74;;27422:93;27511:3;27422:93;:::i;:::-;27540:2;27535:3;27531:12;27524:19;;27183:366;;;:::o;27555:419::-;27721:4;27759:2;27748:9;27744:18;27736:26;;27808:9;27802:4;27798:20;27794:1;27783:9;27779:17;27772:47;27836:131;27962:4;27836:131;:::i;:::-;27828:139;;27555:419;;;:::o;27980:177::-;28120:29;28116:1;28108:6;28104:14;28097:53;27980:177;:::o;28163:366::-;28305:3;28326:67;28390:2;28385:3;28326:67;:::i;:::-;28319:74;;28402:93;28491:3;28402:93;:::i;:::-;28520:2;28515:3;28511:12;28504:19;;28163:366;;;:::o;28535:419::-;28701:4;28739:2;28728:9;28724:18;28716:26;;28788:9;28782:4;28778:20;28774:1;28763:9;28759:17;28752:47;28816:131;28942:4;28816:131;:::i;:::-;28808:139;;28535:419;;;:::o

Swarm Source

ipfs://d2b4d328cdd8931fcf307b2f7689cc83112ee4adcfbf297e3030e335499f5da6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.