ETH Price: $3,423.09 (+2.31%)

Token

Babygirl (BABYGIRL)
 

Overview

Max Total Supply

1,000,000,000 BABYGIRL

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,612,791.545353297 BABYGIRL

Value
$0.00
0x86cf0c2c13e1a857f96735b77e1ea4a9f4077c8c
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Babygirl

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 

* Website -  https://babygirltoken.xyz
* Twitter -  https://x.com/babygirltoken
* Telegram - https://t.me/babygirlerc

 */      


// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;
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);
}
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 transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    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 Babygirl is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => bool) private isBots;
    address private DevWallet;
    address payable private MarketingWallet;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals; 
    string private constant _name = "Babygirl";
    string private constant _symbol = "BABYGIRL";
    uint256 private ThresholdTokens = 8000000 * 10**_decimals; 
    uint256 public maxTxAmount = 20000000 * 10**_decimals; 
    uint256 public maxWalletSize = 20000000 * 10**_decimals;  
    uint256 public buyTax = 15;
    uint256 public sellTax = 25;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
   
    uint256 private  genesis_block;
    uint256 private deadline = 1;
    uint256 private launchtax = 80;
   
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool public _SwapBackEnable = false;
    bool private inSwap = false;
   
   
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event FeesReceiverUpdated(address indexed _newWallet);
    event SwapThresholdUpdated(uint256 indexed tokenAmount);
    event SwapBackSettingUpdated(bool indexed state);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        
    if (block.chainid == 56){
        uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
    }
    else if(block.chainid == 1 || block.chainid == 5){
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
    }
    else if(block.chainid == 42161){
        uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
    }
    else if (block.chainid == 97){
        uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
    }

    
    else {
        revert("Wrong Chain Id");
    }
    
    
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    MarketingWallet = payable(0xbf7FA99Ec8524C1b0E705A6aB284bf60AA184495);
    DevWallet = 0x1Acbcf42Df2718cfAacf033DF35807e6687dd336; 

    _balances[_msgSender()] = _tTotal;
    _isExcludedFromFee[_msgSender()] = true;
    _isExcludedFromFee[address(this)] = true;
    _isExcludedFromFee[MarketingWallet] = true;
    _isExcludedFromFee[DevWallet] = true;
    _isExcludedFromFee[deadWallet] = 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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function setMaxWalletSize(uint256 _maxWalletSize) external onlyOwner {
        maxWalletSize = _maxWalletSize;
    }
    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");
        require(!isBots[from] && !isBots[to], "You can't transfer tokens");
        uint256 TaxSwap = 0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               TaxSwap = amount * buyTax / 100;
        }
        
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            TaxSwap = 0;
        } 
             
          if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block + deadline){
              TaxSwap = amount * launchtax / 100;
          }
         
          if (from == uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
          if (to != uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(balanceOf(to) + amount <= maxWalletSize, "Exceeds the maxWalletSize.");
          }  
          if (to != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
              require(balanceOf(to) + amount <= maxTxAmount, "Exceeds the maxWalletSize.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                    TaxSwap = amount * sellTax / 100;
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance >= ThresholdTokens) {
                swapTokensForEth(ThresholdTokens);
               
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (TaxSwap));
        emit Transfer(from, to, amount - (TaxSwap));
        
         if(TaxSwap > 0){
          _balances[address(this)] = _balances[address(this)] + (TaxSwap);
          emit Transfer(from, address(this),TaxSwap);
        }
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }
   function addExcludeFee(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
    function removeExcludeFee(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   function updateTax(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 25 && newSellFee <= 30, "ERC20: wrong tax value!");
        buyTax = newBuyFee;
        sellTax = newSellFee;
    }
   function addBlacklist(address account) external onlyOwner {isBots[account] = true;}
   function removeBlacklist(address account) external onlyOwner {isBots[account] = false;}
   function removeMaxTxLimit() external onlyOwner {maxTxAmount = _tTotal;}
   function updateSwapBackSetting(bool state) external onlyOwner {_SwapBackEnable = state;emit SwapBackSettingUpdated(state);}
   function updateMaxTxLimit(uint256 amount) external onlyOwner {require(amount >= 1000000, "amount must be greater than or equal to 0.1% of the supply");
    maxTxAmount = amount * 10**_decimals;
    }
    function updateFeeReceiver(address payable _newWallet) external onlyOwner {
       require(_newWallet != address(this), "CA will not be the Fee Receiver");
       require(_newWallet != address(0), "0 addy will not be the fee Receiver");
       MarketingWallet = _newWallet;
      _isExcludedFromFee[_newWallet] = true;
    emit FeesReceiverUpdated(_newWallet);
    }
    function updateThresholdToken(uint256 tokenAmount) external onlyOwner {
        require(tokenAmount <= 10000000, "amount must be less than or equal to 1% of the supply");
        require(tokenAmount >= 1000000, "amount must be greater than or equal to 0.1% of the supply");
        ThresholdTokens = tokenAmount * 10**_decimals;
    emit SwapThresholdUpdated(tokenAmount);
    }
    function start_trade() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       genesis_block = block.number;
       emit TradingOpenUpdated();
    }
    function add() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    receive() external payable {}
    function getERC20FromTheContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
    function getETHfromTheContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }

    function manualSwap() external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        require(contractTokenBalance >= ThresholdTokens, "Insufficient token balance in contract to perform swap");
        swapTokensForEth(contractTokenBalance);
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }
}

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":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesReceiverUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[],"name":"_SwapBackEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addExcludeFee","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getERC20FromTheContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getETHfromTheContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_trade","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":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"updateFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"updateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"updateThresholdToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000ac2565b627a120062000024919062000b13565b6007556009600a62000037919062000ac2565b6301312d0062000048919062000b13565b6008556009600a6200005b919062000ac2565b6301312d006200006c919062000b13565b600955600f600a556019600b556001600d556050600e556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550348015620000e157600080fd5b506000620000f46200092060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060384603620001f6577310ed43c718714eb63d5aa57b78b54704e256024e600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000370565b6001461480620002065750600546145b156200026757737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036f565b61a4b14603620002cc57731b02da8cb0d097eb8d57a175b88c7d8b47997506600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036e565b60614603620003305773d99d1c33f9fc3444f8101754abc46c52416550d1600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036d565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003649062000bbf565b60405180910390fd5b5b5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000404919062000c4b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200048e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b4919062000c4b565b6040518363ffffffff1660e01b8152600401620004d392919062000c8e565b6020604051808303816000875af1158015620004f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000519919062000c4b565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bf7fa99ec8524c1b0e705a6ab284bf60aa184495600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731acbcf42df2718cfaacf033df35807e6687dd336600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000613919062000ac2565b633b9aca0062000624919062000b13565b60016000620006386200092060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200068c6200092060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008936200092060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620008f2919062000ac2565b633b9aca0062000903919062000b13565b60405162000912919062000ccc565b60405180910390a362000ce9565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b6578086048111156200098e576200098d62000928565b5b60018516156200099e5780820291505b8081029050620009ae8562000957565b94506200096e565b94509492505050565b600082620009d1576001905062000aa4565b81620009e1576000905062000aa4565b8160018114620009fa576002811462000a055762000a3b565b600191505062000aa4565b60ff84111562000a1a5762000a1962000928565b5b8360020a91508482111562000a345762000a3362000928565b5b5062000aa4565b5060208310610133831016604e8410600b841016171562000a755782820a90508381111562000a6f5762000a6e62000928565b5b62000aa4565b62000a84848484600162000964565b9250905081840481111562000a9e5762000a9d62000928565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000acf8262000aab565b915062000adc8362000ab5565b925062000b0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009bf565b905092915050565b600062000b208262000aab565b915062000b2d8362000aab565b925082820262000b3d8162000aab565b9150828204841483151762000b575762000b5662000928565b5b5092915050565b600082825260208201905092915050565b7f57726f6e6720436861696e204964000000000000000000000000000000000000600082015250565b600062000ba7600e8362000b5e565b915062000bb48262000b6f565b602082019050919050565b6000602082019050818103600083015262000bda8162000b98565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c138262000be6565b9050919050565b62000c258162000c06565b811462000c3157600080fd5b50565b60008151905062000c458162000c1a565b92915050565b60006020828403121562000c645762000c6362000be1565b5b600062000c748482850162000c34565b91505092915050565b62000c888162000c06565b82525050565b600060408201905062000ca5600083018562000c7d565b62000cb4602083018462000c7d565b9392505050565b62000cc68162000aab565b82525050565b600060208201905062000ce3600083018462000cbb565b92915050565b61510f8062000cf96000396000f3fe6080604052600436106102135760003560e01c80638c0b5e2211610118578063cc1776d3116100a0578063e699ae1c1161006f578063e699ae1c14610726578063ea1644d51461074f578063eb91e65114610778578063f2fde38b146107a1578063f87dc2c6146107ca5761021a565b8063cc1776d31461066c578063d59b2ba014610697578063dd62ed3e146106c0578063e60db66d146106fd5761021a565b80639cfe42da116100e75780639cfe42da1461058b578063a333b4ab146105b4578063a9059cbb146105dd578063c2c327d11461061a578063c69bebe4146106435761021a565b80638c0b5e22146104df5780638da5cb5b1461050a5780638f3fa8601461053557806395d89b41146105605761021a565b80634415fb611161019b5780636d69b3541161016a5780636d69b3541461041e57806370a0823114610435578063715018a61461047257806382abcce41461048957806385141a77146104b45761021a565b80634415fb61146103ae5780634f2be91f146103c55780634f7041a5146103dc57806351bc3c85146104075761021a565b806318160ddd116101e257806318160ddd146102c95780631ab023e4146102f457806323b872dd1461031d5780632f37aa6d1461035a578063313ce567146103835761021a565b806306fdde031461021f578063095ea7b31461024a5780630f648c3e146102875780631694505e1461029e5761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346107f5565b60405161024191906139e3565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613a9e565b610832565b60405161027e9190613af9565b60405180910390f35b34801561029357600080fd5b5061029c610850565b005b3480156102aa57600080fd5b506102b36109a0565b6040516102c09190613b73565b60405180910390f35b3480156102d557600080fd5b506102de6109c6565b6040516102eb9190613b9d565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190613a9e565b6109ea565b005b34801561032957600080fd5b50610344600480360381019061033f9190613bb8565b610cbe565b6040516103519190613af9565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190613c0b565b610dbe565b005b34801561038f57600080fd5b50610398610eb6565b6040516103a59190613c67565b60405180910390f35b3480156103ba57600080fd5b506103c3610ebf565b005b3480156103d157600080fd5b506103da610f79565b005b3480156103e857600080fd5b506103f161129d565b6040516103fe9190613b9d565b60405180910390f35b34801561041357600080fd5b5061041c6112a3565b005b34801561042a57600080fd5b506104336113af565b005b34801561044157600080fd5b5061045c60048036038101906104579190613c82565b6114d2565b6040516104699190613b9d565b60405180910390f35b34801561047e57600080fd5b5061048761151b565b005b34801561049557600080fd5b5061049e61166e565b6040516104ab9190613af9565b60405180910390f35b3480156104c057600080fd5b506104c9611681565b6040516104d69190613cbe565b60405180910390f35b3480156104eb57600080fd5b506104f4611687565b6040516105019190613b9d565b60405180910390f35b34801561051657600080fd5b5061051f61168d565b60405161052c9190613cbe565b60405180910390f35b34801561054157600080fd5b5061054a6116b6565b6040516105579190613b9d565b60405180910390f35b34801561056c57600080fd5b506105756116bc565b60405161058291906139e3565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad9190613c82565b6116f9565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613d05565b6117e9565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190613a9e565b6118ca565b6040516106119190613af9565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190613d32565b6118e8565b005b34801561064f57600080fd5b5061066a60048036038101906106659190613d9d565b6119e5565b005b34801561067857600080fd5b50610681611c36565b60405161068e9190613b9d565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190613c82565b611c3c565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613dca565b611e02565b6040516106f49190613b9d565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613d32565b611e89565b005b34801561073257600080fd5b5061074d60048036038101906107489190613c82565b611ff9565b005b34801561075b57600080fd5b5061077660048036038101906107719190613d32565b6121bf565b005b34801561078457600080fd5b5061079f600480360381019061079a9190613c82565b61225e565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c82565b61234e565b005b3480156107d657600080fd5b506107df61245e565b6040516107ec9190613af9565b60405180910390f35b60606040518060400160405280600881526020017f426162796769726c000000000000000000000000000000000000000000000000815250905090565b600061084661083f612471565b8484612479565b6001905092915050565b610858612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc90613e56565b60405180910390fd5b601060149054906101000a900460ff1615610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90613ec2565b60405180910390fd5b6001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555043600c819055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109d69190614044565b633b9aca006109e5919061408f565b905090565b6109f2612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7690613e56565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490614143565b60405180910390fd5b60008111610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b27906141d5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b699190613cbe565b602060405180830381865afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa919061420a565b811115610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390614283565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610c499291906142c4565b6020604051808303816000875af1158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c9190614302565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a612471565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d81906143a1565b60405180910390fd5b610d95858585612642565b610db285610da1612471565b8584610dad91906143c1565b612479565b60019150509392505050565b610dc6612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4a90613e56565b60405180910390fd5b60198211158015610e655750601e8111155b610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b90614441565b60405180910390fd5b81600a8190555080600b819055505050565b60006009905090565b610ec7612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90613e56565b60405180910390fd5b6009600a610f629190614044565b633b9aca00610f71919061408f565b600881905550565b610f81612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100590613e56565b60405180910390fd5b601060149054906101000a900460ff161561105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590613ec2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fc30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110e89190614044565b633b9aca006110f7919061408f565b612479565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611145306114d2565b60008061115061168d565b426040518863ffffffff1660e01b81526004016111729695949392919061449c565b60606040518083038185885af1158015611190573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b591906144fd565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611257929190614550565b6020604051808303816000875af1158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a9190614302565b50565b600a5481565b6112ab612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90613e56565b60405180910390fd5b6000611343306114d2565b905060075481101561138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906145eb565b60405180910390fd5b61139381613524565b600047905060008111156113ab576113aa816137e0565b5b5050565b6000479050600081116113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee906141d5565b60405180910390fd5b4781111561143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190614283565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114a2573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611523612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a790613e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060159054906101000a900460ff1681565b61dead81565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600881526020017f424142594749524c000000000000000000000000000000000000000000000000815250905090565b611701612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613e56565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117f1612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613e56565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b60006118de6118d7612471565b8484612642565b6001905092915050565b6118f0612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613e56565b60405180910390fd5b620f42408110156119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba9061467d565b60405180910390fd5b6009600a6119d19190614044565b816119dc919061408f565b60088190555050565b6119ed612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613e56565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf906146e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e9061477b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5c0b634383af78953de62ebc96e1ad0a55da269f20ee5f7495aea8153c058bc160405160405180910390a250565b600b5481565b611c44612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613e56565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b906147e7565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e91612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1590613e56565b60405180910390fd5b62989680811115611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90614879565b60405180910390fd5b620f4240811015611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa19061467d565b60405180910390fd5b6009600a611fb89190614044565b81611fc3919061408f565b600781905550807f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647660405160405180910390a250565b612001612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590613e56565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612118906148e5565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b6121c7612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90613e56565b60405180910390fd5b8060098190555050565b612266612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea90613e56565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612356612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da90613e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244990614977565b60405180910390fd5b61245b8161388f565b50565b601060149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614a09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e90614a9b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126359190613b9d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890614b2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271790614bbf565b60405180910390fd5b60008111612763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275a90614c51565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128075750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283d90614cbd565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ec5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561295d57601060149054906101000a900460ff16612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293790614d29565b60405180910390fd5b6064600a5483612950919061408f565b61295a9190614d78565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129fe5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a0857600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aac5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ac75750600d54600c54612ac39190614da9565b4311155b15612ae9576064600e5483612adc919061408f565b612ae69190614d78565b90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b905750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612be65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c3157600854821115612c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2790614e29565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612cd95750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d2f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d7a57600854821115612d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7090614e29565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e0457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612e5a5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612eb05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0e5760095482612ec2856114d2565b612ecc9190614da9565b1115612f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0490614e95565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612fb65750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561300c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561306a576008548261301e856114d2565b6130289190614da9565b1115613069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306090614e95565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130f357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156131495750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561319f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131c1576064600b54836131b4919061408f565b6131be9190614d78565b90505b60006131cc306114d2565b9050601060169054906101000a900460ff161580156132395750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156132515750601060159054906101000a900460ff165b801561325f57506007548110155b156132895761326f600754613524565b6000479050600081111561328757613286476137e0565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d491906143c1565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361332391906143c1565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336d9190614da9565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848661340b91906143c1565b6040516134189190613b9d565b60405180910390a3600082111561351d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134749190614da9565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135149190613b9d565b60405180910390a35b5050505050565b6001601060166101000a81548160ff02191690831515021790555060008111613582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357990614f01565b60405180910390fd5b6000600267ffffffffffffffff81111561359f5761359e614f21565b5b6040519080825280602002602001820160405280156135cd5781602001602082028036833780820191505090505b50905030816000815181106135e5576135e4614f50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561368c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b09190614f94565b816001815181106136c4576136c3614f50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061372b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612479565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161378f95949392919061507f565b600060405180830381600087803b1580156137a957600080fd5b505af11580156137bd573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b60008111613823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161381a90614f01565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561388b573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561398d578082015181840152602081019050613972565b60008484015250505050565b6000601f19601f8301169050919050565b60006139b582613953565b6139bf818561395e565b93506139cf81856020860161396f565b6139d881613999565b840191505092915050565b600060208201905081810360008301526139fd81846139aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a3582613a0a565b9050919050565b613a4581613a2a565b8114613a5057600080fd5b50565b600081359050613a6281613a3c565b92915050565b6000819050919050565b613a7b81613a68565b8114613a8657600080fd5b50565b600081359050613a9881613a72565b92915050565b60008060408385031215613ab557613ab4613a05565b5b6000613ac385828601613a53565b9250506020613ad485828601613a89565b9150509250929050565b60008115159050919050565b613af381613ade565b82525050565b6000602082019050613b0e6000830184613aea565b92915050565b6000819050919050565b6000613b39613b34613b2f84613a0a565b613b14565b613a0a565b9050919050565b6000613b4b82613b1e565b9050919050565b6000613b5d82613b40565b9050919050565b613b6d81613b52565b82525050565b6000602082019050613b886000830184613b64565b92915050565b613b9781613a68565b82525050565b6000602082019050613bb26000830184613b8e565b92915050565b600080600060608486031215613bd157613bd0613a05565b5b6000613bdf86828701613a53565b9350506020613bf086828701613a53565b9250506040613c0186828701613a89565b9150509250925092565b60008060408385031215613c2257613c21613a05565b5b6000613c3085828601613a89565b9250506020613c4185828601613a89565b9150509250929050565b600060ff82169050919050565b613c6181613c4b565b82525050565b6000602082019050613c7c6000830184613c58565b92915050565b600060208284031215613c9857613c97613a05565b5b6000613ca684828501613a53565b91505092915050565b613cb881613a2a565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b613ce281613ade565b8114613ced57600080fd5b50565b600081359050613cff81613cd9565b92915050565b600060208284031215613d1b57613d1a613a05565b5b6000613d2984828501613cf0565b91505092915050565b600060208284031215613d4857613d47613a05565b5b6000613d5684828501613a89565b91505092915050565b6000613d6a82613a0a565b9050919050565b613d7a81613d5f565b8114613d8557600080fd5b50565b600081359050613d9781613d71565b92915050565b600060208284031215613db357613db2613a05565b5b6000613dc184828501613d88565b91505092915050565b60008060408385031215613de157613de0613a05565b5b6000613def85828601613a53565b9250506020613e0085828601613a53565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e4060208361395e565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613eac60178361395e565b9150613eb782613e76565b602082019050919050565b60006020820190508181036000830152613edb81613e9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613f6857808604811115613f4457613f43613ee2565b5b6001851615613f535780820291505b8081029050613f6185613f11565b9450613f28565b94509492505050565b600082613f81576001905061403d565b81613f8f576000905061403d565b8160018114613fa55760028114613faf57613fde565b600191505061403d565b60ff841115613fc157613fc0613ee2565b5b8360020a915084821115613fd857613fd7613ee2565b5b5061403d565b5060208310610133831016604e8410600b84101617156140135782820a90508381111561400e5761400d613ee2565b5b61403d565b6140208484846001613f1e565b9250905081840481111561403757614036613ee2565b5b81810290505b9392505050565b600061404f82613a68565b915061405a83613c4b565b92506140877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f71565b905092915050565b600061409a82613a68565b91506140a583613a68565b92508282026140b381613a68565b915082820484148315176140ca576140c9613ee2565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b600061412d60368361395e565b9150614138826140d1565b604082019050919050565b6000602082019050818103600083015261415c81614120565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b60006141bf60228361395e565b91506141ca82614163565b604082019050919050565b600060208201905081810360008301526141ee816141b2565b9050919050565b60008151905061420481613a72565b92915050565b6000602082840312156142205761421f613a05565b5b600061422e848285016141f5565b91505092915050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b600061426d60138361395e565b915061427882614237565b602082019050919050565b6000602082019050818103600083015261429c81614260565b9050919050565b60006142ae82613b40565b9050919050565b6142be816142a3565b82525050565b60006040820190506142d960008301856142b5565b6142e66020830184613b8e565b9392505050565b6000815190506142fc81613cd9565b92915050565b60006020828403121561431857614317613a05565b5b6000614326848285016142ed565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061438b60288361395e565b91506143968261432f565b604082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b60006143cc82613a68565b91506143d783613a68565b92508282039050818111156143ef576143ee613ee2565b5b92915050565b7f45524332303a2077726f6e67207461782076616c756521000000000000000000600082015250565b600061442b60178361395e565b9150614436826143f5565b602082019050919050565b6000602082019050818103600083015261445a8161441e565b9050919050565b6000819050919050565b600061448661448161447c84614461565b613b14565b613a68565b9050919050565b6144968161446b565b82525050565b600060c0820190506144b16000830189613caf565b6144be6020830188613b8e565b6144cb604083018761448d565b6144d8606083018661448d565b6144e56080830185613caf565b6144f260a0830184613b8e565b979650505050505050565b60008060006060848603121561451657614515613a05565b5b6000614524868287016141f5565b9350506020614535868287016141f5565b9250506040614546868287016141f5565b9150509250925092565b60006040820190506145656000830185613caf565b6145726020830184613b8e565b9392505050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f60008201527f6e747261637420746f20706572666f726d207377617000000000000000000000602082015250565b60006145d560368361395e565b91506145e082614579565b604082019050919050565b60006020820190508181036000830152614604816145c8565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e206f72206560008201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000602082015250565b6000614667603a8361395e565b91506146728261460b565b604082019050919050565b600060208201905081810360008301526146968161465a565b9050919050565b7f43412077696c6c206e6f74206265207468652046656520526563656976657200600082015250565b60006146d3601f8361395e565b91506146de8261469d565b602082019050919050565b60006020820190508181036000830152614702816146c6565b9050919050565b7f3020616464792077696c6c206e6f74206265207468652066656520526563656960008201527f7665720000000000000000000000000000000000000000000000000000000000602082015250565b600061476560238361395e565b915061477082614709565b604082019050919050565b6000602082019050818103600083015261479481614758565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006147d1601b8361395e565b91506147dc8261479b565b602082019050919050565b60006020820190508181036000830152614800816147c4565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f203125206f662074686520737570706c790000000000000000000000602082015250565b600061486360358361395e565b915061486e82614807565b604082019050919050565b6000602082019050818103600083015261489281614856565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006148cf601b8361395e565b91506148da82614899565b602082019050919050565b600060208201905081810360008301526148fe816148c2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061496160268361395e565b915061496c82614905565b604082019050919050565b6000602082019050818103600083015261499081614954565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149f360248361395e565b91506149fe82614997565b604082019050919050565b60006020820190508181036000830152614a22816149e6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a8560228361395e565b9150614a9082614a29565b604082019050919050565b60006020820190508181036000830152614ab481614a78565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614b1760258361395e565b9150614b2282614abb565b604082019050919050565b60006020820190508181036000830152614b4681614b0a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ba960238361395e565b9150614bb482614b4d565b604082019050919050565b60006020820190508181036000830152614bd881614b9c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614c3b60298361395e565b9150614c4682614bdf565b604082019050919050565b60006020820190508181036000830152614c6a81614c2e565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614ca760198361395e565b9150614cb282614c71565b602082019050919050565b60006020820190508181036000830152614cd681614c9a565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614d1360138361395e565b9150614d1e82614cdd565b602082019050919050565b60006020820190508181036000830152614d4281614d06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614d8382613a68565b9150614d8e83613a68565b925082614d9e57614d9d614d49565b5b828204905092915050565b6000614db482613a68565b9150614dbf83613a68565b9250828201905080821115614dd757614dd6613ee2565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614e1360198361395e565b9150614e1e82614ddd565b602082019050919050565b60006020820190508181036000830152614e4281614e06565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614e7f601a8361395e565b9150614e8a82614e49565b602082019050919050565b60006020820190508181036000830152614eae81614e72565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b6000614eeb601d8361395e565b9150614ef682614eb5565b602082019050919050565b60006020820190508181036000830152614f1a81614ede565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614f8e81613a3c565b92915050565b600060208284031215614faa57614fa9613a05565b5b6000614fb884828501614f7f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ff681613a2a565b82525050565b60006150088383614fed565b60208301905092915050565b6000602082019050919050565b600061502c82614fc1565b6150368185614fcc565b935061504183614fdd565b8060005b838110156150725781516150598882614ffc565b975061506483615014565b925050600181019050615045565b5085935050505092915050565b600060a0820190506150946000830188613b8e565b6150a1602083018761448d565b81810360408301526150b38186615021565b90506150c26060830185613caf565b6150cf6080830184613b8e565b969550505050505056fea26469706673582212200d95f80ce50645a343cc6f690f2ec5802f7615c5daffa58cd07d483121181bfe64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638c0b5e2211610118578063cc1776d3116100a0578063e699ae1c1161006f578063e699ae1c14610726578063ea1644d51461074f578063eb91e65114610778578063f2fde38b146107a1578063f87dc2c6146107ca5761021a565b8063cc1776d31461066c578063d59b2ba014610697578063dd62ed3e146106c0578063e60db66d146106fd5761021a565b80639cfe42da116100e75780639cfe42da1461058b578063a333b4ab146105b4578063a9059cbb146105dd578063c2c327d11461061a578063c69bebe4146106435761021a565b80638c0b5e22146104df5780638da5cb5b1461050a5780638f3fa8601461053557806395d89b41146105605761021a565b80634415fb611161019b5780636d69b3541161016a5780636d69b3541461041e57806370a0823114610435578063715018a61461047257806382abcce41461048957806385141a77146104b45761021a565b80634415fb61146103ae5780634f2be91f146103c55780634f7041a5146103dc57806351bc3c85146104075761021a565b806318160ddd116101e257806318160ddd146102c95780631ab023e4146102f457806323b872dd1461031d5780632f37aa6d1461035a578063313ce567146103835761021a565b806306fdde031461021f578063095ea7b31461024a5780630f648c3e146102875780631694505e1461029e5761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346107f5565b60405161024191906139e3565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613a9e565b610832565b60405161027e9190613af9565b60405180910390f35b34801561029357600080fd5b5061029c610850565b005b3480156102aa57600080fd5b506102b36109a0565b6040516102c09190613b73565b60405180910390f35b3480156102d557600080fd5b506102de6109c6565b6040516102eb9190613b9d565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190613a9e565b6109ea565b005b34801561032957600080fd5b50610344600480360381019061033f9190613bb8565b610cbe565b6040516103519190613af9565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190613c0b565b610dbe565b005b34801561038f57600080fd5b50610398610eb6565b6040516103a59190613c67565b60405180910390f35b3480156103ba57600080fd5b506103c3610ebf565b005b3480156103d157600080fd5b506103da610f79565b005b3480156103e857600080fd5b506103f161129d565b6040516103fe9190613b9d565b60405180910390f35b34801561041357600080fd5b5061041c6112a3565b005b34801561042a57600080fd5b506104336113af565b005b34801561044157600080fd5b5061045c60048036038101906104579190613c82565b6114d2565b6040516104699190613b9d565b60405180910390f35b34801561047e57600080fd5b5061048761151b565b005b34801561049557600080fd5b5061049e61166e565b6040516104ab9190613af9565b60405180910390f35b3480156104c057600080fd5b506104c9611681565b6040516104d69190613cbe565b60405180910390f35b3480156104eb57600080fd5b506104f4611687565b6040516105019190613b9d565b60405180910390f35b34801561051657600080fd5b5061051f61168d565b60405161052c9190613cbe565b60405180910390f35b34801561054157600080fd5b5061054a6116b6565b6040516105579190613b9d565b60405180910390f35b34801561056c57600080fd5b506105756116bc565b60405161058291906139e3565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad9190613c82565b6116f9565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613d05565b6117e9565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190613a9e565b6118ca565b6040516106119190613af9565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190613d32565b6118e8565b005b34801561064f57600080fd5b5061066a60048036038101906106659190613d9d565b6119e5565b005b34801561067857600080fd5b50610681611c36565b60405161068e9190613b9d565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190613c82565b611c3c565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190613dca565b611e02565b6040516106f49190613b9d565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190613d32565b611e89565b005b34801561073257600080fd5b5061074d60048036038101906107489190613c82565b611ff9565b005b34801561075b57600080fd5b5061077660048036038101906107719190613d32565b6121bf565b005b34801561078457600080fd5b5061079f600480360381019061079a9190613c82565b61225e565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c82565b61234e565b005b3480156107d657600080fd5b506107df61245e565b6040516107ec9190613af9565b60405180910390f35b60606040518060400160405280600881526020017f426162796769726c000000000000000000000000000000000000000000000000815250905090565b600061084661083f612471565b8484612479565b6001905092915050565b610858612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc90613e56565b60405180910390fd5b601060149054906101000a900460ff1615610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90613ec2565b60405180910390fd5b6001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555043600c819055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109d69190614044565b633b9aca006109e5919061408f565b905090565b6109f2612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7690613e56565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490614143565b60405180910390fd5b60008111610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b27906141d5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b699190613cbe565b602060405180830381865afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa919061420a565b811115610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390614283565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610c499291906142c4565b6020604051808303816000875af1158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c9190614302565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a612471565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d81906143a1565b60405180910390fd5b610d95858585612642565b610db285610da1612471565b8584610dad91906143c1565b612479565b60019150509392505050565b610dc6612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4a90613e56565b60405180910390fd5b60198211158015610e655750601e8111155b610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b90614441565b60405180910390fd5b81600a8190555080600b819055505050565b60006009905090565b610ec7612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90613e56565b60405180910390fd5b6009600a610f629190614044565b633b9aca00610f71919061408f565b600881905550565b610f81612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100590613e56565b60405180910390fd5b601060149054906101000a900460ff161561105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590613ec2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fc30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110e89190614044565b633b9aca006110f7919061408f565b612479565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611145306114d2565b60008061115061168d565b426040518863ffffffff1660e01b81526004016111729695949392919061449c565b60606040518083038185885af1158015611190573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b591906144fd565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611257929190614550565b6020604051808303816000875af1158015611276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129a9190614302565b50565b600a5481565b6112ab612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90613e56565b60405180910390fd5b6000611343306114d2565b905060075481101561138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906145eb565b60405180910390fd5b61139381613524565b600047905060008111156113ab576113aa816137e0565b5b5050565b6000479050600081116113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee906141d5565b60405180910390fd5b4781111561143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190614283565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114a2573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611523612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a790613e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060159054906101000a900460ff1681565b61dead81565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600881526020017f424142594749524c000000000000000000000000000000000000000000000000815250905090565b611701612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613e56565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117f1612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613e56565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b60006118de6118d7612471565b8484612642565b6001905092915050565b6118f0612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613e56565b60405180910390fd5b620f42408110156119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba9061467d565b60405180910390fd5b6009600a6119d19190614044565b816119dc919061408f565b60088190555050565b6119ed612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613e56565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf906146e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e9061477b565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f5c0b634383af78953de62ebc96e1ad0a55da269f20ee5f7495aea8153c058bc160405160405180910390a250565b600b5481565b611c44612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613e56565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b906147e7565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e91612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1590613e56565b60405180910390fd5b62989680811115611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90614879565b60405180910390fd5b620f4240811015611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa19061467d565b60405180910390fd5b6009600a611fb89190614044565b81611fc3919061408f565b600781905550807f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647660405160405180910390a250565b612001612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590613e56565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612118906148e5565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b6121c7612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90613e56565b60405180910390fd5b8060098190555050565b612266612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea90613e56565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612356612471565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da90613e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244990614977565b60405180910390fd5b61245b8161388f565b50565b601060149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614a09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e90614a9b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126359190613b9d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a890614b2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271790614bbf565b60405180910390fd5b60008111612763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275a90614c51565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128075750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283d90614cbd565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ec5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561295d57601060149054906101000a900460ff16612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293790614d29565b60405180910390fd5b6064600a5483612950919061408f565b61295a9190614d78565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129fe5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a0857600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aac5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ac75750600d54600c54612ac39190614da9565b4311155b15612ae9576064600e5483612adc919061408f565b612ae69190614d78565b90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b905750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612be65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c3157600854821115612c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2790614e29565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612cd95750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d2f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d7a57600854821115612d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7090614e29565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e0457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612e5a5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612eb05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0e5760095482612ec2856114d2565b612ecc9190614da9565b1115612f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0490614e95565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612fb65750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561300c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561306a576008548261301e856114d2565b6130289190614da9565b1115613069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306090614e95565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130f357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156131495750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561319f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131c1576064600b54836131b4919061408f565b6131be9190614d78565b90505b60006131cc306114d2565b9050601060169054906101000a900460ff161580156132395750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156132515750601060159054906101000a900460ff165b801561325f57506007548110155b156132895761326f600754613524565b6000479050600081111561328757613286476137e0565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d491906143c1565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361332391906143c1565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336d9190614da9565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848661340b91906143c1565b6040516134189190613b9d565b60405180910390a3600082111561351d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134749190614da9565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135149190613b9d565b60405180910390a35b5050505050565b6001601060166101000a81548160ff02191690831515021790555060008111613582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357990614f01565b60405180910390fd5b6000600267ffffffffffffffff81111561359f5761359e614f21565b5b6040519080825280602002602001820160405280156135cd5781602001602082028036833780820191505090505b50905030816000815181106135e5576135e4614f50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561368c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b09190614f94565b816001815181106136c4576136c3614f50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061372b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612479565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161378f95949392919061507f565b600060405180830381600087803b1580156137a957600080fd5b505af11580156137bd573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b60008111613823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161381a90614f01565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561388b573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561398d578082015181840152602081019050613972565b60008484015250505050565b6000601f19601f8301169050919050565b60006139b582613953565b6139bf818561395e565b93506139cf81856020860161396f565b6139d881613999565b840191505092915050565b600060208201905081810360008301526139fd81846139aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a3582613a0a565b9050919050565b613a4581613a2a565b8114613a5057600080fd5b50565b600081359050613a6281613a3c565b92915050565b6000819050919050565b613a7b81613a68565b8114613a8657600080fd5b50565b600081359050613a9881613a72565b92915050565b60008060408385031215613ab557613ab4613a05565b5b6000613ac385828601613a53565b9250506020613ad485828601613a89565b9150509250929050565b60008115159050919050565b613af381613ade565b82525050565b6000602082019050613b0e6000830184613aea565b92915050565b6000819050919050565b6000613b39613b34613b2f84613a0a565b613b14565b613a0a565b9050919050565b6000613b4b82613b1e565b9050919050565b6000613b5d82613b40565b9050919050565b613b6d81613b52565b82525050565b6000602082019050613b886000830184613b64565b92915050565b613b9781613a68565b82525050565b6000602082019050613bb26000830184613b8e565b92915050565b600080600060608486031215613bd157613bd0613a05565b5b6000613bdf86828701613a53565b9350506020613bf086828701613a53565b9250506040613c0186828701613a89565b9150509250925092565b60008060408385031215613c2257613c21613a05565b5b6000613c3085828601613a89565b9250506020613c4185828601613a89565b9150509250929050565b600060ff82169050919050565b613c6181613c4b565b82525050565b6000602082019050613c7c6000830184613c58565b92915050565b600060208284031215613c9857613c97613a05565b5b6000613ca684828501613a53565b91505092915050565b613cb881613a2a565b82525050565b6000602082019050613cd36000830184613caf565b92915050565b613ce281613ade565b8114613ced57600080fd5b50565b600081359050613cff81613cd9565b92915050565b600060208284031215613d1b57613d1a613a05565b5b6000613d2984828501613cf0565b91505092915050565b600060208284031215613d4857613d47613a05565b5b6000613d5684828501613a89565b91505092915050565b6000613d6a82613a0a565b9050919050565b613d7a81613d5f565b8114613d8557600080fd5b50565b600081359050613d9781613d71565b92915050565b600060208284031215613db357613db2613a05565b5b6000613dc184828501613d88565b91505092915050565b60008060408385031215613de157613de0613a05565b5b6000613def85828601613a53565b9250506020613e0085828601613a53565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e4060208361395e565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613eac60178361395e565b9150613eb782613e76565b602082019050919050565b60006020820190508181036000830152613edb81613e9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613f6857808604811115613f4457613f43613ee2565b5b6001851615613f535780820291505b8081029050613f6185613f11565b9450613f28565b94509492505050565b600082613f81576001905061403d565b81613f8f576000905061403d565b8160018114613fa55760028114613faf57613fde565b600191505061403d565b60ff841115613fc157613fc0613ee2565b5b8360020a915084821115613fd857613fd7613ee2565b5b5061403d565b5060208310610133831016604e8410600b84101617156140135782820a90508381111561400e5761400d613ee2565b5b61403d565b6140208484846001613f1e565b9250905081840481111561403757614036613ee2565b5b81810290505b9392505050565b600061404f82613a68565b915061405a83613c4b565b92506140877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f71565b905092915050565b600061409a82613a68565b91506140a583613a68565b92508282026140b381613a68565b915082820484148315176140ca576140c9613ee2565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b600061412d60368361395e565b9150614138826140d1565b604082019050919050565b6000602082019050818103600083015261415c81614120565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b60006141bf60228361395e565b91506141ca82614163565b604082019050919050565b600060208201905081810360008301526141ee816141b2565b9050919050565b60008151905061420481613a72565b92915050565b6000602082840312156142205761421f613a05565b5b600061422e848285016141f5565b91505092915050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b600061426d60138361395e565b915061427882614237565b602082019050919050565b6000602082019050818103600083015261429c81614260565b9050919050565b60006142ae82613b40565b9050919050565b6142be816142a3565b82525050565b60006040820190506142d960008301856142b5565b6142e66020830184613b8e565b9392505050565b6000815190506142fc81613cd9565b92915050565b60006020828403121561431857614317613a05565b5b6000614326848285016142ed565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061438b60288361395e565b91506143968261432f565b604082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b60006143cc82613a68565b91506143d783613a68565b92508282039050818111156143ef576143ee613ee2565b5b92915050565b7f45524332303a2077726f6e67207461782076616c756521000000000000000000600082015250565b600061442b60178361395e565b9150614436826143f5565b602082019050919050565b6000602082019050818103600083015261445a8161441e565b9050919050565b6000819050919050565b600061448661448161447c84614461565b613b14565b613a68565b9050919050565b6144968161446b565b82525050565b600060c0820190506144b16000830189613caf565b6144be6020830188613b8e565b6144cb604083018761448d565b6144d8606083018661448d565b6144e56080830185613caf565b6144f260a0830184613b8e565b979650505050505050565b60008060006060848603121561451657614515613a05565b5b6000614524868287016141f5565b9350506020614535868287016141f5565b9250506040614546868287016141f5565b9150509250925092565b60006040820190506145656000830185613caf565b6145726020830184613b8e565b9392505050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f60008201527f6e747261637420746f20706572666f726d207377617000000000000000000000602082015250565b60006145d560368361395e565b91506145e082614579565b604082019050919050565b60006020820190508181036000830152614604816145c8565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e206f72206560008201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000602082015250565b6000614667603a8361395e565b91506146728261460b565b604082019050919050565b600060208201905081810360008301526146968161465a565b9050919050565b7f43412077696c6c206e6f74206265207468652046656520526563656976657200600082015250565b60006146d3601f8361395e565b91506146de8261469d565b602082019050919050565b60006020820190508181036000830152614702816146c6565b9050919050565b7f3020616464792077696c6c206e6f74206265207468652066656520526563656960008201527f7665720000000000000000000000000000000000000000000000000000000000602082015250565b600061476560238361395e565b915061477082614709565b604082019050919050565b6000602082019050818103600083015261479481614758565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006147d1601b8361395e565b91506147dc8261479b565b602082019050919050565b60006020820190508181036000830152614800816147c4565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f203125206f662074686520737570706c790000000000000000000000602082015250565b600061486360358361395e565b915061486e82614807565b604082019050919050565b6000602082019050818103600083015261489281614856565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006148cf601b8361395e565b91506148da82614899565b602082019050919050565b600060208201905081810360008301526148fe816148c2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061496160268361395e565b915061496c82614905565b604082019050919050565b6000602082019050818103600083015261499081614954565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149f360248361395e565b91506149fe82614997565b604082019050919050565b60006020820190508181036000830152614a22816149e6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a8560228361395e565b9150614a9082614a29565b604082019050919050565b60006020820190508181036000830152614ab481614a78565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614b1760258361395e565b9150614b2282614abb565b604082019050919050565b60006020820190508181036000830152614b4681614b0a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ba960238361395e565b9150614bb482614b4d565b604082019050919050565b60006020820190508181036000830152614bd881614b9c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614c3b60298361395e565b9150614c4682614bdf565b604082019050919050565b60006020820190508181036000830152614c6a81614c2e565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614ca760198361395e565b9150614cb282614c71565b602082019050919050565b60006020820190508181036000830152614cd681614c9a565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614d1360138361395e565b9150614d1e82614cdd565b602082019050919050565b60006020820190508181036000830152614d4281614d06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614d8382613a68565b9150614d8e83613a68565b925082614d9e57614d9d614d49565b5b828204905092915050565b6000614db482613a68565b9150614dbf83613a68565b9250828201905080821115614dd757614dd6613ee2565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614e1360198361395e565b9150614e1e82614ddd565b602082019050919050565b60006020820190508181036000830152614e4281614e06565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000614e7f601a8361395e565b9150614e8a82614e49565b602082019050919050565b60006020820190508181036000830152614eae81614e72565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b6000614eeb601d8361395e565b9150614ef682614eb5565b602082019050919050565b60006020820190508181036000830152614f1a81614ede565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614f8e81613a3c565b92915050565b600060208284031215614faa57614fa9613a05565b5b6000614fb884828501614f7f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ff681613a2a565b82525050565b60006150088383614fed565b60208301905092915050565b6000602082019050919050565b600061502c82614fc1565b6150368185614fcc565b935061504183614fdd565b8060005b838110156150725781516150598882614ffc565b975061506483615014565b925050600181019050615045565b5085935050505092915050565b600060a0820190506150946000830188613b8e565b6150a1602083018761448d565b81810360408301526150b38186615021565b90506150c26060830185613caf565b6150cf6080830184613b8e565b969550505050505056fea26469706673582212200d95f80ce50645a343cc6f690f2ec5802f7615c5daffa58cd07d483121181bfe64736f6c63430008130033

Deployed Bytecode Sourcemap

2864:12683:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5993:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6812:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13454:246;;;;;;;;;;;;;:::i;:::-;;3903:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6264:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14231:476;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6979:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11864:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6175:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12276:71;;;;;;;;;;;;;:::i;:::-;;13706:484;;;;;;;;;;;;;:::i;:::-;;3631:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15106:438;;;;;;;;;;;;;:::i;:::-;;14713:385;;;;;;;;;;;;;:::i;:::-;;6365:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1951:148;;;;;;;;;;;;;:::i;:::-;;4025:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3698:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3506:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1335:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3567:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12096:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12352:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6490:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12480:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12687:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3664:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11612:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6663:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13065:383;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11371:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7395:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12184:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1545:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3987:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5993:83;6030:13;6063:5;;;;;;;;;;;;;;;;;6056:12;;5993:83;:::o;6812:161::-;6887:4;6904:39;6913:12;:10;:12::i;:::-;6927:7;6936:6;6904:8;:39::i;:::-;6961:4;6954:11;;6812:161;;;;:::o;13454:246::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13518:11:::1;;;;;;;;;;;13517:12;13509:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13585:4;13567:15;;:22;;;;;;;;;;;;;;;;;;13615:4;13601:11;;:18;;;;;;;;;;;;;;;;;;13645:12;13629:13;:28;;;;13672:20;;;;;;;;;;13454:246::o:0;3903:41::-;;;;;;;;;;;;;:::o;6264:95::-;6317:7;3264:1;3320:2;:13;;;;:::i;:::-;3307:10;:26;;;;:::i;:::-;6337:14;;6264:95;:::o;14231:476::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14361:4:::1;14339:27;;:10;:27;;::::0;14331:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14454:1;14444:7;:11;14436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14531:10;14524:28;;;14561:4;14524:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14513:7;:54;;14505:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;14609:10;14602:27;;;14630:15;;;;;;;;;;;14647:7;14602:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14690:7;14669:29;;;;;;;;;;14231:476:::0;;:::o;6979:410::-;7077:4;7094:24;7121:11;:19;7133:6;7121:19;;;;;;;;;;;;;;;:33;7141:12;:10;:12::i;:::-;7121:33;;;;;;;;;;;;;;;;7094:60;;7193:6;7173:16;:26;;7165:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7255:36;7265:6;7273:9;7284:6;7255:9;:36::i;:::-;7302:57;7311:6;7319:12;:10;:12::i;:::-;7352:6;7333:16;:25;;;;:::i;:::-;7302:8;:57::i;:::-;7377:4;7370:11;;;6979:410;;;;;:::o;11864:227::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11973:2:::1;11960:9;:15;;:35;;;;;11993:2;11979:10;:16;;11960:35;11952:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:9;12034:6;:18;;;;12073:10;12063:7;:20;;;;11864:227:::0;;:::o;6175:83::-;6216:5;3264:1;6234:16;;6175:83;:::o;12276:71::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3264:1:::1;3320:2;:13;;;;:::i;:::-;3307:10;:26;;;;:::i;:::-;12324:11;:21;;;;12276:71::o:0;13706:484::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13762:11:::1;;;;;;;;;;;13761:12;13753:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13848:42;13811:15;;:80;;;;;;;;;;;;;;;;;;13902:58;13919:4;13934:15;;;;;;;;;;;3264:1;3320:2;:13;;;;:::i;:::-;3307:10;:26;;;;:::i;:::-;13902:8;:58::i;:::-;13971:15;;;;;;;;;;;:31;;;14010:21;14041:4;14047:24;14065:4;14047:9;:24::i;:::-;14072:1;14074::::0;14076:7:::1;:5;:7::i;:::-;14084:15;13971:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14118:13;;;;;;;;;;;14111:29;;;14149:15;;;;;;;;;;;14167:14;14111:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13706:484::o:0;3631:26::-;;;;:::o;15106:438::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15158:28:::1;15189:24;15207:4;15189:9;:24::i;:::-;15158:55;;15256:15;;15232:20;:39;;15224:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;15341:38;15358:20;15341:16;:38::i;:::-;15390:26;15419:21;15390:50;;15475:1;15454:18;:22;15451:86;;;15493:32;15506:18;15493:12;:32::i;:::-;15451:86;15147:397;;15106:438::o:0;14713:385::-;14766:26;14795:21;14766:50;;14856:1;14835:18;:22;14827:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14937:21;14915:18;:43;;14907:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15009:15;;;;;;;;;;;14993:42;;:62;15036:18;14993:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15069:21;;;;;;;;;;14755:343;14713:385::o;6365:119::-;6431:7;6458:9;:18;6468:7;6458:18;;;;;;;;;;;;;;;;6451:25;;6365:119;;;:::o;1951:148::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1:::1;2021:40;;2042:6;::::0;::::1;;;;;;;;2021:40;;;;;;;;;;;;2089:1;2072:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1951:148::o:0;4025:35::-;;;;;;;;;;;;;:::o;3698:79::-;3735:42;3698:79;:::o;3506:53::-;;;;:::o;1335:79::-;1373:7;1400:6;;;;;;;;;;;1393:13;;1335:79;:::o;3567:55::-;;;;:::o;6082:87::-;6121:13;6154:7;;;;;;;;;;;;;;;;;6147:14;;6082:87;:::o;12096:83::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12173:4:::1;12155:6;:15;12162:7;12155:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;12096:83:::0;:::o;12352:123::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12433:5:::1;12415:15;;:23;;;;;;;;;;;;;;;;;;12467:5;12444:29;;;;;;;;;;;;12352:123:::0;:::o;6490:167::-;6568:4;6585:42;6595:12;:10;:12::i;:::-;6609:9;6620:6;6585:9;:42::i;:::-;6645:4;6638:11;;6490:167;;;;:::o;12480:201::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12560:7:::1;12550:6;:17;;12542:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;3264:1;12660:2;:13;;;;:::i;:::-;12651:6;:22;;;;:::i;:::-;12637:11;:36;;;;12480:201:::0;:::o;12687:372::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12801:4:::1;12779:27;;:10;:27;;::::0;12771:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12882:1;12860:24;;:10;:24;;::::0;12852:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12952:10;12934:15;;:28;;;;;;;;;;;;;;;;;;13004:4;12971:18;:30;12990:10;12971:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13040:10;13020:31;;;;;;;;;;;;12687:372:::0;:::o;3664:27::-;;;;:::o;11612:247::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11725:5:::1;11694:36;;:18;:27;11713:7;11694:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;11686:76:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11803:5;11773:18;:27;11792:7;11773:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11843:7;11821:30;;;;;;;;;;;;11612:247:::0;:::o;6663:143::-;6744:7;6771:11;:18;6783:5;6771:18;;;;;;;;;;;;;;;:27;6790:7;6771:27;;;;;;;;;;;;;;;;6764:34;;6663:143;;;;:::o;13065:383::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13169:8:::1;13154:11;:23;;13146:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13269:7;13254:11;:22;;13246:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;3264:1;13382:2;:13;;;;:::i;:::-;13368:11;:27;;;;:::i;:::-;13350:15;:45;;;;13428:11;13407:33;;;;;;;;;;13065:383:::0;:::o;11371:235::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:4:::1;11447:35;;:18;:27;11466:7;11447:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;::::0;11439:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553:4;11523:18;:27;11542:7;11523:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11591:7;11569:30;;;;;;;;;;;;11371:235:::0;:::o;7395:118::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7491:14:::1;7475:13;:30;;;;7395:118:::0;:::o;12184:87::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12264:5:::1;12246:6;:15;12253:7;12246:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12184:87:::0;:::o;1545:203::-;1470:12;:10;:12::i;:::-;1460:22;;:6;;;;;;;;;;:22;;;1452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1656:1:::1;1636:22;;:8;:22;;::::0;1628:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:28;1731:8;1712:18;:28::i;:::-;1545:203:::0;:::o;3987:31::-;;;;;;;;;;;;;:::o;241:98::-;294:7;321:10;314:17;;241:98;:::o;7519:335::-;7629:1;7612:19;;:5;:19;;;7604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7710:1;7691:21;;:7;:21;;;7683:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7792:6;7762:11;:18;7774:5;7762:18;;;;;;;;;;;;;;;:27;7781:7;7762:27;;;;;;;;;;;;;;;:36;;;;7830:7;7814:32;;7823:5;7814:32;;;7839:6;7814:32;;;;;;:::i;:::-;;;;;;;;7519:335;;;:::o;7860:2784::-;7964:1;7948:18;;:4;:18;;;7940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8041:1;8027:16;;:2;:16;;;8019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8111:1;8102:6;:10;8094:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8178:6;:12;8185:4;8178:12;;;;;;;;;;;;;;;;;;;;;;;;;8177:13;:28;;;;;8195:6;:10;8202:2;8195:10;;;;;;;;;;;;;;;;;;;;;;;;;8194:11;8177:28;8169:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8246:15;8283:18;:24;8302:4;8283:24;;;;;;;;;;;;;;;;;;;;;;;;;8282:25;:52;;;;;8312:18;:22;8331:2;8312:22;;;;;;;;;;;;;;;;;;;;;;;;;8311:23;8282:52;8278:184;;;8359:11;;;;;;;;;;;8351:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8447:3;8438:6;;8429;:15;;;;:::i;:::-;:21;;;;:::i;:::-;8419:31;;8278:184;8486:18;:24;8505:4;8486:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8514:18;:22;8533:2;8514:22;;;;;;;;;;;;;;;;;;;;;;;;;8486:50;8482:94;;;8563:1;8553:11;;8482:94;8609:18;:24;8628:4;8609:24;;;;;;;;;;;;;;;;;;;;;;;;;8608:25;:52;;;;;8638:18;:22;8657:2;8638:22;;;;;;;;;;;;;;;;;;;;;;;;;8637:23;8608:52;:96;;;;;8696:8;;8680:13;;:24;;;;:::i;:::-;8664:12;:40;;8608:96;8604:166;;;8753:3;8741:9;;8732:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;8722:34;;8604:166;8805:13;;;;;;;;;;;8797:21;;:4;:21;;;:50;;;;;8823:18;:24;8842:4;8823:24;;;;;;;;;;;;;;;;;;;;;;;;;8822:25;8797:50;:77;;;;;8852:18;:22;8871:2;8852:22;;;;;;;;;;;;;;;;;;;;;;;;;8851:23;8797:77;8793:172;;;8910:11;;8900:6;:21;;8892:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8793:172;9000:13;;;;;;;;;;;8992:21;;:4;:21;;;;:50;;;;;9018:18;:24;9037:4;9018:24;;;;;;;;;;;;;;;;;;;;;;;;;9017:25;8992:50;:77;;;;;9047:18;:22;9066:2;9047:22;;;;;;;;;;;;;;;;;;;;;;;;;9046:23;8992:77;8988:172;;;9105:11;;9095:6;:21;;9087:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8988:172;9182:13;;;;;;;;;;;9176:19;;:2;:19;;;;:44;;;;;9215:4;9199:21;;:4;:21;;;;9176:44;:73;;;;;9225:18;:24;9244:4;9225:24;;;;;;;;;;;;;;;;;;;;;;;;;9224:25;9176:73;:100;;;;;9254:18;:22;9273:2;9254:22;;;;;;;;;;;;;;;;;;;;;;;;;9253:23;9176:100;9172:212;;;9326:13;;9316:6;9300:13;9310:2;9300:9;:13::i;:::-;:22;;;;:::i;:::-;:39;;9292:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9172:212;9408:13;;;;;;;;;;;9402:19;;:2;:19;;;;:48;;;;;9426:18;:24;9445:4;9426:24;;;;;;;;;;;;;;;;;;;;;;;;;9425:25;9402:48;:75;;;;;9455:18;:22;9474:2;9455:22;;;;;;;;;;;;;;;;;;;;;;;;;9454:23;9402:75;9398:187;;;9529:11;;9519:6;9503:13;9513:2;9503:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;9495:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9398:187;9617:13;;;;;;;;;;;9611:19;;:2;:19;;;:44;;;;;9650:4;9634:21;;:4;:21;;;;9611:44;:73;;;;;9660:18;:24;9679:4;9660:24;;;;;;;;;;;;;;;;;;;;;;;;;9659:25;9611:73;:100;;;;;9689:18;:22;9708:2;9689:22;;;;;;;;;;;;;;;;;;;;;;;;;9688:23;9611:100;9607:199;;;9765:3;9755:7;;9746:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;9736:32;;9607:199;9831:28;9862:24;9880:4;9862:9;:24::i;:::-;9831:55;;9906:6;;;;;;;;;;;9905:7;:32;;;;;9924:13;;;;;;;;;;;9916:21;;:4;:21;;;;9905:32;:51;;;;;9941:15;;;;;;;;;;;9905:51;:94;;;;;9984:15;;9960:20;:39;;9905:94;9901:376;;;10020:33;10037:15;;10020:16;:33::i;:::-;10088:26;10117:21;10088:50;;10181:1;10160:18;:22;10157:105;;;10207:35;10220:21;10207:12;:35::i;:::-;10157:105;10001:276;9901:376;10333:6;10315:9;:15;10325:4;10315:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;10297:9;:15;10307:4;10297:15;;;;;;;;;;;;;;;:42;;;;10394:7;10384:6;:18;;;;:::i;:::-;10367:9;:13;10377:2;10367:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10351:9;:13;10361:2;10351:13;;;;;;;;;;;;;;;:52;;;;10434:2;10419:38;;10428:4;10419:38;;;10448:7;10438:6;:18;;;;:::i;:::-;10419:38;;;;;;:::i;:::-;;;;;;;;10492:1;10482:7;:11;10479:158;;;10562:7;10534:9;:24;10552:4;10534:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10507:9;:24;10525:4;10507:24;;;;;;;;;;;;;;;:63;;;;10611:4;10588:37;;10597:4;10588:37;;;10617:7;10588:37;;;;;;:::i;:::-;;;;;;;;10479:158;7929:2715;;7860:2784;;;:::o;10650:551::-;4578:4;4569:6;;:13;;;;;;;;;;;;;;;;;;10750:1:::1;10736:11;:15;10728:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:21;10834:1;10820:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:40;;10865:4;10847;10852:1;10847:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10891:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10881:4;10886:1;10881:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10924:62;10941:4;10956:15;;;;;;;;;;;10974:11;10924:8;:62::i;:::-;10997:15;;;;;;;;;;;:66;;;11078:11;11104:1;11120:4;11147;11167:15;10997:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10717:484;4614:5:::0;4605:6;;:14;;;;;;;;;;;;;;;;;;10650:551;:::o;11207:159::-;11280:1;11271:6;:10;11263:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11326:15;;;;;;;;;;;:24;;:32;11351:6;11326:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11207:159;:::o;1754:191::-;1828:16;1847:6;;;;;;;;;;;1828:25;;1873:8;1864:6;;:17;;;;;;;;;;;;;;;;;;1928:8;1897:40;;1918:8;1897:40;;;;;;;;;;;;1817:128;1754:191;:::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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:474::-;5464:6;5472;5521:2;5509:9;5500:7;5496:23;5492:32;5489:119;;;5527:79;;:::i;:::-;5489:119;5647:1;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5618:117;5774:2;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5745:118;5396:474;;;;;:::o;5876:86::-;5911:7;5951:4;5944:5;5940:16;5929:27;;5876:86;;;:::o;5968:112::-;6051:22;6067:5;6051:22;:::i;:::-;6046:3;6039:35;5968:112;;:::o;6086:214::-;6175:4;6213:2;6202:9;6198:18;6190:26;;6226:67;6290:1;6279:9;6275:17;6266:6;6226:67;:::i;:::-;6086:214;;;;:::o;6306:329::-;6365:6;6414:2;6402:9;6393:7;6389:23;6385:32;6382:119;;;6420:79;;:::i;:::-;6382:119;6540:1;6565:53;6610:7;6601:6;6590:9;6586:22;6565:53;:::i;:::-;6555:63;;6511:117;6306:329;;;;:::o;6641:118::-;6728:24;6746:5;6728:24;:::i;:::-;6723:3;6716:37;6641:118;;:::o;6765:222::-;6858:4;6896:2;6885:9;6881:18;6873:26;;6909:71;6977:1;6966:9;6962:17;6953:6;6909:71;:::i;:::-;6765:222;;;;:::o;6993:116::-;7063:21;7078:5;7063:21;:::i;:::-;7056:5;7053:32;7043:60;;7099:1;7096;7089:12;7043:60;6993:116;:::o;7115:133::-;7158:5;7196:6;7183:20;7174:29;;7212:30;7236:5;7212:30;:::i;:::-;7115:133;;;;:::o;7254:323::-;7310:6;7359:2;7347:9;7338:7;7334:23;7330:32;7327:119;;;7365:79;;:::i;:::-;7327:119;7485:1;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7456:114;7254:323;;;;:::o;7583:329::-;7642:6;7691:2;7679:9;7670:7;7666:23;7662:32;7659:119;;;7697:79;;:::i;:::-;7659:119;7817:1;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7788:117;7583:329;;;;:::o;7918:104::-;7963:7;7992:24;8010:5;7992:24;:::i;:::-;7981:35;;7918:104;;;:::o;8028:138::-;8109:32;8135:5;8109:32;:::i;:::-;8102:5;8099:43;8089:71;;8156:1;8153;8146:12;8089:71;8028:138;:::o;8172:155::-;8226:5;8264:6;8251:20;8242:29;;8280:41;8315:5;8280:41;:::i;:::-;8172:155;;;;:::o;8333:345::-;8400:6;8449:2;8437:9;8428:7;8424:23;8420:32;8417:119;;;8455:79;;:::i;:::-;8417:119;8575:1;8600:61;8653:7;8644:6;8633:9;8629:22;8600:61;:::i;:::-;8590:71;;8546:125;8333:345;;;;:::o;8684:474::-;8752:6;8760;8809:2;8797:9;8788:7;8784:23;8780:32;8777:119;;;8815:79;;:::i;:::-;8777:119;8935:1;8960:53;9005:7;8996:6;8985:9;8981:22;8960:53;:::i;:::-;8950:63;;8906:117;9062:2;9088:53;9133:7;9124:6;9113:9;9109:22;9088:53;:::i;:::-;9078:63;;9033:118;8684:474;;;;;:::o;9164:182::-;9304:34;9300:1;9292:6;9288:14;9281:58;9164:182;:::o;9352:366::-;9494:3;9515:67;9579:2;9574:3;9515:67;:::i;:::-;9508:74;;9591:93;9680:3;9591:93;:::i;:::-;9709:2;9704:3;9700:12;9693:19;;9352:366;;;:::o;9724:419::-;9890:4;9928:2;9917:9;9913:18;9905:26;;9977:9;9971:4;9967:20;9963:1;9952:9;9948:17;9941:47;10005:131;10131:4;10005:131;:::i;:::-;9997:139;;9724:419;;;:::o;10149:173::-;10289:25;10285:1;10277:6;10273:14;10266:49;10149:173;:::o;10328:366::-;10470:3;10491:67;10555:2;10550:3;10491:67;:::i;:::-;10484:74;;10567:93;10656:3;10567:93;:::i;:::-;10685:2;10680:3;10676:12;10669:19;;10328:366;;;:::o;10700:419::-;10866:4;10904:2;10893:9;10889:18;10881:26;;10953:9;10947:4;10943:20;10939:1;10928:9;10924:17;10917:47;10981:131;11107:4;10981:131;:::i;:::-;10973:139;;10700:419;;;:::o;11125:180::-;11173:77;11170:1;11163:88;11270:4;11267:1;11260:15;11294:4;11291:1;11284:15;11311:102;11353:8;11400:5;11397:1;11393:13;11372:34;;11311:102;;;:::o;11419:848::-;11480:5;11487:4;11511:6;11502:15;;11535:5;11526:14;;11549:712;11570:1;11560:8;11557:15;11549:712;;;11665:4;11660:3;11656:14;11650:4;11647:24;11644:50;;;11674:18;;:::i;:::-;11644:50;11724:1;11714:8;11710:16;11707:451;;;12139:4;12132:5;12128:16;12119:25;;11707:451;12189:4;12183;12179:15;12171:23;;12219:32;12242:8;12219:32;:::i;:::-;12207:44;;11549:712;;;11419:848;;;;;;;:::o;12273:1073::-;12327:5;12518:8;12508:40;;12539:1;12530:10;;12541:5;;12508:40;12567:4;12557:36;;12584:1;12575:10;;12586:5;;12557:36;12653:4;12701:1;12696:27;;;;12737:1;12732:191;;;;12646:277;;12696:27;12714:1;12705:10;;12716:5;;;12732:191;12777:3;12767:8;12764:17;12761:43;;;12784:18;;:::i;:::-;12761:43;12833:8;12830:1;12826:16;12817:25;;12868:3;12861:5;12858:14;12855:40;;;12875:18;;:::i;:::-;12855:40;12908:5;;;12646:277;;13032:2;13022:8;13019:16;13013:3;13007:4;13004:13;13000:36;12982:2;12972:8;12969:16;12964:2;12958:4;12955:12;12951:35;12935:111;12932:246;;;13088:8;13082:4;13078:19;13069:28;;13123:3;13116:5;13113:14;13110:40;;;13130:18;;:::i;:::-;13110:40;13163:5;;12932:246;13203:42;13241:3;13231:8;13225:4;13222:1;13203:42;:::i;:::-;13188:57;;;;13277:4;13272:3;13268:14;13261:5;13258:25;13255:51;;;13286:18;;:::i;:::-;13255:51;13335:4;13328:5;13324:16;13315:25;;12273:1073;;;;;;:::o;13352:281::-;13410:5;13434:23;13452:4;13434:23;:::i;:::-;13426:31;;13478:25;13494:8;13478:25;:::i;:::-;13466:37;;13522:104;13559:66;13549:8;13543:4;13522:104;:::i;:::-;13513:113;;13352:281;;;;:::o;13639:410::-;13679:7;13702:20;13720:1;13702:20;:::i;:::-;13697:25;;13736:20;13754:1;13736:20;:::i;:::-;13731:25;;13791:1;13788;13784:9;13813:30;13831:11;13813:30;:::i;:::-;13802:41;;13992:1;13983:7;13979:15;13976:1;13973:22;13953:1;13946:9;13926:83;13903:139;;14022:18;;:::i;:::-;13903:139;13687:362;13639:410;;;;:::o;14055:241::-;14195:34;14191:1;14183:6;14179:14;14172:58;14264:24;14259:2;14251:6;14247:15;14240:49;14055:241;:::o;14302:366::-;14444:3;14465:67;14529:2;14524:3;14465:67;:::i;:::-;14458:74;;14541:93;14630:3;14541:93;:::i;:::-;14659:2;14654:3;14650:12;14643:19;;14302:366;;;:::o;14674:419::-;14840:4;14878:2;14867:9;14863:18;14855:26;;14927:9;14921:4;14917:20;14913:1;14902:9;14898:17;14891:47;14955:131;15081:4;14955:131;:::i;:::-;14947:139;;14674:419;;;:::o;15099:221::-;15239:34;15235:1;15227:6;15223:14;15216:58;15308:4;15303:2;15295:6;15291:15;15284:29;15099:221;:::o;15326:366::-;15468:3;15489:67;15553:2;15548:3;15489:67;:::i;:::-;15482:74;;15565:93;15654:3;15565:93;:::i;:::-;15683:2;15678:3;15674:12;15667:19;;15326:366;;;:::o;15698:419::-;15864:4;15902:2;15891:9;15887:18;15879:26;;15951:9;15945:4;15941:20;15937:1;15926:9;15922:17;15915:47;15979:131;16105:4;15979:131;:::i;:::-;15971:139;;15698:419;;;:::o;16123:143::-;16180:5;16211:6;16205:13;16196:22;;16227:33;16254:5;16227:33;:::i;:::-;16123:143;;;;:::o;16272:351::-;16342:6;16391:2;16379:9;16370:7;16366:23;16362:32;16359:119;;;16397:79;;:::i;:::-;16359:119;16517:1;16542:64;16598:7;16589:6;16578:9;16574:22;16542:64;:::i;:::-;16532:74;;16488:128;16272:351;;;;:::o;16629:169::-;16769:21;16765:1;16757:6;16753:14;16746:45;16629:169;:::o;16804:366::-;16946:3;16967:67;17031:2;17026:3;16967:67;:::i;:::-;16960:74;;17043:93;17132:3;17043:93;:::i;:::-;17161:2;17156:3;17152:12;17145:19;;16804:366;;;:::o;17176:419::-;17342:4;17380:2;17369:9;17365:18;17357:26;;17429:9;17423:4;17419:20;17415:1;17404:9;17400:17;17393:47;17457:131;17583:4;17457:131;:::i;:::-;17449:139;;17176:419;;;:::o;17601:134::-;17659:9;17692:37;17723:5;17692:37;:::i;:::-;17679:50;;17601:134;;;:::o;17741:147::-;17836:45;17875:5;17836:45;:::i;:::-;17831:3;17824:58;17741:147;;:::o;17894:348::-;18023:4;18061:2;18050:9;18046:18;18038:26;;18074:79;18150:1;18139:9;18135:17;18126:6;18074:79;:::i;:::-;18163:72;18231:2;18220:9;18216:18;18207:6;18163:72;:::i;:::-;17894:348;;;;;:::o;18248:137::-;18302:5;18333:6;18327:13;18318:22;;18349:30;18373:5;18349:30;:::i;:::-;18248:137;;;;:::o;18391:345::-;18458:6;18507:2;18495:9;18486:7;18482:23;18478:32;18475:119;;;18513:79;;:::i;:::-;18475:119;18633:1;18658:61;18711:7;18702:6;18691:9;18687:22;18658:61;:::i;:::-;18648:71;;18604:125;18391:345;;;;:::o;18742:227::-;18882:34;18878:1;18870:6;18866:14;18859:58;18951:10;18946:2;18938:6;18934:15;18927:35;18742:227;:::o;18975:366::-;19117:3;19138:67;19202:2;19197:3;19138:67;:::i;:::-;19131:74;;19214:93;19303:3;19214:93;:::i;:::-;19332:2;19327:3;19323:12;19316:19;;18975:366;;;:::o;19347:419::-;19513:4;19551:2;19540:9;19536:18;19528:26;;19600:9;19594:4;19590:20;19586:1;19575:9;19571:17;19564:47;19628:131;19754:4;19628:131;:::i;:::-;19620:139;;19347:419;;;:::o;19772:194::-;19812:4;19832:20;19850:1;19832:20;:::i;:::-;19827:25;;19866:20;19884:1;19866:20;:::i;:::-;19861:25;;19910:1;19907;19903:9;19895:17;;19934:1;19928:4;19925:11;19922:37;;;19939:18;;:::i;:::-;19922:37;19772:194;;;;:::o;19972:173::-;20112:25;20108:1;20100:6;20096:14;20089:49;19972:173;:::o;20151:366::-;20293:3;20314:67;20378:2;20373:3;20314:67;:::i;:::-;20307:74;;20390:93;20479:3;20390:93;:::i;:::-;20508:2;20503:3;20499:12;20492:19;;20151:366;;;:::o;20523:419::-;20689:4;20727:2;20716:9;20712:18;20704:26;;20776:9;20770:4;20766:20;20762:1;20751:9;20747:17;20740:47;20804:131;20930:4;20804:131;:::i;:::-;20796:139;;20523:419;;;:::o;20948:85::-;20993:7;21022:5;21011:16;;20948:85;;;:::o;21039:158::-;21097:9;21130:61;21148:42;21157:32;21183:5;21157:32;:::i;:::-;21148:42;:::i;:::-;21130:61;:::i;:::-;21117:74;;21039:158;;;:::o;21203:147::-;21298:45;21337:5;21298:45;:::i;:::-;21293:3;21286:58;21203:147;;:::o;21356:807::-;21605:4;21643:3;21632:9;21628:19;21620:27;;21657:71;21725:1;21714:9;21710:17;21701:6;21657:71;:::i;:::-;21738:72;21806:2;21795:9;21791:18;21782:6;21738:72;:::i;:::-;21820:80;21896:2;21885:9;21881:18;21872:6;21820:80;:::i;:::-;21910;21986:2;21975:9;21971:18;21962:6;21910:80;:::i;:::-;22000:73;22068:3;22057:9;22053:19;22044:6;22000:73;:::i;:::-;22083;22151:3;22140:9;22136:19;22127:6;22083:73;:::i;:::-;21356:807;;;;;;;;;:::o;22169:663::-;22257:6;22265;22273;22322:2;22310:9;22301:7;22297:23;22293:32;22290:119;;;22328:79;;:::i;:::-;22290:119;22448:1;22473:64;22529:7;22520:6;22509:9;22505:22;22473:64;:::i;:::-;22463:74;;22419:128;22586:2;22612:64;22668:7;22659:6;22648:9;22644:22;22612:64;:::i;:::-;22602:74;;22557:129;22725:2;22751:64;22807:7;22798:6;22787:9;22783:22;22751:64;:::i;:::-;22741:74;;22696:129;22169:663;;;;;:::o;22838:332::-;22959:4;22997:2;22986:9;22982:18;22974:26;;23010:71;23078:1;23067:9;23063:17;23054:6;23010:71;:::i;:::-;23091:72;23159:2;23148:9;23144:18;23135:6;23091:72;:::i;:::-;22838:332;;;;;:::o;23176:241::-;23316:34;23312:1;23304:6;23300:14;23293:58;23385:24;23380:2;23372:6;23368:15;23361:49;23176:241;:::o;23423:366::-;23565:3;23586:67;23650:2;23645:3;23586:67;:::i;:::-;23579:74;;23662:93;23751:3;23662:93;:::i;:::-;23780:2;23775:3;23771:12;23764:19;;23423:366;;;:::o;23795:419::-;23961:4;23999:2;23988:9;23984:18;23976:26;;24048:9;24042:4;24038:20;24034:1;24023:9;24019:17;24012:47;24076:131;24202:4;24076:131;:::i;:::-;24068:139;;23795:419;;;:::o;24220:245::-;24360:34;24356:1;24348:6;24344:14;24337:58;24429:28;24424:2;24416:6;24412:15;24405:53;24220:245;:::o;24471:366::-;24613:3;24634:67;24698:2;24693:3;24634:67;:::i;:::-;24627:74;;24710:93;24799:3;24710:93;:::i;:::-;24828:2;24823:3;24819:12;24812:19;;24471:366;;;:::o;24843:419::-;25009:4;25047:2;25036:9;25032:18;25024:26;;25096:9;25090:4;25086:20;25082:1;25071:9;25067:17;25060:47;25124:131;25250:4;25124:131;:::i;:::-;25116:139;;24843:419;;;:::o;25268:181::-;25408:33;25404:1;25396:6;25392:14;25385:57;25268:181;:::o;25455:366::-;25597:3;25618:67;25682:2;25677:3;25618:67;:::i;:::-;25611:74;;25694:93;25783:3;25694:93;:::i;:::-;25812:2;25807:3;25803:12;25796:19;;25455:366;;;:::o;25827:419::-;25993:4;26031:2;26020:9;26016:18;26008:26;;26080:9;26074:4;26070:20;26066:1;26055:9;26051:17;26044:47;26108:131;26234:4;26108:131;:::i;:::-;26100:139;;25827:419;;;:::o;26252:222::-;26392:34;26388:1;26380:6;26376:14;26369:58;26461:5;26456:2;26448:6;26444:15;26437:30;26252:222;:::o;26480:366::-;26622:3;26643:67;26707:2;26702:3;26643:67;:::i;:::-;26636:74;;26719:93;26808:3;26719:93;:::i;:::-;26837:2;26832:3;26828:12;26821:19;;26480:366;;;:::o;26852:419::-;27018:4;27056:2;27045:9;27041:18;27033:26;;27105:9;27099:4;27095:20;27091:1;27080:9;27076:17;27069:47;27133:131;27259:4;27133:131;:::i;:::-;27125:139;;26852:419;;;:::o;27277:177::-;27417:29;27413:1;27405:6;27401:14;27394:53;27277:177;:::o;27460:366::-;27602:3;27623:67;27687:2;27682:3;27623:67;:::i;:::-;27616:74;;27699:93;27788:3;27699:93;:::i;:::-;27817:2;27812:3;27808:12;27801:19;;27460:366;;;:::o;27832:419::-;27998:4;28036:2;28025:9;28021:18;28013:26;;28085:9;28079:4;28075:20;28071:1;28060:9;28056:17;28049:47;28113:131;28239:4;28113:131;:::i;:::-;28105:139;;27832:419;;;:::o;28257:240::-;28397:34;28393:1;28385:6;28381:14;28374:58;28466:23;28461:2;28453:6;28449:15;28442:48;28257:240;:::o;28503:366::-;28645:3;28666:67;28730:2;28725:3;28666:67;:::i;:::-;28659:74;;28742:93;28831:3;28742:93;:::i;:::-;28860:2;28855:3;28851:12;28844:19;;28503:366;;;:::o;28875:419::-;29041:4;29079:2;29068:9;29064:18;29056:26;;29128:9;29122:4;29118:20;29114:1;29103:9;29099:17;29092:47;29156:131;29282:4;29156:131;:::i;:::-;29148:139;;28875:419;;;:::o;29300:177::-;29440:29;29436:1;29428:6;29424:14;29417:53;29300:177;:::o;29483:366::-;29625:3;29646:67;29710:2;29705:3;29646:67;:::i;:::-;29639:74;;29722:93;29811:3;29722:93;:::i;:::-;29840:2;29835:3;29831:12;29824:19;;29483:366;;;:::o;29855:419::-;30021:4;30059:2;30048:9;30044:18;30036:26;;30108:9;30102:4;30098:20;30094:1;30083:9;30079:17;30072:47;30136:131;30262:4;30136:131;:::i;:::-;30128:139;;29855:419;;;:::o;30280:225::-;30420:34;30416:1;30408:6;30404:14;30397:58;30489:8;30484:2;30476:6;30472:15;30465:33;30280:225;:::o;30511:366::-;30653:3;30674:67;30738:2;30733:3;30674:67;:::i;:::-;30667:74;;30750:93;30839:3;30750:93;:::i;:::-;30868:2;30863:3;30859:12;30852:19;;30511:366;;;:::o;30883:419::-;31049:4;31087:2;31076:9;31072:18;31064:26;;31136:9;31130:4;31126:20;31122:1;31111:9;31107:17;31100:47;31164:131;31290:4;31164:131;:::i;:::-;31156:139;;30883:419;;;:::o;31308:223::-;31448:34;31444:1;31436:6;31432:14;31425:58;31517:6;31512:2;31504:6;31500:15;31493:31;31308:223;:::o;31537:366::-;31679:3;31700:67;31764:2;31759:3;31700:67;:::i;:::-;31693:74;;31776:93;31865:3;31776:93;:::i;:::-;31894:2;31889:3;31885:12;31878:19;;31537:366;;;:::o;31909:419::-;32075:4;32113:2;32102:9;32098:18;32090:26;;32162:9;32156:4;32152:20;32148:1;32137:9;32133:17;32126:47;32190:131;32316:4;32190:131;:::i;:::-;32182:139;;31909:419;;;:::o;32334:221::-;32474:34;32470:1;32462:6;32458:14;32451:58;32543:4;32538:2;32530:6;32526:15;32519:29;32334:221;:::o;32561:366::-;32703:3;32724:67;32788:2;32783:3;32724:67;:::i;:::-;32717:74;;32800:93;32889:3;32800:93;:::i;:::-;32918:2;32913:3;32909:12;32902:19;;32561:366;;;:::o;32933:419::-;33099:4;33137:2;33126:9;33122:18;33114:26;;33186:9;33180:4;33176:20;33172:1;33161:9;33157:17;33150:47;33214:131;33340:4;33214:131;:::i;:::-;33206:139;;32933:419;;;:::o;33358:224::-;33498:34;33494:1;33486:6;33482:14;33475:58;33567:7;33562:2;33554:6;33550:15;33543:32;33358:224;:::o;33588:366::-;33730:3;33751:67;33815:2;33810:3;33751:67;:::i;:::-;33744:74;;33827:93;33916:3;33827:93;:::i;:::-;33945:2;33940:3;33936:12;33929:19;;33588:366;;;:::o;33960:419::-;34126:4;34164:2;34153:9;34149:18;34141:26;;34213:9;34207:4;34203:20;34199:1;34188:9;34184:17;34177:47;34241:131;34367:4;34241:131;:::i;:::-;34233:139;;33960:419;;;:::o;34385:222::-;34525:34;34521:1;34513:6;34509:14;34502:58;34594:5;34589:2;34581:6;34577:15;34570:30;34385:222;:::o;34613:366::-;34755:3;34776:67;34840:2;34835:3;34776:67;:::i;:::-;34769:74;;34852:93;34941:3;34852:93;:::i;:::-;34970:2;34965:3;34961:12;34954:19;;34613:366;;;:::o;34985:419::-;35151:4;35189:2;35178:9;35174:18;35166:26;;35238:9;35232:4;35228:20;35224:1;35213:9;35209:17;35202:47;35266:131;35392:4;35266:131;:::i;:::-;35258:139;;34985:419;;;:::o;35410:228::-;35550:34;35546:1;35538:6;35534:14;35527:58;35619:11;35614:2;35606:6;35602:15;35595:36;35410:228;:::o;35644:366::-;35786:3;35807:67;35871:2;35866:3;35807:67;:::i;:::-;35800:74;;35883:93;35972:3;35883:93;:::i;:::-;36001:2;35996:3;35992:12;35985:19;;35644:366;;;:::o;36016:419::-;36182:4;36220:2;36209:9;36205:18;36197:26;;36269:9;36263:4;36259:20;36255:1;36244:9;36240:17;36233:47;36297:131;36423:4;36297:131;:::i;:::-;36289:139;;36016:419;;;:::o;36441:175::-;36581:27;36577:1;36569:6;36565:14;36558:51;36441:175;:::o;36622:366::-;36764:3;36785:67;36849:2;36844:3;36785:67;:::i;:::-;36778:74;;36861:93;36950:3;36861:93;:::i;:::-;36979:2;36974:3;36970:12;36963:19;;36622:366;;;:::o;36994:419::-;37160:4;37198:2;37187:9;37183:18;37175:26;;37247:9;37241:4;37237:20;37233:1;37222:9;37218:17;37211:47;37275:131;37401:4;37275:131;:::i;:::-;37267:139;;36994:419;;;:::o;37419:169::-;37559:21;37555:1;37547:6;37543:14;37536:45;37419:169;:::o;37594:366::-;37736:3;37757:67;37821:2;37816:3;37757:67;:::i;:::-;37750:74;;37833:93;37922:3;37833:93;:::i;:::-;37951:2;37946:3;37942:12;37935:19;;37594:366;;;:::o;37966:419::-;38132:4;38170:2;38159:9;38155:18;38147:26;;38219:9;38213:4;38209:20;38205:1;38194:9;38190:17;38183:47;38247:131;38373:4;38247:131;:::i;:::-;38239:139;;37966:419;;;:::o;38391:180::-;38439:77;38436:1;38429:88;38536:4;38533:1;38526:15;38560:4;38557:1;38550:15;38577:185;38617:1;38634:20;38652:1;38634:20;:::i;:::-;38629:25;;38668:20;38686:1;38668:20;:::i;:::-;38663:25;;38707:1;38697:35;;38712:18;;:::i;:::-;38697:35;38754:1;38751;38747:9;38742:14;;38577:185;;;;:::o;38768:191::-;38808:3;38827:20;38845:1;38827:20;:::i;:::-;38822:25;;38861:20;38879:1;38861:20;:::i;:::-;38856:25;;38904:1;38901;38897:9;38890:16;;38925:3;38922:1;38919:10;38916:36;;;38932:18;;:::i;:::-;38916:36;38768:191;;;;:::o;38965:175::-;39105:27;39101:1;39093:6;39089:14;39082:51;38965:175;:::o;39146:366::-;39288:3;39309:67;39373:2;39368:3;39309:67;:::i;:::-;39302:74;;39385:93;39474:3;39385:93;:::i;:::-;39503:2;39498:3;39494:12;39487:19;;39146:366;;;:::o;39518:419::-;39684:4;39722:2;39711:9;39707:18;39699:26;;39771:9;39765:4;39761:20;39757:1;39746:9;39742:17;39735:47;39799:131;39925:4;39799:131;:::i;:::-;39791:139;;39518:419;;;:::o;39943:176::-;40083:28;40079:1;40071:6;40067:14;40060:52;39943:176;:::o;40125:366::-;40267:3;40288:67;40352:2;40347:3;40288:67;:::i;:::-;40281:74;;40364:93;40453:3;40364:93;:::i;:::-;40482:2;40477:3;40473:12;40466:19;;40125:366;;;:::o;40497:419::-;40663:4;40701:2;40690:9;40686:18;40678:26;;40750:9;40744:4;40740:20;40736:1;40725:9;40721:17;40714:47;40778:131;40904:4;40778:131;:::i;:::-;40770:139;;40497:419;;;:::o;40922:179::-;41062:31;41058:1;41050:6;41046:14;41039:55;40922:179;:::o;41107:366::-;41249:3;41270:67;41334:2;41329:3;41270:67;:::i;:::-;41263:74;;41346:93;41435:3;41346:93;:::i;:::-;41464:2;41459:3;41455:12;41448:19;;41107:366;;;:::o;41479:419::-;41645:4;41683:2;41672:9;41668:18;41660:26;;41732:9;41726:4;41722:20;41718:1;41707:9;41703:17;41696:47;41760:131;41886:4;41760:131;:::i;:::-;41752:139;;41479:419;;;:::o;41904:180::-;41952:77;41949:1;41942:88;42049:4;42046:1;42039:15;42073:4;42070:1;42063:15;42090:180;42138:77;42135:1;42128:88;42235:4;42232:1;42225:15;42259:4;42256:1;42249:15;42276:143;42333:5;42364:6;42358:13;42349:22;;42380:33;42407:5;42380:33;:::i;:::-;42276:143;;;;:::o;42425:351::-;42495:6;42544:2;42532:9;42523:7;42519:23;42515:32;42512:119;;;42550:79;;:::i;:::-;42512:119;42670:1;42695:64;42751:7;42742:6;42731:9;42727:22;42695:64;:::i;:::-;42685:74;;42641:128;42425:351;;;;:::o;42782:114::-;42849:6;42883:5;42877:12;42867:22;;42782:114;;;:::o;42902:184::-;43001:11;43035:6;43030:3;43023:19;43075:4;43070:3;43066:14;43051:29;;42902:184;;;;:::o;43092:132::-;43159:4;43182:3;43174:11;;43212:4;43207:3;43203:14;43195:22;;43092:132;;;:::o;43230:108::-;43307:24;43325:5;43307:24;:::i;:::-;43302:3;43295:37;43230:108;;:::o;43344:179::-;43413:10;43434:46;43476:3;43468:6;43434:46;:::i;:::-;43512:4;43507:3;43503:14;43489:28;;43344:179;;;;:::o;43529:113::-;43599:4;43631;43626:3;43622:14;43614:22;;43529:113;;;:::o;43678:732::-;43797:3;43826:54;43874:5;43826:54;:::i;:::-;43896:86;43975:6;43970:3;43896:86;:::i;:::-;43889:93;;44006:56;44056:5;44006:56;:::i;:::-;44085:7;44116:1;44101:284;44126:6;44123:1;44120:13;44101:284;;;44202:6;44196:13;44229:63;44288:3;44273:13;44229:63;:::i;:::-;44222:70;;44315:60;44368:6;44315:60;:::i;:::-;44305:70;;44161:224;44148:1;44145;44141:9;44136:14;;44101:284;;;44105:14;44401:3;44394:10;;43802:608;;;43678:732;;;;:::o;44416:831::-;44679:4;44717:3;44706:9;44702:19;44694:27;;44731:71;44799:1;44788:9;44784:17;44775:6;44731:71;:::i;:::-;44812:80;44888:2;44877:9;44873:18;44864:6;44812:80;:::i;:::-;44939:9;44933:4;44929:20;44924:2;44913:9;44909:18;44902:48;44967:108;45070:4;45061:6;44967:108;:::i;:::-;44959:116;;45085:72;45153:2;45142:9;45138:18;45129:6;45085:72;:::i;:::-;45167:73;45235:3;45224:9;45220:19;45211:6;45167:73;:::i;:::-;44416:831;;;;;;;;:::o

Swarm Source

ipfs://0d95f80ce50645a343cc6f690f2ec5802f7615c5daffa58cd07d483121181bfe
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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