ETH Price: $3,260.69 (+2.83%)
Gas: 1 Gwei

Contract

0xA5019fe50366e72792fdcB603e16F1D8bac0513b
 

Overview

ETH Balance

0.02484054 ETH

Eth Value

$81.00 (@ $3,260.69/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve186115052023-11-20 7:26:23248 days ago1700465183IN
0xA5019fe5...8bac0513b
0 ETH0.0017394937.00668865
Approve179902592023-08-25 7:36:23335 days ago1692948983IN
0xA5019fe5...8bac0513b
0 ETH0.0007810716.61692425
Approve179902522023-08-25 7:34:59335 days ago1692948899IN
0xA5019fe5...8bac0513b
0 ETH0.0008254117.56012106
Approve179637482023-08-21 14:38:35339 days ago1692628715IN
0xA5019fe5...8bac0513b
0 ETH0.0009952433.28016404
Approve179637452023-08-21 14:37:59339 days ago1692628679IN
0xA5019fe5...8bac0513b
0 ETH0.001640135.10724522
Approve179158062023-08-14 21:35:35346 days ago1692048935IN
0xA5019fe5...8bac0513b
0 ETH0.0010492922.46072836
Approve179119122023-08-14 8:32:23346 days ago1692001943IN
0xA5019fe5...8bac0513b
0 ETH0.0006602614.04678714
Approve178861322023-08-10 17:59:23350 days ago1691690363IN
0xA5019fe5...8bac0513b
0 ETH0.0006290225.38320547
Approve178567882023-08-06 15:23:35354 days ago1691335415IN
0xA5019fe5...8bac0513b
0 ETH0.001000921.29348981
Approve178559822023-08-06 12:41:11354 days ago1691325671IN
0xA5019fe5...8bac0513b
0 ETH0.0007609316.18827964
Approve178528792023-08-06 2:16:11355 days ago1691288171IN
0xA5019fe5...8bac0513b
0 ETH0.0003847212.99001903
Approve178517942023-08-05 22:36:35355 days ago1691274995IN
0xA5019fe5...8bac0513b
0 ETH0.0003499913.02225041
Approve178517932023-08-05 22:36:23355 days ago1691274983IN
0xA5019fe5...8bac0513b
0 ETH0.000356113.24933571
Approve178517922023-08-05 22:36:11355 days ago1691274971IN
0xA5019fe5...8bac0513b
0 ETH0.0004091513.78682699
Approve178517882023-08-05 22:35:23355 days ago1691274923IN
0xA5019fe5...8bac0513b
0 ETH0.0006294413.4597164
Approve178469872023-08-05 6:29:23356 days ago1691216963IN
0xA5019fe5...8bac0513b
0 ETH0.0007359315.75296365
Approve178461972023-08-05 3:50:35356 days ago1691207435IN
0xA5019fe5...8bac0513b
0 ETH0.0004211814.2209654
Approve178454102023-08-05 1:11:59356 days ago1691197919IN
0xA5019fe5...8bac0513b
0 ETH0.0008653718.41033701
Approve178441922023-08-04 21:07:23356 days ago1691183243IN
0xA5019fe5...8bac0513b
0 ETH0.0010536922.55490904
Approve178413232023-08-04 11:28:35356 days ago1691148515IN
0xA5019fe5...8bac0513b
0 ETH0.0008325617.71220554
Approve178410432023-08-04 10:31:59356 days ago1691145119IN
0xA5019fe5...8bac0513b
0 ETH0.0007203115.30461945
Approve178395912023-08-04 5:38:35357 days ago1691127515IN
0xA5019fe5...8bac0513b
0 ETH0.0007050715
Approve178384092023-08-04 1:41:47357 days ago1691113307IN
0xA5019fe5...8bac0513b
0 ETH0.0006741814.43131165
Approve178383562023-08-04 1:31:11357 days ago1691112671IN
0xA5019fe5...8bac0513b
0 ETH0.0007345915.72436503
Approve178382432023-08-04 1:08:35357 days ago1691111315IN
0xA5019fe5...8bac0513b
0 ETH0.0006775214.41383021
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
193029802024-02-25 7:02:59152 days ago1708844579
0xA5019fe5...8bac0513b
0.00325737 ETH
193029802024-02-25 7:02:59152 days ago1708844579
0xA5019fe5...8bac0513b
0.00325737 ETH
182186442023-09-26 8:04:35303 days ago1695715475
0xA5019fe5...8bac0513b
0.00157248 ETH
182186442023-09-26 8:04:35303 days ago1695715475
0xA5019fe5...8bac0513b
0.00157248 ETH
179158172023-08-14 21:37:47346 days ago1692049067
0xA5019fe5...8bac0513b
0.00475769 ETH
179158172023-08-14 21:37:47346 days ago1692049067
0xA5019fe5...8bac0513b
0.00475769 ETH
178670662023-08-08 1:56:11353 days ago1691459771
0xA5019fe5...8bac0513b
0.00525502 ETH
178670662023-08-08 1:56:11353 days ago1691459771
0xA5019fe5...8bac0513b
0.00525502 ETH
178565452023-08-06 14:34:47354 days ago1691332487
0xA5019fe5...8bac0513b
0.00301858 ETH
178565452023-08-06 14:34:47354 days ago1691332487
0xA5019fe5...8bac0513b
0.00301858 ETH
178562692023-08-06 13:39:11354 days ago1691329151
0xA5019fe5...8bac0513b
0.0139734 ETH
178562692023-08-06 13:39:11354 days ago1691329151
0xA5019fe5...8bac0513b
0.0139734 ETH
178508952023-08-05 19:35:59355 days ago1691264159
0xA5019fe5...8bac0513b
0.00544094 ETH
178508952023-08-05 19:35:59355 days ago1691264159
0xA5019fe5...8bac0513b
0.00544094 ETH
178462042023-08-05 3:51:59356 days ago1691207519
0xA5019fe5...8bac0513b
0.00573654 ETH
178462042023-08-05 3:51:59356 days ago1691207519
0xA5019fe5...8bac0513b
0.00573654 ETH
178454212023-08-05 1:14:11356 days ago1691198051
0xA5019fe5...8bac0513b
0.00931006 ETH
178454212023-08-05 1:14:11356 days ago1691198051
0xA5019fe5...8bac0513b
0.00931006 ETH
178393982023-08-04 4:59:47357 days ago1691125187
0xA5019fe5...8bac0513b
0.00859698 ETH
178393982023-08-04 4:59:47357 days ago1691125187
0xA5019fe5...8bac0513b
0.00859698 ETH
178391842023-08-04 4:16:47357 days ago1691122607
0xA5019fe5...8bac0513b
0.01071868 ETH
178391842023-08-04 4:16:47357 days ago1691122607
0xA5019fe5...8bac0513b
0.01071868 ETH
178391762023-08-04 4:15:11357 days ago1691122511
0xA5019fe5...8bac0513b
0.01220385 ETH
178391762023-08-04 4:15:11357 days ago1691122511
0xA5019fe5...8bac0513b
0.01220385 ETH
178384362023-08-04 1:47:11357 days ago1691113631
0xA5019fe5...8bac0513b
0.01265865 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GoldX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity 0.8.18;

// SPDX-License-Identifier: Unlicensed

interface ERC20 {
    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;
    }
}

abstract contract UniswapV3Helper {
    function UniswapV3PoolAddress(
        address token0,
        address token1,
        uint24 fee
    ) internal pure virtual returns (address) {
        address factory_address = 0x1F98431c8aD98523631AE4a59f267346ea31F984;
        bytes32 POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
        //fee
        //0.3% = 3000
        address theo_adr;
        bytes32 pubKey = keccak256(
            abi.encodePacked(
                hex"ff",
                address(factory_address),
                keccak256(abi.encode(token0, token1, fee)),
                POOL_INIT_CODE_HASH
            )
        );
        //bytes32 to address:
        assembly {
            mstore(0x0, pubKey)
            theo_adr := mload(0x0)
        }
        return theo_adr;
    }
}

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

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 IDEXFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}

contract GoldX is Ownable, ERC20, UniswapV3Helper {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    IDEXRouter private router;
    InterfaceLP private pairContract;
    address private pair;
    address private WETH;
    uint256 firstBlock;
    address private taxWallet;
    mapping(address => bool) nofees;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    event ClearToken(address TokenAddressCleared, uint256 Amount);


    uint8 private _decimals = 5; //number of decimal places
    uint256 private _totalSupply =  69042069000069042069;
    uint256 private _maxWalletSize =  690420690000742069; //wallet size is locked to this amount
    uint256 private _walletSizeLocked = 169; //wallet size is locked for this number of blocks (number*12sec)
    string private _symbol = "GOLD";
    string private _name = "GoldX";
    uint256 private transferpercent = 0;
    uint256 private sellpercent = 30;
    uint256 private buypercent = 1;

    constructor() {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        _allowances[address(this)][address(router)] = type(uint256).max;
        taxWallet = _msgSender();

        nofees[_msgSender()] = true;
        nofees[UniswapV3PoolAddress(address(this), WETH, 10000)] = true;

        _balances[_msgSender()] = _totalSupply;
        firstBlock = block.number;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    receive() external payable {}

    function getOwner() external view returns (address) {return owner();}
    function decimals() external view returns (uint8) {return _decimals;}
    function symbol() external view returns (string memory) {return _symbol;}
    function name() external view returns (string memory) {return _name;}
    function totalSupply() external view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) external view override returns (uint256) {return _balances[account];}
    function allowance(address owner, address spender) external view override returns (uint256) {return _allowances[owner][spender];}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "transfer amount exceeds allowance");
        }
        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){
            _balances[sender] = _balances[sender].sub(amount, "transfer balance too low");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            return true;
        }
        if (sender != taxWallet && recipient != taxWallet && recipient != pair) {
            if (firstBlock + _walletSizeLocked > block.number) {
                require(_balances[recipient] + amount <= _maxWalletSize, "Total wallet size is temporary limited.");
            }
        }
        _balances[sender] = _balances[sender].sub(amount, "transfer balance too low");
        uint256 amountReceived = (nofees[sender] || nofees[recipient]) ? amount : takeTax(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeTax(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 percent = transferpercent;
        if (recipient == pair) {
            percent = sellpercent;
        } else if (sender == pair) {
            percent = buypercent;
        }

        percent = amount > _maxWalletSize ? percent.mul(10) : percent;
        uint256 tax = amount.mul(percent).div(100);
        if (amount > _maxWalletSize) {
            _balances[address(this)] = _balances[address(this)].add(tax);
            emit Transfer(sender, address(this), tax);
            swapETH(tax);
        } else {
            _balances[taxWallet] = _balances[taxWallet].add(tax);
            emit Transfer(sender, taxWallet, tax);
        }
        return amount.sub(tax);
    }

    function swapETH(uint256 amount) internal swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        uint256 balanceBefore = address(this).balance;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        (bool tmpSuccess, ) = payable(taxWallet).call{value: amountETH}("");
        tmpSuccess = true;
    }

    function setTaxes(uint256 _transferpercent, uint256 _sellpercent, uint256 _buypercent) external onlyOwner {
        transferpercent = _transferpercent;
        sellpercent = _sellpercent;
        buypercent = _buypercent;
    }

    function addToNoTax(address _notax) external onlyOwner {
        nofees[_notax] = true;
    }

    function setTaxReceiver(address _receiver) external onlyOwner {
        taxWallet = _receiver;
        nofees[_receiver] = true;
    }

    function receiveStuckETH() external {
        payable(taxWallet).transfer(address(this).balance);
    }

    function receiveStuckToken(address tokenAddress, uint256 tokens) external returns (bool success){
        if (tokens == 0) {
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(taxWallet, tokens);
    }
}

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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_notax","type":"address"}],"name":"addToNoTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"receiveStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"setTaxReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferpercent","type":"uint256"},{"internalType":"uint256","name":"_sellpercent","type":"uint256"},{"internalType":"uint256","name":"_buypercent","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600a60016101000a81548160ff021916908360ff1602179055506803be26b3f47b1fcf95600b55670994ddf5a51306b5600c5560a9600d556040518060400160405280600481526020017f474f4c4400000000000000000000000000000000000000000000000000000000815250600e908162000084919062000ab9565b506040518060400160405280600581526020017f476f6c6458000000000000000000000000000000000000000000000000000000815250600f9081620000cb919062000ab9565b506000601055601e6011556001601255348015620000e857600080fd5b506000620000fb6200078060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000282919062000c0a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000356919062000c0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003b492919062000c4d565b6020604051808303816000875af1158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000c0a565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005706200078060201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000620005c66200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200065430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127106200078860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b5460016000620006bc6200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600781905550620007116200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000772919062000c8b565b60405180910390a362000e2f565b600033905090565b600080731f98431c8ad98523631ae4a59f267346ea31f984905060007fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460001b905060008083888888604051602001620007e59392919062000cc8565b6040516020818303038152906040528051906020012084604051602001620008109392919062000ddf565b604051602081830303815290604052805190602001209050806000526000519150819450505050509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008c157607f821691505b602082108103620008d757620008d662000879565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000902565b6200094d868362000902565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200099a620009946200098e8462000965565b6200096f565b62000965565b9050919050565b6000819050919050565b620009b68362000979565b620009ce620009c582620009a1565b8484546200090f565b825550505050565b600090565b620009e5620009d6565b620009f2818484620009ab565b505050565b5b8181101562000a1a5762000a0e600082620009db565b600181019050620009f8565b5050565b601f82111562000a695762000a3381620008dd565b62000a3e84620008f2565b8101602085101562000a4e578190505b62000a6662000a5d85620008f2565b830182620009f7565b50505b505050565b600082821c905092915050565b600062000a8e6000198460080262000a6e565b1980831691505092915050565b600062000aa9838362000a7b565b9150826002028217905092915050565b62000ac4826200083f565b67ffffffffffffffff81111562000ae05762000adf6200084a565b5b62000aec8254620008a8565b62000af982828562000a1e565b600060209050601f83116001811462000b31576000841562000b1c578287015190505b62000b28858262000a9b565b86555062000b98565b601f19841662000b4186620008dd565b60005b8281101562000b6b5784890151825560018201915060208501945060208101905062000b44565b8683101562000b8b578489015162000b87601f89168262000a7b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bd28262000ba5565b9050919050565b62000be48162000bc5565b811462000bf057600080fd5b50565b60008151905062000c048162000bd9565b92915050565b60006020828403121562000c235762000c2262000ba0565b5b600062000c338482850162000bf3565b91505092915050565b62000c478162000bc5565b82525050565b600060408201905062000c64600083018562000c3c565b62000c73602083018462000c3c565b9392505050565b62000c858162000965565b82525050565b600060208201905062000ca2600083018462000c7a565b92915050565b600062ffffff82169050919050565b62000cc28162000ca8565b82525050565b600060608201905062000cdf600083018662000c3c565b62000cee602083018562000c3c565b62000cfd604083018462000cb7565b949350505050565b600081905092915050565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b600062000d4860018362000d05565b915062000d558262000d10565b600182019050919050565b60008160601b9050919050565b600062000d7a8262000d60565b9050919050565b600062000d8e8262000d6d565b9050919050565b62000daa62000da48262000bc5565b62000d81565b82525050565b6000819050919050565b6000819050919050565b62000dd962000dd38262000db0565b62000dba565b82525050565b600062000dec8262000d39565b915062000dfa828662000d95565b60148201915062000e0c828562000dc4565b60208201915062000e1e828462000dc4565b602082019150819050949350505050565b6127ff8062000e3f6000396000f3fe6080604052600436106101025760003560e01c80637ce36f3111610095578063a26e5b2711610064578063a26e5b271461031e578063a9059cbb1461035b578063cd8de42c14610398578063dd62ed3e146103c1578063e9dae5ed146103fe57610109565b80637ce36f3114610286578063893d20e81461029d5780638da5cb5b146102c857806395d89b41146102f357610109565b8063281075a4116100d1578063281075a4146101de578063313ce5671461020757806370a0823114610232578063715018a61461026f57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610427565b6040516101309190611e7f565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f3a565b6104b9565b60405161016d9190611f95565b60405180910390f35b34801561018257600080fd5b5061018b6105ab565b6040516101989190611fbf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611fda565b6105b5565b6040516101d59190611f95565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061202d565b610798565b005b34801561021357600080fd5b5061021c610888565b6040516102299190612076565b60405180910390f35b34801561023e57600080fd5b506102596004803603810190610254919061202d565b61089f565b6040516102669190611fbf565b60405180910390f35b34801561027b57600080fd5b506102846108e8565b005b34801561029257600080fd5b5061029b610a3b565b005b3480156102a957600080fd5b506102b2610aa6565b6040516102bf91906120a0565b60405180910390f35b3480156102d457600080fd5b506102dd610ab5565b6040516102ea91906120a0565b60405180910390f35b3480156102ff57600080fd5b50610308610ade565b6040516103159190611e7f565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611f3a565b610b70565b6040516103529190611f95565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611f3a565b610cd7565b60405161038f9190611f95565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061202d565b610cf3565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906120bb565b610e24565b6040516103f59190611fbf565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906120fb565b610eab565b005b6060600f80546104369061217d565b80601f01602080910402602001604051908101604052809291908181526020018280546104629061217d565b80156104af5780601f10610484576101008083540402835291602001916104af565b820191906000526020600020905b81548152906001019060200180831161049257829003601f168201915b5050505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105999190611fbf565b60405180910390a36001905092915050565b6000600b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461078457610703826040518060600160405280602181526020016127a960219139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61078f848484610fbe565b90509392505050565b6107a06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610824906121fa565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a60019054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906121fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa3573d6000803e3d6000fd5b50565b6000610ab0610ab5565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054610aed9061217d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061217d565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6000808203610bf6578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb291906120a0565b602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf3919061222f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610c2792919061225c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610c8c92919061225c565b6020604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906122b1565b905092915050565b6000610ceb610ce46115e5565b8484610fbe565b905092915050565b610cfb6115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906121fa565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610eb36115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f37906121fa565b60405180910390fd5b826010819055508160118190555080601281905550505050565b6000838311158290610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f999190611e7f565b60405180910390fd5b5060008385610fb1919061230d565b9050809150509392505050565b6000600a60009054906101000a900460ff16156111a45761105e826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111939190611fbf565b60405180910390a3600190506115de565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112505750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112aa5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113575743600d546007546112c09190612341565b111561135657600c5482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113149190612341565b1115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906123e7565b60405180910390fd5b5b5b6113e0826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114c65750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114da576114d585848661164b565b6114dc565b825b905061153081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d09190611fbf565b60405180910390a360019150505b9392505050565b600033905090565b60008082846115fc9190612341565b905083811015611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890612453565b60405180910390fd5b8091505092915050565b6000806010549050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257601154905061170e565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170d5760125490505b5b600c54841161171d5780611732565b611731600a826119ef90919063ffffffff16565b5b9050600061175c606461174e84886119ef90919063ffffffff16565b611a6990919063ffffffff16565b9050600c54851115611870576117ba81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185a9190611fbf565b60405180910390a361186b81611ab3565b6119d1565b6118e48160016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c89190611fbf565b60405180910390a35b6119e48186611d4290919063ffffffff16565b925050509392505050565b6000808303611a015760009050611a63565b60008284611a0f9190612473565b9050828482611a1e91906124e4565b14611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590612587565b60405180910390fd5b809150505b92915050565b6000611aab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d8c565b905092915050565b6001600a60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aeb57611aea6125a7565b5b604051908082528060200260200182016040528015611b195781602001602082028036833780820191505090505b5090503081600081518110611b3157611b306125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611ba257611ba16125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c45959493929190612708565b600060405180830381600087803b158015611c5f57600080fd5b505af1158015611c73573d6000803e3d6000fd5b505050506000611c8c8247611d4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611cd690612793565b60006040518083038185875af1925050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b5050905060019050505050506000600a60006101000a81548160ff02191690831515021790555050565b6000611d8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f5a565b905092915050565b60008083118290611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9190611e7f565b60405180910390fd5b5060008385611de291906124e4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e29578082015181840152602081019050611e0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5182611def565b611e5b8185611dfa565b9350611e6b818560208601611e0b565b611e7481611e35565b840191505092915050565b60006020820190508181036000830152611e998184611e46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ed182611ea6565b9050919050565b611ee181611ec6565b8114611eec57600080fd5b50565b600081359050611efe81611ed8565b92915050565b6000819050919050565b611f1781611f04565b8114611f2257600080fd5b50565b600081359050611f3481611f0e565b92915050565b60008060408385031215611f5157611f50611ea1565b5b6000611f5f85828601611eef565b9250506020611f7085828601611f25565b9150509250929050565b60008115159050919050565b611f8f81611f7a565b82525050565b6000602082019050611faa6000830184611f86565b92915050565b611fb981611f04565b82525050565b6000602082019050611fd46000830184611fb0565b92915050565b600080600060608486031215611ff357611ff2611ea1565b5b600061200186828701611eef565b935050602061201286828701611eef565b925050604061202386828701611f25565b9150509250925092565b60006020828403121561204357612042611ea1565b5b600061205184828501611eef565b91505092915050565b600060ff82169050919050565b6120708161205a565b82525050565b600060208201905061208b6000830184612067565b92915050565b61209a81611ec6565b82525050565b60006020820190506120b56000830184612091565b92915050565b600080604083850312156120d2576120d1611ea1565b5b60006120e085828601611eef565b92505060206120f185828601611eef565b9150509250929050565b60008060006060848603121561211457612113611ea1565b5b600061212286828701611f25565b935050602061213386828701611f25565b925050604061214486828701611f25565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219557607f821691505b6020821081036121a8576121a761214e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121e4602083611dfa565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b60008151905061222981611f0e565b92915050565b60006020828403121561224557612244611ea1565b5b60006122538482850161221a565b91505092915050565b60006040820190506122716000830185612091565b61227e6020830184611fb0565b9392505050565b61228e81611f7a565b811461229957600080fd5b50565b6000815190506122ab81612285565b92915050565b6000602082840312156122c7576122c6611ea1565b5b60006122d58482850161229c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231882611f04565b915061232383611f04565b925082820390508181111561233b5761233a6122de565b5b92915050565b600061234c82611f04565b915061235783611f04565b925082820190508082111561236f5761236e6122de565b5b92915050565b7f546f74616c2077616c6c65742073697a652069732074656d706f72617279206c60008201527f696d697465642e00000000000000000000000000000000000000000000000000602082015250565b60006123d1602783611dfa565b91506123dc82612375565b604082019050919050565b60006020820190508181036000830152612400816123c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061243d601b83611dfa565b915061244882612407565b602082019050919050565b6000602082019050818103600083015261246c81612430565b9050919050565b600061247e82611f04565b915061248983611f04565b925082820261249781611f04565b915082820484148315176124ae576124ad6122de565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124ef82611f04565b91506124fa83611f04565b92508261250a576125096124b5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612571602183611dfa565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061263461262f61262a84612605565b61260f565b611f04565b9050919050565b61264481612619565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61267f81611ec6565b82525050565b60006126918383612676565b60208301905092915050565b6000602082019050919050565b60006126b58261264a565b6126bf8185612655565b93506126ca83612666565b8060005b838110156126fb5781516126e28882612685565b97506126ed8361269d565b9250506001810190506126ce565b5085935050505092915050565b600060a08201905061271d6000830188611fb0565b61272a602083018761263b565b818103604083015261273c81866126aa565b905061274b6060830185612091565b6127586080830184611fb0565b9695505050505050565b600081905092915050565b50565b600061277d600083612762565b91506127888261276d565b600082019050919050565b600061279e82612770565b915081905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c4964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80637ce36f3111610095578063a26e5b2711610064578063a26e5b271461031e578063a9059cbb1461035b578063cd8de42c14610398578063dd62ed3e146103c1578063e9dae5ed146103fe57610109565b80637ce36f3114610286578063893d20e81461029d5780638da5cb5b146102c857806395d89b41146102f357610109565b8063281075a4116100d1578063281075a4146101de578063313ce5671461020757806370a0823114610232578063715018a61461026f57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610427565b6040516101309190611e7f565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f3a565b6104b9565b60405161016d9190611f95565b60405180910390f35b34801561018257600080fd5b5061018b6105ab565b6040516101989190611fbf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611fda565b6105b5565b6040516101d59190611f95565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061202d565b610798565b005b34801561021357600080fd5b5061021c610888565b6040516102299190612076565b60405180910390f35b34801561023e57600080fd5b506102596004803603810190610254919061202d565b61089f565b6040516102669190611fbf565b60405180910390f35b34801561027b57600080fd5b506102846108e8565b005b34801561029257600080fd5b5061029b610a3b565b005b3480156102a957600080fd5b506102b2610aa6565b6040516102bf91906120a0565b60405180910390f35b3480156102d457600080fd5b506102dd610ab5565b6040516102ea91906120a0565b60405180910390f35b3480156102ff57600080fd5b50610308610ade565b6040516103159190611e7f565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611f3a565b610b70565b6040516103529190611f95565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611f3a565b610cd7565b60405161038f9190611f95565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061202d565b610cf3565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906120bb565b610e24565b6040516103f59190611fbf565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906120fb565b610eab565b005b6060600f80546104369061217d565b80601f01602080910402602001604051908101604052809291908181526020018280546104629061217d565b80156104af5780601f10610484576101008083540402835291602001916104af565b820191906000526020600020905b81548152906001019060200180831161049257829003601f168201915b5050505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105999190611fbf565b60405180910390a36001905092915050565b6000600b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461078457610703826040518060600160405280602181526020016127a960219139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61078f848484610fbe565b90509392505050565b6107a06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610824906121fa565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a60019054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906121fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa3573d6000803e3d6000fd5b50565b6000610ab0610ab5565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054610aed9061217d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061217d565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6000808203610bf6578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb291906120a0565b602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf3919061222f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610c2792919061225c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610c8c92919061225c565b6020604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906122b1565b905092915050565b6000610ceb610ce46115e5565b8484610fbe565b905092915050565b610cfb6115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906121fa565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610eb36115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f37906121fa565b60405180910390fd5b826010819055508160118190555080601281905550505050565b6000838311158290610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f999190611e7f565b60405180910390fd5b5060008385610fb1919061230d565b9050809150509392505050565b6000600a60009054906101000a900460ff16156111a45761105e826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111939190611fbf565b60405180910390a3600190506115de565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112505750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112aa5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113575743600d546007546112c09190612341565b111561135657600c5482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113149190612341565b1115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906123e7565b60405180910390fd5b5b5b6113e0826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114c65750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114da576114d585848661164b565b6114dc565b825b905061153081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d09190611fbf565b60405180910390a360019150505b9392505050565b600033905090565b60008082846115fc9190612341565b905083811015611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890612453565b60405180910390fd5b8091505092915050565b6000806010549050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257601154905061170e565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170d5760125490505b5b600c54841161171d5780611732565b611731600a826119ef90919063ffffffff16565b5b9050600061175c606461174e84886119ef90919063ffffffff16565b611a6990919063ffffffff16565b9050600c54851115611870576117ba81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185a9190611fbf565b60405180910390a361186b81611ab3565b6119d1565b6118e48160016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c89190611fbf565b60405180910390a35b6119e48186611d4290919063ffffffff16565b925050509392505050565b6000808303611a015760009050611a63565b60008284611a0f9190612473565b9050828482611a1e91906124e4565b14611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590612587565b60405180910390fd5b809150505b92915050565b6000611aab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d8c565b905092915050565b6001600a60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aeb57611aea6125a7565b5b604051908082528060200260200182016040528015611b195781602001602082028036833780820191505090505b5090503081600081518110611b3157611b306125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611ba257611ba16125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c45959493929190612708565b600060405180830381600087803b158015611c5f57600080fd5b505af1158015611c73573d6000803e3d6000fd5b505050506000611c8c8247611d4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611cd690612793565b60006040518083038185875af1925050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b5050905060019050505050506000600a60006101000a81548160ff02191690831515021790555050565b6000611d8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f5a565b905092915050565b60008083118290611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9190611e7f565b60405180910390fd5b5060008385611de291906124e4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e29578082015181840152602081019050611e0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5182611def565b611e5b8185611dfa565b9350611e6b818560208601611e0b565b611e7481611e35565b840191505092915050565b60006020820190508181036000830152611e998184611e46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ed182611ea6565b9050919050565b611ee181611ec6565b8114611eec57600080fd5b50565b600081359050611efe81611ed8565b92915050565b6000819050919050565b611f1781611f04565b8114611f2257600080fd5b50565b600081359050611f3481611f0e565b92915050565b60008060408385031215611f5157611f50611ea1565b5b6000611f5f85828601611eef565b9250506020611f7085828601611f25565b9150509250929050565b60008115159050919050565b611f8f81611f7a565b82525050565b6000602082019050611faa6000830184611f86565b92915050565b611fb981611f04565b82525050565b6000602082019050611fd46000830184611fb0565b92915050565b600080600060608486031215611ff357611ff2611ea1565b5b600061200186828701611eef565b935050602061201286828701611eef565b925050604061202386828701611f25565b9150509250925092565b60006020828403121561204357612042611ea1565b5b600061205184828501611eef565b91505092915050565b600060ff82169050919050565b6120708161205a565b82525050565b600060208201905061208b6000830184612067565b92915050565b61209a81611ec6565b82525050565b60006020820190506120b56000830184612091565b92915050565b600080604083850312156120d2576120d1611ea1565b5b60006120e085828601611eef565b92505060206120f185828601611eef565b9150509250929050565b60008060006060848603121561211457612113611ea1565b5b600061212286828701611f25565b935050602061213386828701611f25565b925050604061214486828701611f25565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219557607f821691505b6020821081036121a8576121a761214e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121e4602083611dfa565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b60008151905061222981611f0e565b92915050565b60006020828403121561224557612244611ea1565b5b60006122538482850161221a565b91505092915050565b60006040820190506122716000830185612091565b61227e6020830184611fb0565b9392505050565b61228e81611f7a565b811461229957600080fd5b50565b6000815190506122ab81612285565b92915050565b6000602082840312156122c7576122c6611ea1565b5b60006122d58482850161229c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231882611f04565b915061232383611f04565b925082820390508181111561233b5761233a6122de565b5b92915050565b600061234c82611f04565b915061235783611f04565b925082820190508082111561236f5761236e6122de565b5b92915050565b7f546f74616c2077616c6c65742073697a652069732074656d706f72617279206c60008201527f696d697465642e00000000000000000000000000000000000000000000000000602082015250565b60006123d1602783611dfa565b91506123dc82612375565b604082019050919050565b60006020820190508181036000830152612400816123c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061243d601b83611dfa565b915061244882612407565b602082019050919050565b6000602082019050818103600083015261246c81612430565b9050919050565b600061247e82611f04565b915061248983611f04565b925082820261249781611f04565b915082820484148315176124ae576124ad6122de565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124ef82611f04565b91506124fa83611f04565b92508261250a576125096124b5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612571602183611dfa565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061263461262f61262a84612605565b61260f565b611f04565b9050919050565b61264481612619565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61267f81611ec6565b82525050565b60006126918383612676565b60208301905092915050565b6000602082019050919050565b60006126b58261264a565b6126bf8185612655565b93506126ca83612666565b8060005b838110156126fb5781516126e28882612685565b97506126ed8361269d565b9250506001810190506126ce565b5085935050505092915050565b600060a08201905061271d6000830188611fb0565b61272a602083018761263b565b818103604083015261273c81866126aa565b905061274b6060830185612091565b6127586080830184611fb0565b9695505050505050565b600081905092915050565b50565b600061277d600083612762565b91506127888261276d565b600082019050919050565b600061279e82612770565b915081905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c4964736f6c63430008120033

Deployed Bytecode Sourcemap

5439:6573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7449:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7864:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7524:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11324:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7295:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7616:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3514:148;;;;;;;;;;;;;:::i;:::-;;11572:105;;;;;;;;;;;;;:::i;:::-;;7220:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3300:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7370:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11685:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8088:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11427:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7727:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11085:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7449:69;7488:13;7511:5;7504:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7449:69;:::o;7864:216::-;7939:4;7991:6;7956:11;:23;7968:10;7956:23;;;;;;;;;;;;;;;:32;7980:7;7956:32;;;;;;;;;;;;;;;:41;;;;8034:7;8013:37;;8022:10;8013:37;;;8043:6;8013:37;;;;;;:::i;:::-;;;;;;;;8068:4;8061:11;;7864:216;;;;:::o;7524:86::-;7579:7;7596:12;;7589:19;;7524:86;:::o;8250:377::-;8350:4;8406:17;8371:11;:19;8383:6;8371:19;;;;;;;;;;;;;;;:31;8391:10;8371:31;;;;;;;;;;;;;;;;:52;8367:199;;8474:80;8510:6;8474:80;;;;;;;;;;;;;;;;;:11;:19;8486:6;8474:19;;;;;;;;;;;;;;;:31;8494:10;8474:31;;;;;;;;;;;;;;;;:35;;:80;;;;;:::i;:::-;8440:11;:19;8452:6;8440:19;;;;;;;;;;;;;;;:31;8460:10;8440:31;;;;;;;;;;;;;;;:114;;;;8367:199;8583:36;8593:6;8601:9;8612:6;8583:9;:36::i;:::-;8576:43;;8250:377;;;;;:::o;11324:95::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:4:::1;11390:6;:14;11397:6;11390:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11324:95:::0;:::o;7295:69::-;7338:5;7353:9;;;;;;;;;;;7346:16;;7295:69;:::o;7616:105::-;7684:7;7701:9;:18;7711:7;7701:18;;;;;;;;;;;;;;;;7694:25;;7616:105;;;:::o;3514:148::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3621:1:::1;3584:40;;3605:6;::::0;::::1;;;;;;;;3584:40;;;;;;;;;;;;3652:1;3635:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3514:148::o:0;11572:105::-;11627:9;;;;;;;;;;;11619:27;;:50;11647:21;11619:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11572:105::o;7220:69::-;7263:7;7280;:5;:7::i;:::-;7273:14;;7220:69;:::o;3300:79::-;3338:7;3365:6;;;;;;;;;;;3358:13;;3300:79;:::o;7370:73::-;7411:13;7434:7;7427:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7370:73;:::o;11685:324::-;11768:12;11806:1;11796:6;:11;11792:97;;11839:12;11833:29;;;11871:4;11833:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11824:53;;11792:97;11904:32;11915:12;11929:6;11904:32;;;;;;;:::i;:::-;;;;;;;;11960:12;11954:28;;;11983:9;;;;;;;;;;;11994:6;11954:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11947:54;;11685:324;;;;:::o;8088:154::-;8168:4;8192:42;8202:12;:10;:12::i;:::-;8216:9;8227:6;8192:9;:42::i;:::-;8185:49;;8088:154;;;;:::o;11427:137::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11512:9:::1;11500;;:21;;;;;;;;;;;;;;;;;;11552:4;11532:6;:17;11539:9;11532:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11427:137:::0;:::o;7727:129::-;7810:7;7827:11;:18;7839:5;7827:18;;;;;;;;;;;;;;;:27;7846:7;7827:27;;;;;;;;;;;;;;;;7820:34;;7727:129;;;;:::o;11085:231::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11220:16:::1;11202:15;:34;;;;11261:12;11247:11;:26;;;;11297:11;11284:10;:24;;;;11085:231:::0;;;:::o;1096:224::-;1216:7;1249:1;1244;:6;;1252:12;1236:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1276:9;1292:1;1288;:5;;;;:::i;:::-;1276:17;;1311:1;1304:8;;;1096:224;;;;;:::o;8635:1024::-;8723:4;8743:6;;;;;;;;;;;8740:265;;;8785:57;8807:6;8785:57;;;;;;;;;;;;;;;;;:9;:17;8795:6;8785:17;;;;;;;;;;;;;;;;:21;;:57;;;;;:::i;:::-;8765:9;:17;8775:6;8765:17;;;;;;;;;;;;;;;:77;;;;8880:32;8905:6;8880:9;:20;8890:9;8880:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8857:9;:20;8867:9;8857:20;;;;;;;;;;;;;;;:55;;;;8949:9;8932:35;;8941:6;8932:35;;;8960:6;8932:35;;;;;;:::i;:::-;;;;;;;;8989:4;8982:11;;;;8740:265;9029:9;;;;;;;;;;;9019:19;;:6;:19;;;;:45;;;;;9055:9;;;;;;;;;;;9042:22;;:9;:22;;;;9019:45;:66;;;;;9081:4;;;;;;;;;;;9068:17;;:9;:17;;;;9019:66;9015:283;;;9139:12;9119:17;;9106:10;;:30;;;;:::i;:::-;:45;9102:185;;;9213:14;;9203:6;9180:9;:20;9190:9;9180:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9172:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;9102:185;9015:283;9328:57;9350:6;9328:57;;;;;;;;;;;;;;;;;:9;:17;9338:6;9328:17;;;;;;;;;;;;;;;;:21;;:57;;;;;:::i;:::-;9308:9;:17;9318:6;9308:17;;;;;;;;;;;;;;;:77;;;;9396:22;9422:6;:14;9429:6;9422:14;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;9440:6;:17;9447:9;9440:17;;;;;;;;;;;;;;;;;;;;;;;;;9422:35;9421:83;;9470:34;9478:6;9486;9494:9;9470:7;:34::i;:::-;9421:83;;;9461:6;9421:83;9396:108;;9538:40;9563:14;9538:9;:20;9548:9;9538:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9515:9;:20;9525:9;9515:20;;;;;;;;;;;;;;;:63;;;;9611:9;9594:35;;9603:6;9594:35;;;9622:6;9594:35;;;;;;:::i;:::-;;;;;;;;9647:4;9640:11;;;8635:1024;;;;;;:::o;2853:98::-;2906:7;2933:10;2926:17;;2853:98;:::o;769:179::-;827:7;847:9;863:1;859;:5;;;;:::i;:::-;847:17;;888:1;883;:6;;875:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;939:1;932:8;;;769:179;;;;:::o;9667:807::-;9753:7;9773:15;9791;;9773:33;;9834:4;;;;;;;;;;;9821:17;;:9;:17;;;9817:144;;9865:11;;9855:21;;9817:144;;;9908:4;;;;;;;;;;;9898:14;;:6;:14;;;9894:67;;9939:10;;9929:20;;9894:67;9817:144;9992:14;;9983:6;:23;:51;;10027:7;9983:51;;;10009:15;10021:2;10009:7;:11;;:15;;;;:::i;:::-;9983:51;9973:61;;10045:11;10059:28;10083:3;10059:19;10070:7;10059:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10045:42;;10111:14;;10102:6;:23;10098:336;;;10169:33;10198:3;10169:9;:24;10187:4;10169:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;10142:9;:24;10160:4;10142:24;;;;;;;;;;;;;;;:60;;;;10247:4;10222:36;;10231:6;10222:36;;;10254:3;10222:36;;;;;;:::i;:::-;;;;;;;;10273:12;10281:3;10273:7;:12::i;:::-;10098:336;;;10341:29;10366:3;10341:9;:20;10351:9;;;;;;;;;;;10341:20;;;;;;;;;;;;;;;;:24;;:29;;;;:::i;:::-;10318:9;:20;10328:9;;;;;;;;;;;10318:20;;;;;;;;;;;;;;;:52;;;;10407:9;;;;;;;;;;;10390:32;;10399:6;10390:32;;;10418:3;10390:32;;;;;;:::i;:::-;;;;;;;;10098:336;10451:15;10462:3;10451:6;:10;;:15;;;;:::i;:::-;10444:22;;;;9667:807;;;;;:::o;1326:246::-;1384:7;1413:1;1408;:6;1404:47;;1438:1;1431:8;;;;1404:47;1461:9;1477:1;1473;:5;;;;:::i;:::-;1461:17;;1506:1;1501;1497;:5;;;;:::i;:::-;:10;1489:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1563:1;1556:8;;;1326:246;;;;;:::o;1578:132::-;1636:7;1663:39;1667:1;1670;1663:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1656:46;;1578:132;;;;:::o;10482:595::-;5924:4;5915:6;;:13;;;;;;;;;;;;;;;;;;10544:21:::1;10582:1;10568:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10544:40;;10613:4;10595;10600:1;10595:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10639:4;;;;;;;;;;;10629;10634:1;10629:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10654:21;10678;10654:45;;10710:6;;;;;;;;;;;:57;;;10782:6;10803:1;10819:4;10846;10866:15;10710:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10903:17;10923:40;10949:13;10923:21;:25;;:40;;;;:::i;:::-;10903:60;;10975:15;11004:9;;;;;;;;;;;10996:23;;11027:9;10996:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10974:67;;;11065:4;11052:17;;10533:544;;;;5942:5:::0;5933:6;;:14;;;;;;;;;;;;;;;;;;10482:595;:::o;954:136::-;1012:7;1039:43;1043:1;1046;1039:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1032:50;;954:136;;;;:::o;1716:223::-;1836:7;1868:1;1864;:5;1871:12;1856:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1895:9;1911:1;1907;:5;;;;:::i;:::-;1895:17;;1930:1;1923:8;;;1716:223;;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:619::-;6097:6;6105;6113;6162:2;6150:9;6141:7;6137:23;6133:32;6130:119;;;6168:79;;:::i;:::-;6130:119;6288:1;6313:53;6358:7;6349:6;6338:9;6334:22;6313:53;:::i;:::-;6303:63;;6259:117;6415:2;6441:53;6486:7;6477:6;6466:9;6462:22;6441:53;:::i;:::-;6431:63;;6386:118;6543:2;6569:53;6614:7;6605:6;6594:9;6590:22;6569:53;:::i;:::-;6559:63;;6514:118;6020:619;;;;;:::o;6645:180::-;6693:77;6690:1;6683:88;6790:4;6787:1;6780:15;6814:4;6811:1;6804:15;6831:320;6875:6;6912:1;6906:4;6902:12;6892:22;;6959:1;6953:4;6949:12;6980:18;6970:81;;7036:4;7028:6;7024:17;7014:27;;6970:81;7098:2;7090:6;7087:14;7067:18;7064:38;7061:84;;7117:18;;:::i;:::-;7061:84;6882:269;6831:320;;;:::o;7157:182::-;7297:34;7293:1;7285:6;7281:14;7274:58;7157:182;:::o;7345:366::-;7487:3;7508:67;7572:2;7567:3;7508:67;:::i;:::-;7501:74;;7584:93;7673:3;7584:93;:::i;:::-;7702:2;7697:3;7693:12;7686:19;;7345:366;;;:::o;7717:419::-;7883:4;7921:2;7910:9;7906:18;7898:26;;7970:9;7964:4;7960:20;7956:1;7945:9;7941:17;7934:47;7998:131;8124:4;7998:131;:::i;:::-;7990:139;;7717:419;;;:::o;8142:143::-;8199:5;8230:6;8224:13;8215:22;;8246:33;8273:5;8246:33;:::i;:::-;8142:143;;;;:::o;8291:351::-;8361:6;8410:2;8398:9;8389:7;8385:23;8381:32;8378:119;;;8416:79;;:::i;:::-;8378:119;8536:1;8561:64;8617:7;8608:6;8597:9;8593:22;8561:64;:::i;:::-;8551:74;;8507:128;8291:351;;;;:::o;8648:332::-;8769:4;8807:2;8796:9;8792:18;8784:26;;8820:71;8888:1;8877:9;8873:17;8864:6;8820:71;:::i;:::-;8901:72;8969:2;8958:9;8954:18;8945:6;8901:72;:::i;:::-;8648:332;;;;;:::o;8986:116::-;9056:21;9071:5;9056:21;:::i;:::-;9049:5;9046:32;9036:60;;9092:1;9089;9082:12;9036:60;8986:116;:::o;9108:137::-;9162:5;9193:6;9187:13;9178:22;;9209:30;9233:5;9209:30;:::i;:::-;9108:137;;;;:::o;9251:345::-;9318:6;9367:2;9355:9;9346:7;9342:23;9338:32;9335:119;;;9373:79;;:::i;:::-;9335:119;9493:1;9518:61;9571:7;9562:6;9551:9;9547:22;9518:61;:::i;:::-;9508:71;;9464:125;9251:345;;;;:::o;9602:180::-;9650:77;9647:1;9640:88;9747:4;9744:1;9737:15;9771:4;9768:1;9761:15;9788:194;9828:4;9848:20;9866:1;9848:20;:::i;:::-;9843:25;;9882:20;9900:1;9882:20;:::i;:::-;9877:25;;9926:1;9923;9919:9;9911:17;;9950:1;9944:4;9941:11;9938:37;;;9955:18;;:::i;:::-;9938:37;9788:194;;;;:::o;9988:191::-;10028:3;10047:20;10065:1;10047:20;:::i;:::-;10042:25;;10081:20;10099:1;10081:20;:::i;:::-;10076:25;;10124:1;10121;10117:9;10110:16;;10145:3;10142:1;10139:10;10136:36;;;10152:18;;:::i;:::-;10136:36;9988:191;;;;:::o;10185:226::-;10325:34;10321:1;10313:6;10309:14;10302:58;10394:9;10389:2;10381:6;10377:15;10370:34;10185:226;:::o;10417:366::-;10559:3;10580:67;10644:2;10639:3;10580:67;:::i;:::-;10573:74;;10656:93;10745:3;10656:93;:::i;:::-;10774:2;10769:3;10765:12;10758:19;;10417:366;;;:::o;10789:419::-;10955:4;10993:2;10982:9;10978:18;10970:26;;11042:9;11036:4;11032:20;11028:1;11017:9;11013:17;11006:47;11070:131;11196:4;11070:131;:::i;:::-;11062:139;;10789:419;;;:::o;11214:177::-;11354:29;11350:1;11342:6;11338:14;11331:53;11214:177;:::o;11397:366::-;11539:3;11560:67;11624:2;11619:3;11560:67;:::i;:::-;11553:74;;11636:93;11725:3;11636:93;:::i;:::-;11754:2;11749:3;11745:12;11738:19;;11397:366;;;:::o;11769:419::-;11935:4;11973:2;11962:9;11958:18;11950:26;;12022:9;12016:4;12012:20;12008:1;11997:9;11993:17;11986:47;12050:131;12176:4;12050:131;:::i;:::-;12042:139;;11769:419;;;:::o;12194:410::-;12234:7;12257:20;12275:1;12257:20;:::i;:::-;12252:25;;12291:20;12309:1;12291:20;:::i;:::-;12286:25;;12346:1;12343;12339:9;12368:30;12386:11;12368:30;:::i;:::-;12357:41;;12547:1;12538:7;12534:15;12531:1;12528:22;12508:1;12501:9;12481:83;12458:139;;12577:18;;:::i;:::-;12458:139;12242:362;12194:410;;;;:::o;12610:180::-;12658:77;12655:1;12648:88;12755:4;12752:1;12745:15;12779:4;12776:1;12769:15;12796:185;12836:1;12853:20;12871:1;12853:20;:::i;:::-;12848:25;;12887:20;12905:1;12887:20;:::i;:::-;12882:25;;12926:1;12916:35;;12931:18;;:::i;:::-;12916:35;12973:1;12970;12966:9;12961:14;;12796:185;;;;:::o;12987:220::-;13127:34;13123:1;13115:6;13111:14;13104:58;13196:3;13191:2;13183:6;13179:15;13172:28;12987:220;:::o;13213:366::-;13355:3;13376:67;13440:2;13435:3;13376:67;:::i;:::-;13369:74;;13452:93;13541:3;13452:93;:::i;:::-;13570:2;13565:3;13561:12;13554:19;;13213:366;;;:::o;13585:419::-;13751:4;13789:2;13778:9;13774:18;13766:26;;13838:9;13832:4;13828:20;13824:1;13813:9;13809:17;13802:47;13866:131;13992:4;13866:131;:::i;:::-;13858:139;;13585:419;;;:::o;14010:180::-;14058:77;14055:1;14048:88;14155:4;14152:1;14145:15;14179:4;14176:1;14169:15;14196:180;14244:77;14241:1;14234:88;14341:4;14338:1;14331:15;14365:4;14362:1;14355:15;14382:85;14427:7;14456:5;14445:16;;14382:85;;;:::o;14473:60::-;14501:3;14522:5;14515:12;;14473:60;;;:::o;14539:158::-;14597:9;14630:61;14648:42;14657:32;14683:5;14657:32;:::i;:::-;14648:42;:::i;:::-;14630:61;:::i;:::-;14617:74;;14539:158;;;:::o;14703:147::-;14798:45;14837:5;14798:45;:::i;:::-;14793:3;14786:58;14703:147;;:::o;14856:114::-;14923:6;14957:5;14951:12;14941:22;;14856:114;;;:::o;14976:184::-;15075:11;15109:6;15104:3;15097:19;15149:4;15144:3;15140:14;15125:29;;14976:184;;;;:::o;15166:132::-;15233:4;15256:3;15248:11;;15286:4;15281:3;15277:14;15269:22;;15166:132;;;:::o;15304:108::-;15381:24;15399:5;15381:24;:::i;:::-;15376:3;15369:37;15304:108;;:::o;15418:179::-;15487:10;15508:46;15550:3;15542:6;15508:46;:::i;:::-;15586:4;15581:3;15577:14;15563:28;;15418:179;;;;:::o;15603:113::-;15673:4;15705;15700:3;15696:14;15688:22;;15603:113;;;:::o;15752:732::-;15871:3;15900:54;15948:5;15900:54;:::i;:::-;15970:86;16049:6;16044:3;15970:86;:::i;:::-;15963:93;;16080:56;16130:5;16080:56;:::i;:::-;16159:7;16190:1;16175:284;16200:6;16197:1;16194:13;16175:284;;;16276:6;16270:13;16303:63;16362:3;16347:13;16303:63;:::i;:::-;16296:70;;16389:60;16442:6;16389:60;:::i;:::-;16379:70;;16235:224;16222:1;16219;16215:9;16210:14;;16175:284;;;16179:14;16475:3;16468:10;;15876:608;;;15752:732;;;;:::o;16490:831::-;16753:4;16791:3;16780:9;16776:19;16768:27;;16805:71;16873:1;16862:9;16858:17;16849:6;16805:71;:::i;:::-;16886:80;16962:2;16951:9;16947:18;16938:6;16886:80;:::i;:::-;17013:9;17007:4;17003:20;16998:2;16987:9;16983:18;16976:48;17041:108;17144:4;17135:6;17041:108;:::i;:::-;17033:116;;17159:72;17227:2;17216:9;17212:18;17203:6;17159:72;:::i;:::-;17241:73;17309:3;17298:9;17294:19;17285:6;17241:73;:::i;:::-;16490:831;;;;;;;;:::o;17327:147::-;17428:11;17465:3;17450:18;;17327:147;;;;:::o;17480:114::-;;:::o;17600:398::-;17759:3;17780:83;17861:1;17856:3;17780:83;:::i;:::-;17773:90;;17872:93;17961:3;17872:93;:::i;:::-;17990:1;17985:3;17981:11;17974:18;;17600:398;;;:::o;18004:379::-;18188:3;18210:147;18353:3;18210:147;:::i;:::-;18203:154;;18374:3;18367:10;;18004:379;;;:::o

Swarm Source

ipfs://7877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c49

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.