ERC-20
Overview
Max Total Supply
1,000,000,000,000 NWAF
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
21,461,209,690.318361390284643462 NWAFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NWAF
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-28 */ // SPDX-License-Identifier: MIT // telegram : https://t.me/NowWeAreFreeErc pragma solidity 0.8.9; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns(address pair); } 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); } interface IERC20Metadata is IERC20 { function name() external view returns(string memory); function symbol() external view returns(string memory); function decimals() external view returns(uint8); } abstract contract Context { function _msgSender() internal view virtual returns(address) { return msg.sender; } } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns(string memory) { return _name; } function symbol() public view virtual override returns(string memory) { return _symbol; } function decimals() public view virtual override returns(uint8) { return 18; } function totalSupply() public view virtual override returns(uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns(uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns(bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns(uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns(bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased cannot be below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns(uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns(uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns(uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns(uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns(address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns(int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns(int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns(int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns(int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns(int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns(uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns(int256) { int256 b = int256(a); require(b >= 0); return b; } } interface IUniswapV2Router01 { function factory() external pure returns(address); function WETH() external pure returns(address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns(uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns(uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns(uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns(uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns(uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns(uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract NWAF is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable router; address public immutable uniswapV2Pair; // addresses address public devWallet; address private marketingWallet; // limits uint256 private maxBuyAmount; uint256 private maxSellAmount; uint256 private maxWalletAmount; uint256 private thresholdSwapAmount; // status flags bool private isTrading = false; bool public swapEnabled = false; bool public isSwapping; struct Fees { uint8 buyTotalFees; uint8 buyMarketingFee; uint8 buyDevFee; uint8 buyLiquidityFee; uint8 sellTotalFees; uint8 sellMarketingFee; uint8 sellDevFee; uint8 sellLiquidityFee; } Fees public _fees = Fees({ buyTotalFees: 0, buyMarketingFee: 0, buyDevFee:0, buyLiquidityFee: 0, sellTotalFees: 0, sellMarketingFee: 0, sellDevFee:0, sellLiquidityFee: 0 }); uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; uint256 private taxTill; // exclude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public _isExcludedMaxWalletAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping(address => bool) public marketPair; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived ); constructor() ERC20("Now We Are Free", "NWAF") { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH()); _isExcludedMaxTransactionAmount[address(router)] = true; _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true; _isExcludedMaxTransactionAmount[owner()] = true; _isExcludedMaxTransactionAmount[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedMaxWalletAmount[owner()] = true; _isExcludedMaxWalletAmount[address(this)] = true; _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true; marketPair[address(uniswapV2Pair)] = true; approve(address(router), type(uint256).max); uint256 totalSupply = 1e12 * 1e18; maxBuyAmount = totalSupply * 100 / 100; // 100% maxTransactionAmountTxn maxSellAmount = totalSupply * 100 / 100; // 100% maxTransactionAmountTxn maxWalletAmount = totalSupply * 100 / 100; // 100% maxWallet thresholdSwapAmount = totalSupply * 5 / 10000; // 0.05% swap wallet _fees.buyMarketingFee = 2; _fees.buyLiquidityFee = 1; _fees.buyDevFee = 0; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellMarketingFee = 2; _fees.sellLiquidityFee = 1; _fees.sellDevFee = 0; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; marketingWallet = address(0x41d0259b65e883171F98D0a8949FEE27aB9B22e4); devWallet = address(0xBB332E7f2f5Fd69B1a7Ab9d2E943C62697FF7Fed); // exclude from paying fees or having max transaction amount /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); } receive() external payable { } // once enabled, can never be turned off function swapTrading() external onlyOwner { isTrading = true; swapEnabled = true; taxTill = block.number + 2; } // change the minimum amount of tokens to sell from fees function updateThresholdSwapAmount(uint256 newAmount) external onlyOwner returns(bool){ thresholdSwapAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner { require(((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100), "maxBuyAmount must be higher than 1%"); require(((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100), "maxSellAmount must be higher than 1%"); maxBuyAmount = (totalSupply() * newMaxBuy) / 1000; maxSellAmount = (totalSupply() * newMaxSell) / 1000; } function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner { require(((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100), "Cannot set maxWallet lower than 1%"); maxWalletAmount = (totalSupply() * newPercentage) / 1000; } function updateFees(uint8 _marketingFeeBuy, uint8 _liquidityFeeBuy,uint8 _devFeeBuy,uint8 _marketingFeeSell, uint8 _liquidityFeeSell,uint8 _devFeeSell) external onlyOwner{ _fees.buyMarketingFee = _marketingFeeBuy; _fees.buyLiquidityFee = _liquidityFeeBuy; _fees.buyDevFee = _devFeeBuy; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellMarketingFee = _marketingFeeSell; _fees.sellLiquidityFee = _liquidityFeeSell; _fees.sellDevFee = _devFeeSell; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; require(_fees.buyTotalFees <= 30, "Must keep fees at 30% or less"); require(_fees.sellTotalFees <= 30, "Must keep fees at 30% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function excludeFromWalletLimit(address account, bool excluded) public onlyOwner { _isExcludedMaxWalletAmount[account] = excluded; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setMarketPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "Must keep uniswapV2Pair"); marketPair[pair] = value; } function rescueETH(uint256 weiAmount) external onlyOwner { payable(owner()).transfer(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { IERC20(tokenAdd).transfer(owner(), amount); } function setWallets(address _marketingWallet,address _devWallet) external onlyOwner{ marketingWallet = _marketingWallet; devWallet = _devWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address sender, address recipient, uint256 amount ) internal override { if (amount == 0) { super._transfer(sender, recipient, 0); return; } if ( sender != owner() && recipient != owner() && !isSwapping ) { if (!isTrading) { require(_isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "Trading is not active."); } if (marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient]) { require(amount <= maxBuyAmount, "buy transfer over max amount"); } else if (marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender]) { require(amount <= maxSellAmount, "Sell transfer over max amount"); } if (!_isExcludedMaxWalletAmount[recipient]) { require(amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= thresholdSwapAmount; if ( canSwap && swapEnabled && !isSwapping && marketPair[recipient] && !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] ) { isSwapping = true; swapBack(); isSwapping = false; } bool takeFee = !isSwapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) { takeFee = false; } // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { uint256 fees = 0; if(block.number < taxTill) { fees = amount.mul(99).div(100); tokensForMarketing += (fees * 94) / 99; tokensForDev += (fees * 5) / 99; } else if (marketPair[recipient] && _fees.sellTotalFees > 0) { fees = amount.mul(_fees.sellTotalFees).div(100); tokensForLiquidity += fees * _fees.sellLiquidityFee / _fees.sellTotalFees; tokensForMarketing += fees * _fees.sellMarketingFee / _fees.sellTotalFees; tokensForDev += fees * _fees.sellDevFee / _fees.sellTotalFees; } // on buy else if (marketPair[sender] && _fees.buyTotalFees > 0) { fees = amount.mul(_fees.buyTotalFees).div(100); tokensForLiquidity += fees * _fees.buyLiquidityFee / _fees.buyTotalFees; tokensForMarketing += fees * _fees.buyMarketingFee / _fees.buyTotalFees; tokensForDev += fees * _fees.buyDevFee / _fees.buyTotalFees; } if (fees > 0) { super._transfer(sender, address(this), fees); } amount -= fees; } super._transfer(sender, recipient, amount); } function swapTokensForEth(uint256 tAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tAmount); // add the liquidity router.addLiquidityETH{ value: ethAmount } (address(this), tAmount, 0, 0 , address(this), block.timestamp); } function swapBack() private { uint256 contractTokenBalance = balanceOf(address(this)); uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if (contractTokenBalance == 0 || toSwap == 0) { return; } if (contractTokenBalance > thresholdSwapAmount * 20) { contractTokenBalance = thresholdSwapAmount * 20; } // Halve the amount of liquidity tokens uint256 liquidityTokens = contractTokenBalance * tokensForLiquidity / toSwap / 2; uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 newBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div(toSwap); uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap); uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev); tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity); } (success,) = address(devWallet).call{ value: (address(this).balance - ethForMarketing) } (""); (success,) = address(marketingWallet).call{ value: address(this).balance } (""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff021916908315150217905550604051806101000160405280600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548160ff021916908360ff16021790555060e08201518160000160076101000a81548160ff021916908360ff1602179055505050348015620001ad57600080fd5b506040518060400160405280600f81526020017f4e6f7720576520417265204672656500000000000000000000000000000000008152506040518060400160405280600481526020017f4e5741460000000000000000000000000000000000000000000000000000000081525081600390805190602001906200023292919062000f2d565b5080600490805190602001906200024b92919062000f2d565b50505060006200026062000be260201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039057600080fd5b505afa158015620003a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cb919062001047565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043057600080fd5b505afa15801562000445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046b919062001047565b6040518363ffffffff1660e01b81526004016200048a9291906200108a565b602060405180830381600087803b158015620004a557600080fd5b505af1158015620004ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e0919062001047565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060016013600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000620005dd62000bea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260006200069c62000bea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460006200075b62000bea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016015600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008ec6080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000c1460201b60201c565b5060006c0c9f2c9cd04674edea400000009050606480826200090f9190620010f0565b6200091b919062001180565b60088190555060648082620009319190620010f0565b6200093d919062001180565b60098190555060648082620009539190620010f0565b6200095f919062001180565b600a81905550612710600582620009779190620010f0565b62000983919062001180565b600b819055506002600d60000160016101000a81548160ff021916908360ff1602179055506001600d60000160036101000a81548160ff021916908360ff1602179055506000600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff1662000a2b9190620011c5565b62000a379190620011c5565b600d60000160006101000a81548160ff021916908360ff1602179055506002600d60000160056101000a81548160ff021916908360ff1602179055506001600d60000160076101000a81548160ff021916908360ff1602179055506000600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff1662000af69190620011c5565b62000b029190620011c5565b600d60000160046101000a81548160ff021916908360ff1602179055507341d0259b65e883171f98d0a8949fee27ab9b22e4600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb332e7f2f5fd69b1a7ab9d2e943c62697ff7fed600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000bdb338262000c4260201b60201c565b50620013e8565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000c3862000c2a62000be260201b60201c565b848462000ddd60201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cac9062001264565b60405180910390fd5b62000cd18160025462000eca60201b620022421790919060201c565b60028190555062000d2f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000eca60201b620022421790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000dd1919062001297565b60405180910390a35050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ebd919062001297565b60405180910390a3505050565b600080828462000edb9190620012b4565b90508381101562000f23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f1a9062001361565b60405180910390fd5b8091505092915050565b82805462000f3b90620013b2565b90600052602060002090601f01602090048101928262000f5f576000855562000fab565b82601f1062000f7a57805160ff191683800117855562000fab565b8280016001018555821562000fab579182015b8281111562000faa57825182559160200191906001019062000f8d565b5b50905062000fba919062000fbe565b5090565b5b8082111562000fd957600081600090555060010162000fbf565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200100f8262000fe2565b9050919050565b620010218162001002565b81146200102d57600080fd5b50565b600081519050620010418162001016565b92915050565b60006020828403121562001060576200105f62000fdd565b5b6000620010708482850162001030565b91505092915050565b620010848162001002565b82525050565b6000604082019050620010a1600083018562001079565b620010b0602083018462001079565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010fd82620010b7565b91506200110a83620010b7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620011465762001145620010c1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200118d82620010b7565b91506200119a83620010b7565b925082620011ad57620011ac62001151565b5b828204905092915050565b600060ff82169050919050565b6000620011d282620011b8565b9150620011df83620011b8565b92508260ff03821115620011f857620011f7620010c1565b5b828201905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200124c601f8362001203565b9150620012598262001214565b602082019050919050565b600060208201905081810360008301526200127f816200123d565b9050919050565b6200129181620010b7565b82525050565b6000602082019050620012ae600083018462001286565b92915050565b6000620012c182620010b7565b9150620012ce83620010b7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013065762001305620010c1565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001349601b8362001203565b9150620013568262001311565b602082019050919050565b600060208201905081810360008301526200137c816200133a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620013cb57607f821691505b60208210811415620013e257620013e162001383565b5b50919050565b60805160a051614a2f62001438600039600081816110950152611ae601526000818161222001528181613513015281816136030152818161362a015281816136c601526136ed0152614a2f6000f3fe6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e14610877578063e16830a8146108b4578063f2fde38b146108dd578063f5b3c3bf14610906578063f887ea40146109435761023b565b8063c0246668146107a1578063c16dd4a4146107ca578063c18bc195146107f3578063d212a69a1461081c578063d3f6a1571461084e5761023b565b80639fccce32116100f25780639fccce32146106ba578063a457c2d7146106e5578063a9059cbb14610722578063b88631151461075f578063b9e418e71461078a5761023b565b80638da5cb5b146105d35780638ea5220f146105fe57806395d89b411461062957806396880b17146106545780639e252f00146106915761023b565b80633265e846116101bc5780636ddd1713116101805780636ddd17131461050257806370a082311461052d578063715018a61461056a5780637571336a146105815780638cd4426d146105aa5761023b565b80633265e846146103f7578063395093511461042057806349bd5a5e1461045d5780634fbee19314610488578063555467a1146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631f3fed8f1461036457806323b872dd1461038f578063313ce567146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561096e565b60405161026291906138a5565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613960565b610a00565b60405161029f91906139bb565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906139d6565b610a1e565b6040516102dc91906139bb565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613a03565b610a3e565b005b34801561031a57600080fd5b50610323610c0f565b6040516103309190613a52565b60405180910390f35b34801561034557600080fd5b5061034e610c19565b60405161035b9190613a52565b60405180910390f35b34801561037057600080fd5b50610379610c1f565b6040516103869190613a52565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190613a6d565b610c25565b6040516103c391906139bb565b60405180910390f35b3480156103d857600080fd5b506103e1610cfe565b6040516103ee9190613adc565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190613b23565b610d07565b005b34801561042c57600080fd5b5061044760048036038101906104429190613960565b610fe0565b60405161045491906139bb565b60405180910390f35b34801561046957600080fd5b50610472611093565b60405161047f9190613bbf565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906139d6565b6110b7565b6040516104bc91906139bb565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190613bda565b61110d565b6040516104f991906139bb565b60405180910390f35b34801561050e57600080fd5b506105176111b6565b60405161052491906139bb565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f91906139d6565b6111c9565b6040516105619190613a52565b60405180910390f35b34801561057657600080fd5b5061057f611211565b005b34801561058d57600080fd5b506105a860048036038101906105a39190613c33565b611369565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190613960565b61145b565b005b3480156105df57600080fd5b506105e861158b565b6040516105f59190613bbf565b60405180910390f35b34801561060a57600080fd5b506106136115b5565b6040516106209190613bbf565b60405180910390f35b34801561063557600080fd5b5061063e6115db565b60405161064b91906138a5565b60405180910390f35b34801561066057600080fd5b5061067b600480360381019061067691906139d6565b61166d565b60405161068891906139bb565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613bda565b61168d565b005b3480156106c657600080fd5b506106cf611775565b6040516106dc9190613a52565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613960565b61177b565b60405161071991906139bb565b60405180910390f35b34801561072e57600080fd5b5061074960048036038101906107449190613960565b611848565b60405161075691906139bb565b60405180910390f35b34801561076b57600080fd5b50610774611866565b60405161078191906139bb565b60405180910390f35b34801561079657600080fd5b5061079f611879565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c33565b61195b565b005b3480156107d657600080fd5b506107f160048036038101906107ec9190613c33565b611a4d565b005b3480156107ff57600080fd5b5061081a60048036038101906108159190613bda565b611bce565b005b34801561082857600080fd5b50610831611d03565b604051610845989796959493929190613c73565b60405180910390f35b34801561085a57600080fd5b5061087560048036038101906108709190613cf1565b611da1565b005b34801561088357600080fd5b5061089e60048036038101906108999190613cf1565b611ebe565b6040516108ab9190613a52565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613c33565b611f45565b005b3480156108e957600080fd5b5061090460048036038101906108ff91906139d6565b612037565b005b34801561091257600080fd5b5061092d600480360381019061092891906139d6565b6121fe565b60405161093a91906139bb565b60405180910390f35b34801561094f57600080fd5b5061095861221e565b6040516109659190613d90565b60405180910390f35b60606003805461097d90613dda565b80601f01602080910402602001604051908101604052809291908181526020018280546109a990613dda565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d6122a0565b84846122a8565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b610a466122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90613e58565b60405180910390fd5b6064610adf610c0f565b610ae99190613ed6565b6103e883610af5610c0f565b610aff9190613f07565b610b099190613ed6565b1015610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4190613fd3565b60405180910390fd5b6064610b54610c0f565b610b5e9190613ed6565b6103e882610b6a610c0f565b610b749190613f07565b610b7e9190613ed6565b1015610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690614065565b60405180910390fd5b6103e882610bcb610c0f565b610bd59190613f07565b610bdf9190613ed6565b6008819055506103e881610bf1610c0f565b610bfb9190613f07565b610c059190613ed6565b6009819055505050565b6000600254905090565b600f5481565b600e5481565b6000610c32848484612393565b610cf384610c3e6122a0565b610cee856040518060600160405280602881526020016149d260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ca46122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6122a8565b600190509392505050565b60006012905090565b610d0f6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613e58565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff16610e3b9190614085565b610e459190614085565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff16610eff9190614085565b610f099190614085565b600d60000160046101000a81548160ff021916908360ff160217905550601e600d60000160009054906101000a900460ff1660ff161115610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690614108565b60405180910390fd5b601e600d60000160049054906101000a900460ff1660ff161115610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90614108565b60405180910390fd5b505050505050565b6000611089610fed6122a0565b846110848560016000610ffe6122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224290919063ffffffff16565b6122a8565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006111176122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613e58565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112196122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90613e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113716122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790613e58565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114636122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990613e58565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61151661158b565b836040518363ffffffff1660e01b8152600401611534929190614128565b602060405180830381600087803b15801561154e57600080fd5b505af1158015611562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115869190614166565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115ea90613dda565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613dda565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905090565b60146020528060005260406000206000915054906101000a900460ff1681565b6116956122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613e58565b60405180910390fd5b61172c61158b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611771573d6000803e3d6000fd5b5050565b60105481565b600061183e6117886122a0565b846118398560405180606001604052806025815260200161498760259139600160006117b26122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6122a8565b6001905092915050565b600061185c6118556122a0565b8484612393565b6001905092915050565b600c60029054906101000a900460ff1681565b6118816122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613e58565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119539190614193565b601181905550565b6119636122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613e58565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a556122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613e58565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90614235565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bd66122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c90613e58565b60405180910390fd5b6064611c6f610c0f565b611c799190613ed6565b6103e882611c85610c0f565b611c8f9190613f07565b611c999190613ed6565b1015611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd1906142c7565b60405180910390fd5b6103e881611ce6610c0f565b611cf09190613f07565b611cfa9190613ed6565b600a8190555050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611da96122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613e58565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f4d6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd390613e58565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61203f6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c590613e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213590614359565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008082846122519190614193565b905083811015612296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228d906143c5565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123869190613a52565b60405180910390a3505050565b60008114156123ad576123a883836000612ecd565b612e64565b6123b561158b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561242357506123f361158b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561243c5750600c60029054906101000a900460ff16155b156127c257600c60009054906101000a900460ff1661253657601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f65750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c90614431565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125d95750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561262857600854811115612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a9061449d565b60405180910390fd5b612717565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126cb5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561271657600954811115612715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270c90614509565b60405180910390fd5b5b5b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127c157600a54612774836111c9565b8261277f9190614193565b11156127c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b790614575565b60405180910390fd5b5b5b60006127cd306111c9565b90506000600b5482101590508080156127f25750600c60019054906101000a900460ff165b801561280b5750600c60029054906101000a900460ff16155b80156128605750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156128b65750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561290c5750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612950576001600c60026101000a81548160ff021916908315150217905550612934613077565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a065750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a1057600090505b8015612e55576000601154431015612ab257612a496064612a3b60638861336590919063ffffffff16565b6133e090919063ffffffff16565b90506063605e82612a5a9190613f07565b612a649190613ed6565b600e6000828254612a759190614193565b925050819055506063600582612a8b9190613f07565b612a959190613ed6565b60106000828254612aa69190614193565b92505081905550612e30565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b2057506000600d60000160049054906101000a900460ff1660ff16115b15612c7257612b606064612b52600d60000160049054906101000a900460ff1660ff168861336590919063ffffffff16565b6133e090919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612b999190613f07565b612ba39190613ed6565b600f6000828254612bb49190614193565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612bf29190613f07565b612bfc9190613ed6565b600e6000828254612c0d9190614193565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612c4b9190613f07565b612c559190613ed6565b60106000828254612c669190614193565b92505081905550612e2f565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ce057506000600d60000160009054906101000a900460ff1660ff16115b15612e2e57612d206064612d12600d60000160009054906101000a900460ff1660ff168861336590919063ffffffff16565b6133e090919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612d599190613f07565b612d639190613ed6565b600f6000828254612d749190614193565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612db29190613f07565b612dbc9190613ed6565b600e6000828254612dcd9190614193565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612e0b9190613f07565b612e159190613ed6565b60106000828254612e269190614193565b925050819055505b5b5b6000811115612e4557612e44873083612ecd565b5b8085612e519190614595565b9450505b612e60868686612ecd565b5050505b505050565b6000838311158290612eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea891906138a5565b60405180910390fd5b5060008385612ec09190614595565b9050809150509392505050565b612f38816040518060600160405280602681526020016149ac602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161306a9190613a52565b60405180910390a3505050565b6000613082306111c9565b90506000601054600e54600f546130999190614193565b6130a39190614193565b90506000808314806130b55750600082145b156130c257505050613363565b6014600b546130d19190613f07565b8311156130ea576014600b546130e79190613f07565b92505b6000600283600f54866130fd9190613f07565b6131079190613ed6565b6131119190613ed6565b90506000613128828661342a90919063ffffffff16565b9050600047905061313882613474565b600061314d824761342a90919063ffffffff16565b905060006131788761316a600e548561336590919063ffffffff16565b6133e090919063ffffffff16565b905060006131a3886131956010548661336590919063ffffffff16565b6133e090919063ffffffff16565b9050600081836131b39190614193565b846131be9190614595565b90506000600f819055506000600e8190555060006010819055506000871180156131e85750600081115b15613231576131f787826136c0565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f838148686826040516132289291906145c9565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476132769190614595565b60405161328290614623565b60006040518083038185875af1925050503d80600081146132bf576040519150601f19603f3d011682016040523d82523d6000602084013e6132c4565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161331090614623565b60006040518083038185875af1925050503d806000811461334d576040519150601f19603f3d011682016040523d82523d6000602084013e613352565b606091505b505080985050505050505050505050505b565b60008083141561337857600090506133da565b600082846133869190613f07565b90508284826133959190613ed6565b146133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133cc906146aa565b60405180910390fd5b809150505b92915050565b600061342283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506137a9565b905092915050565b600061346c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e69565b905092915050565b6000600267ffffffffffffffff811115613491576134906146ca565b5b6040519080825280602002602001820160405280156134bf5781602001602082028036833780820191505090505b50905030816000815181106134d7576134d66146f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561357757600080fd5b505afa15801561358b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135af919061473d565b816001815181106135c3576135c26146f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613628307f0000000000000000000000000000000000000000000000000000000000000000846122a8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161368a959493929190614863565b600060405180830381600087803b1580156136a457600080fd5b505af11580156136b8573d6000803e3d6000fd5b505050505050565b6136eb307f0000000000000000000000000000000000000000000000000000000000000000846122a8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401613750969594939291906148bd565b6060604051808303818588803b15801561376957600080fd5b505af115801561377d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137a29190614933565b5050505050565b600080831182906137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e791906138a5565b60405180910390fd5b50600083856137ff9190613ed6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384657808201518184015260208101905061382b565b83811115613855576000848401525b50505050565b6000601f19601f8301169050919050565b60006138778261380c565b6138818185613817565b9350613891818560208601613828565b61389a8161385b565b840191505092915050565b600060208201905081810360008301526138bf818461386c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f7826138cc565b9050919050565b613907816138ec565b811461391257600080fd5b50565b600081359050613924816138fe565b92915050565b6000819050919050565b61393d8161392a565b811461394857600080fd5b50565b60008135905061395a81613934565b92915050565b60008060408385031215613977576139766138c7565b5b600061398585828601613915565b92505060206139968582860161394b565b9150509250929050565b60008115159050919050565b6139b5816139a0565b82525050565b60006020820190506139d060008301846139ac565b92915050565b6000602082840312156139ec576139eb6138c7565b5b60006139fa84828501613915565b91505092915050565b60008060408385031215613a1a57613a196138c7565b5b6000613a288582860161394b565b9250506020613a398582860161394b565b9150509250929050565b613a4c8161392a565b82525050565b6000602082019050613a676000830184613a43565b92915050565b600080600060608486031215613a8657613a856138c7565b5b6000613a9486828701613915565b9350506020613aa586828701613915565b9250506040613ab68682870161394b565b9150509250925092565b600060ff82169050919050565b613ad681613ac0565b82525050565b6000602082019050613af16000830184613acd565b92915050565b613b0081613ac0565b8114613b0b57600080fd5b50565b600081359050613b1d81613af7565b92915050565b60008060008060008060c08789031215613b4057613b3f6138c7565b5b6000613b4e89828a01613b0e565b9650506020613b5f89828a01613b0e565b9550506040613b7089828a01613b0e565b9450506060613b8189828a01613b0e565b9350506080613b9289828a01613b0e565b92505060a0613ba389828a01613b0e565b9150509295509295509295565b613bb9816138ec565b82525050565b6000602082019050613bd46000830184613bb0565b92915050565b600060208284031215613bf057613bef6138c7565b5b6000613bfe8482850161394b565b91505092915050565b613c10816139a0565b8114613c1b57600080fd5b50565b600081359050613c2d81613c07565b92915050565b60008060408385031215613c4a57613c496138c7565b5b6000613c5885828601613915565b9250506020613c6985828601613c1e565b9150509250929050565b600061010082019050613c89600083018b613acd565b613c96602083018a613acd565b613ca36040830189613acd565b613cb06060830188613acd565b613cbd6080830187613acd565b613cca60a0830186613acd565b613cd760c0830185613acd565b613ce460e0830184613acd565b9998505050505050505050565b60008060408385031215613d0857613d076138c7565b5b6000613d1685828601613915565b9250506020613d2785828601613915565b9150509250929050565b6000819050919050565b6000613d56613d51613d4c846138cc565b613d31565b6138cc565b9050919050565b6000613d6882613d3b565b9050919050565b6000613d7a82613d5d565b9050919050565b613d8a81613d6f565b82525050565b6000602082019050613da56000830184613d81565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613df257607f821691505b60208210811415613e0657613e05613dab565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e42602083613817565b9150613e4d82613e0c565b602082019050919050565b60006020820190508181036000830152613e7181613e35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ee18261392a565b9150613eec8361392a565b925082613efc57613efb613e78565b5b828204905092915050565b6000613f128261392a565b9150613f1d8361392a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f5657613f55613ea7565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd602383613817565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b600061404f602483613817565b915061405a82613ff3565b604082019050919050565b6000602082019050818103600083015261407e81614042565b9050919050565b600061409082613ac0565b915061409b83613ac0565b92508260ff038211156140b1576140b0613ea7565b5b828201905092915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b60006140f2601d83613817565b91506140fd826140bc565b602082019050919050565b60006020820190508181036000830152614121816140e5565b9050919050565b600060408201905061413d6000830185613bb0565b61414a6020830184613a43565b9392505050565b60008151905061416081613c07565b92915050565b60006020828403121561417c5761417b6138c7565b5b600061418a84828501614151565b91505092915050565b600061419e8261392a565b91506141a98361392a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141de576141dd613ea7565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b600061421f601783613817565b915061422a826141e9565b602082019050919050565b6000602082019050818103600083015261424e81614212565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006142b1602283613817565b91506142bc82614255565b604082019050919050565b600060208201905081810360008301526142e0816142a4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614343602683613817565b915061434e826142e7565b604082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143af601b83613817565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061441b601683613817565b9150614426826143e5565b602082019050919050565b6000602082019050818103600083015261444a8161440e565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b6000614487601c83613817565b915061449282614451565b602082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b60006144f3601d83613817565b91506144fe826144bd565b602082019050919050565b60006020820190508181036000830152614522816144e6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061455f601383613817565b915061456a82614529565b602082019050919050565b6000602082019050818103600083015261458e81614552565b9050919050565b60006145a08261392a565b91506145ab8361392a565b9250828210156145be576145bd613ea7565b5b828203905092915050565b60006040820190506145de6000830185613a43565b6145eb6020830184613a43565b9392505050565b600081905092915050565b50565b600061460d6000836145f2565b9150614618826145fd565b600082019050919050565b600061462e82614600565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614694602183613817565b915061469f82614638565b604082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614737816138fe565b92915050565b600060208284031215614753576147526138c7565b5b600061476184828501614728565b91505092915050565b6000819050919050565b600061478f61478a6147858461476a565b613d31565b61392a565b9050919050565b61479f81614774565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147da816138ec565b82525050565b60006147ec83836147d1565b60208301905092915050565b6000602082019050919050565b6000614810826147a5565b61481a81856147b0565b9350614825836147c1565b8060005b8381101561485657815161483d88826147e0565b9750614848836147f8565b925050600181019050614829565b5085935050505092915050565b600060a0820190506148786000830188613a43565b6148856020830187614796565b81810360408301526148978186614805565b90506148a66060830185613bb0565b6148b36080830184613a43565b9695505050505050565b600060c0820190506148d26000830189613bb0565b6148df6020830188613a43565b6148ec6040830187614796565b6148f96060830186614796565b6149066080830185613bb0565b61491360a0830184613a43565b979650505050505050565b60008151905061492d81613934565b92915050565b60008060006060848603121561494c5761494b6138c7565b5b600061495a8682870161491e565b935050602061496b8682870161491e565b925050604061497c8682870161491e565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f41dd6945d213c51163276f2a0671333f5e8188010dcf5d5f5e423d895995a5f64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106102345760003560e01c80638da5cb5b1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e14610877578063e16830a8146108b4578063f2fde38b146108dd578063f5b3c3bf14610906578063f887ea40146109435761023b565b8063c0246668146107a1578063c16dd4a4146107ca578063c18bc195146107f3578063d212a69a1461081c578063d3f6a1571461084e5761023b565b80639fccce32116100f25780639fccce32146106ba578063a457c2d7146106e5578063a9059cbb14610722578063b88631151461075f578063b9e418e71461078a5761023b565b80638da5cb5b146105d35780638ea5220f146105fe57806395d89b411461062957806396880b17146106545780639e252f00146106915761023b565b80633265e846116101bc5780636ddd1713116101805780636ddd17131461050257806370a082311461052d578063715018a61461056a5780637571336a146105815780638cd4426d146105aa5761023b565b80633265e846146103f7578063395093511461042057806349bd5a5e1461045d5780634fbee19314610488578063555467a1146104c55761023b565b806318160ddd1161020357806318160ddd1461030e5780631a8145bb146103395780631f3fed8f1461036457806323b872dd1461038f578063313ce567146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806310d5de53146102a857806311a582c3146102e55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561096e565b60405161026291906138a5565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190613960565b610a00565b60405161029f91906139bb565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906139d6565b610a1e565b6040516102dc91906139bb565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613a03565b610a3e565b005b34801561031a57600080fd5b50610323610c0f565b6040516103309190613a52565b60405180910390f35b34801561034557600080fd5b5061034e610c19565b60405161035b9190613a52565b60405180910390f35b34801561037057600080fd5b50610379610c1f565b6040516103869190613a52565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190613a6d565b610c25565b6040516103c391906139bb565b60405180910390f35b3480156103d857600080fd5b506103e1610cfe565b6040516103ee9190613adc565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190613b23565b610d07565b005b34801561042c57600080fd5b5061044760048036038101906104429190613960565b610fe0565b60405161045491906139bb565b60405180910390f35b34801561046957600080fd5b50610472611093565b60405161047f9190613bbf565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906139d6565b6110b7565b6040516104bc91906139bb565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190613bda565b61110d565b6040516104f991906139bb565b60405180910390f35b34801561050e57600080fd5b506105176111b6565b60405161052491906139bb565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f91906139d6565b6111c9565b6040516105619190613a52565b60405180910390f35b34801561057657600080fd5b5061057f611211565b005b34801561058d57600080fd5b506105a860048036038101906105a39190613c33565b611369565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190613960565b61145b565b005b3480156105df57600080fd5b506105e861158b565b6040516105f59190613bbf565b60405180910390f35b34801561060a57600080fd5b506106136115b5565b6040516106209190613bbf565b60405180910390f35b34801561063557600080fd5b5061063e6115db565b60405161064b91906138a5565b60405180910390f35b34801561066057600080fd5b5061067b600480360381019061067691906139d6565b61166d565b60405161068891906139bb565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613bda565b61168d565b005b3480156106c657600080fd5b506106cf611775565b6040516106dc9190613a52565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613960565b61177b565b60405161071991906139bb565b60405180910390f35b34801561072e57600080fd5b5061074960048036038101906107449190613960565b611848565b60405161075691906139bb565b60405180910390f35b34801561076b57600080fd5b50610774611866565b60405161078191906139bb565b60405180910390f35b34801561079657600080fd5b5061079f611879565b005b3480156107ad57600080fd5b506107c860048036038101906107c39190613c33565b61195b565b005b3480156107d657600080fd5b506107f160048036038101906107ec9190613c33565b611a4d565b005b3480156107ff57600080fd5b5061081a60048036038101906108159190613bda565b611bce565b005b34801561082857600080fd5b50610831611d03565b604051610845989796959493929190613c73565b60405180910390f35b34801561085a57600080fd5b5061087560048036038101906108709190613cf1565b611da1565b005b34801561088357600080fd5b5061089e60048036038101906108999190613cf1565b611ebe565b6040516108ab9190613a52565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613c33565b611f45565b005b3480156108e957600080fd5b5061090460048036038101906108ff91906139d6565b612037565b005b34801561091257600080fd5b5061092d600480360381019061092891906139d6565b6121fe565b60405161093a91906139bb565b60405180910390f35b34801561094f57600080fd5b5061095861221e565b6040516109659190613d90565b60405180910390f35b60606003805461097d90613dda565b80601f01602080910402602001604051908101604052809291908181526020018280546109a990613dda565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d6122a0565b84846122a8565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b610a466122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90613e58565b60405180910390fd5b6064610adf610c0f565b610ae99190613ed6565b6103e883610af5610c0f565b610aff9190613f07565b610b099190613ed6565b1015610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4190613fd3565b60405180910390fd5b6064610b54610c0f565b610b5e9190613ed6565b6103e882610b6a610c0f565b610b749190613f07565b610b7e9190613ed6565b1015610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690614065565b60405180910390fd5b6103e882610bcb610c0f565b610bd59190613f07565b610bdf9190613ed6565b6008819055506103e881610bf1610c0f565b610bfb9190613f07565b610c059190613ed6565b6009819055505050565b6000600254905090565b600f5481565b600e5481565b6000610c32848484612393565b610cf384610c3e6122a0565b610cee856040518060600160405280602881526020016149d260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ca46122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6122a8565b600190509392505050565b60006012905090565b610d0f6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613e58565b60405180910390fd5b85600d60000160016101000a81548160ff021916908360ff16021790555084600d60000160036101000a81548160ff021916908360ff16021790555083600d60000160026101000a81548160ff021916908360ff160217905550600d60000160029054906101000a900460ff16600d60000160039054906101000a900460ff16600d60000160019054906101000a900460ff16610e3b9190614085565b610e459190614085565b600d60000160006101000a81548160ff021916908360ff16021790555082600d60000160056101000a81548160ff021916908360ff16021790555081600d60000160076101000a81548160ff021916908360ff16021790555080600d60000160066101000a81548160ff021916908360ff160217905550600d60000160069054906101000a900460ff16600d60000160079054906101000a900460ff16600d60000160059054906101000a900460ff16610eff9190614085565b610f099190614085565b600d60000160046101000a81548160ff021916908360ff160217905550601e600d60000160009054906101000a900460ff1660ff161115610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690614108565b60405180910390fd5b601e600d60000160049054906101000a900460ff1660ff161115610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90614108565b60405180910390fd5b505050505050565b6000611089610fed6122a0565b846110848560016000610ffe6122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224290919063ffffffff16565b6122a8565b6001905092915050565b7f000000000000000000000000b8e04f889498145098e8652b667da0cb266e2a7c81565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006111176122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90613e58565b60405180910390fd5b81600b8190555060019050919050565b600c60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112196122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90613e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113716122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790613e58565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114636122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990613e58565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61151661158b565b836040518363ffffffff1660e01b8152600401611534929190614128565b602060405180830381600087803b15801561154e57600080fd5b505af1158015611562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115869190614166565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115ea90613dda565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613dda565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905090565b60146020528060005260406000206000915054906101000a900460ff1681565b6116956122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613e58565b60405180910390fd5b61172c61158b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611771573d6000803e3d6000fd5b5050565b60105481565b600061183e6117886122a0565b846118398560405180606001604052806025815260200161498760259139600160006117b26122a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6122a8565b6001905092915050565b600061185c6118556122a0565b8484612393565b6001905092915050565b600c60029054906101000a900460ff1681565b6118816122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613e58565b60405180910390fd5b6001600c60006101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506002436119539190614193565b601181905550565b6119636122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613e58565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a556122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb90613e58565b60405180910390fd5b7f000000000000000000000000b8e04f889498145098e8652b667da0cb266e2a7c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90614235565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bd66122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c90613e58565b60405180910390fd5b6064611c6f610c0f565b611c799190613ed6565b6103e882611c85610c0f565b611c8f9190613f07565b611c999190613ed6565b1015611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd1906142c7565b60405180910390fd5b6103e881611ce6610c0f565b611cf09190613f07565b611cfa9190613ed6565b600a8190555050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900460ff16908060000160079054906101000a900460ff16905088565b611da96122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613e58565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f4d6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd390613e58565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61203f6122a0565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c590613e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213590614359565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60156020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60008082846122519190614193565b905083811015612296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228d906143c5565b60405180910390fd5b8091505092915050565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123869190613a52565b60405180910390a3505050565b60008114156123ad576123a883836000612ecd565b612e64565b6123b561158b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561242357506123f361158b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561243c5750600c60029054906101000a900460ff16155b156127c257600c60009054906101000a900460ff1661253657601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f65750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c90614431565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125d95750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561262857600854811115612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a9061449d565b60405180910390fd5b612717565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126cb5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561271657600954811115612715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270c90614509565b60405180910390fd5b5b5b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127c157600a54612774836111c9565b8261277f9190614193565b11156127c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b790614575565b60405180910390fd5b5b5b60006127cd306111c9565b90506000600b5482101590508080156127f25750600c60019054906101000a900460ff165b801561280b5750600c60029054906101000a900460ff16155b80156128605750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156128b65750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561290c5750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612950576001600c60026101000a81548160ff021916908315150217905550612934613077565b6000600c60026101000a81548160ff0219169083151502179055505b6000600c60029054906101000a900460ff16159050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a065750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a1057600090505b8015612e55576000601154431015612ab257612a496064612a3b60638861336590919063ffffffff16565b6133e090919063ffffffff16565b90506063605e82612a5a9190613f07565b612a649190613ed6565b600e6000828254612a759190614193565b925050819055506063600582612a8b9190613f07565b612a959190613ed6565b60106000828254612aa69190614193565b92505081905550612e30565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b2057506000600d60000160049054906101000a900460ff1660ff16115b15612c7257612b606064612b52600d60000160049054906101000a900460ff1660ff168861336590919063ffffffff16565b6133e090919063ffffffff16565b9050600d60000160049054906101000a900460ff1660ff16600d60000160079054906101000a900460ff1660ff1682612b999190613f07565b612ba39190613ed6565b600f6000828254612bb49190614193565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160059054906101000a900460ff1660ff1682612bf29190613f07565b612bfc9190613ed6565b600e6000828254612c0d9190614193565b92505081905550600d60000160049054906101000a900460ff1660ff16600d60000160069054906101000a900460ff1660ff1682612c4b9190613f07565b612c559190613ed6565b60106000828254612c669190614193565b92505081905550612e2f565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ce057506000600d60000160009054906101000a900460ff1660ff16115b15612e2e57612d206064612d12600d60000160009054906101000a900460ff1660ff168861336590919063ffffffff16565b6133e090919063ffffffff16565b9050600d60000160009054906101000a900460ff1660ff16600d60000160039054906101000a900460ff1660ff1682612d599190613f07565b612d639190613ed6565b600f6000828254612d749190614193565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160019054906101000a900460ff1660ff1682612db29190613f07565b612dbc9190613ed6565b600e6000828254612dcd9190614193565b92505081905550600d60000160009054906101000a900460ff1660ff16600d60000160029054906101000a900460ff1660ff1682612e0b9190613f07565b612e159190613ed6565b60106000828254612e269190614193565b925050819055505b5b5b6000811115612e4557612e44873083612ecd565b5b8085612e519190614595565b9450505b612e60868686612ecd565b5050505b505050565b6000838311158290612eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea891906138a5565b60405180910390fd5b5060008385612ec09190614595565b9050809150509392505050565b612f38816040518060600160405280602681526020016149ac602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e699092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161306a9190613a52565b60405180910390a3505050565b6000613082306111c9565b90506000601054600e54600f546130999190614193565b6130a39190614193565b90506000808314806130b55750600082145b156130c257505050613363565b6014600b546130d19190613f07565b8311156130ea576014600b546130e79190613f07565b92505b6000600283600f54866130fd9190613f07565b6131079190613ed6565b6131119190613ed6565b90506000613128828661342a90919063ffffffff16565b9050600047905061313882613474565b600061314d824761342a90919063ffffffff16565b905060006131788761316a600e548561336590919063ffffffff16565b6133e090919063ffffffff16565b905060006131a3886131956010548661336590919063ffffffff16565b6133e090919063ffffffff16565b9050600081836131b39190614193565b846131be9190614595565b90506000600f819055506000600e8190555060006010819055506000871180156131e85750600081115b15613231576131f787826136c0565b7f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f838148686826040516132289291906145c9565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683476132769190614595565b60405161328290614623565b60006040518083038185875af1925050503d80600081146132bf576040519150601f19603f3d011682016040523d82523d6000602084013e6132c4565b606091505b505080985050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161331090614623565b60006040518083038185875af1925050503d806000811461334d576040519150601f19603f3d011682016040523d82523d6000602084013e613352565b606091505b505080985050505050505050505050505b565b60008083141561337857600090506133da565b600082846133869190613f07565b90508284826133959190613ed6565b146133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133cc906146aa565b60405180910390fd5b809150505b92915050565b600061342283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506137a9565b905092915050565b600061346c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e69565b905092915050565b6000600267ffffffffffffffff811115613491576134906146ca565b5b6040519080825280602002602001820160405280156134bf5781602001602082028036833780820191505090505b50905030816000815181106134d7576134d66146f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561357757600080fd5b505afa15801561358b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135af919061473d565b816001815181106135c3576135c26146f9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613628307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846122a8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161368a959493929190614863565b600060405180830381600087803b1580156136a457600080fd5b505af11580156136b8573d6000803e3d6000fd5b505050505050565b6136eb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846122a8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401613750969594939291906148bd565b6060604051808303818588803b15801561376957600080fd5b505af115801561377d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137a29190614933565b5050505050565b600080831182906137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e791906138a5565b60405180910390fd5b50600083856137ff9190613ed6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561384657808201518184015260208101905061382b565b83811115613855576000848401525b50505050565b6000601f19601f8301169050919050565b60006138778261380c565b6138818185613817565b9350613891818560208601613828565b61389a8161385b565b840191505092915050565b600060208201905081810360008301526138bf818461386c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f7826138cc565b9050919050565b613907816138ec565b811461391257600080fd5b50565b600081359050613924816138fe565b92915050565b6000819050919050565b61393d8161392a565b811461394857600080fd5b50565b60008135905061395a81613934565b92915050565b60008060408385031215613977576139766138c7565b5b600061398585828601613915565b92505060206139968582860161394b565b9150509250929050565b60008115159050919050565b6139b5816139a0565b82525050565b60006020820190506139d060008301846139ac565b92915050565b6000602082840312156139ec576139eb6138c7565b5b60006139fa84828501613915565b91505092915050565b60008060408385031215613a1a57613a196138c7565b5b6000613a288582860161394b565b9250506020613a398582860161394b565b9150509250929050565b613a4c8161392a565b82525050565b6000602082019050613a676000830184613a43565b92915050565b600080600060608486031215613a8657613a856138c7565b5b6000613a9486828701613915565b9350506020613aa586828701613915565b9250506040613ab68682870161394b565b9150509250925092565b600060ff82169050919050565b613ad681613ac0565b82525050565b6000602082019050613af16000830184613acd565b92915050565b613b0081613ac0565b8114613b0b57600080fd5b50565b600081359050613b1d81613af7565b92915050565b60008060008060008060c08789031215613b4057613b3f6138c7565b5b6000613b4e89828a01613b0e565b9650506020613b5f89828a01613b0e565b9550506040613b7089828a01613b0e565b9450506060613b8189828a01613b0e565b9350506080613b9289828a01613b0e565b92505060a0613ba389828a01613b0e565b9150509295509295509295565b613bb9816138ec565b82525050565b6000602082019050613bd46000830184613bb0565b92915050565b600060208284031215613bf057613bef6138c7565b5b6000613bfe8482850161394b565b91505092915050565b613c10816139a0565b8114613c1b57600080fd5b50565b600081359050613c2d81613c07565b92915050565b60008060408385031215613c4a57613c496138c7565b5b6000613c5885828601613915565b9250506020613c6985828601613c1e565b9150509250929050565b600061010082019050613c89600083018b613acd565b613c96602083018a613acd565b613ca36040830189613acd565b613cb06060830188613acd565b613cbd6080830187613acd565b613cca60a0830186613acd565b613cd760c0830185613acd565b613ce460e0830184613acd565b9998505050505050505050565b60008060408385031215613d0857613d076138c7565b5b6000613d1685828601613915565b9250506020613d2785828601613915565b9150509250929050565b6000819050919050565b6000613d56613d51613d4c846138cc565b613d31565b6138cc565b9050919050565b6000613d6882613d3b565b9050919050565b6000613d7a82613d5d565b9050919050565b613d8a81613d6f565b82525050565b6000602082019050613da56000830184613d81565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613df257607f821691505b60208210811415613e0657613e05613dab565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e42602083613817565b9150613e4d82613e0c565b602082019050919050565b60006020820190508181036000830152613e7181613e35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ee18261392a565b9150613eec8361392a565b925082613efc57613efb613e78565b5b828204905092915050565b6000613f128261392a565b9150613f1d8361392a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f5657613f55613ea7565b5b828202905092915050565b7f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60008201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd602383613817565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b7f6d617853656c6c416d6f756e74206d757374206265206869676865722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b600061404f602483613817565b915061405a82613ff3565b604082019050919050565b6000602082019050818103600083015261407e81614042565b9050919050565b600061409082613ac0565b915061409b83613ac0565b92508260ff038211156140b1576140b0613ea7565b5b828201905092915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b60006140f2601d83613817565b91506140fd826140bc565b602082019050919050565b60006020820190508181036000830152614121816140e5565b9050919050565b600060408201905061413d6000830185613bb0565b61414a6020830184613a43565b9392505050565b60008151905061416081613c07565b92915050565b60006020828403121561417c5761417b6138c7565b5b600061418a84828501614151565b91505092915050565b600061419e8261392a565b91506141a98361392a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141de576141dd613ea7565b5b828201905092915050565b7f4d757374206b65657020756e6973776170563250616972000000000000000000600082015250565b600061421f601783613817565b915061422a826141e9565b602082019050919050565b6000602082019050818103600083015261424e81614212565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006142b1602283613817565b91506142bc82614255565b604082019050919050565b600060208201905081810360008301526142e0816142a4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614343602683613817565b915061434e826142e7565b604082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143af601b83613817565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061441b601683613817565b9150614426826143e5565b602082019050919050565b6000602082019050818103600083015261444a8161440e565b9050919050565b7f627579207472616e73666572206f766572206d617820616d6f756e7400000000600082015250565b6000614487601c83613817565b915061449282614451565b602082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b7f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000600082015250565b60006144f3601d83613817565b91506144fe826144bd565b602082019050919050565b60006020820190508181036000830152614522816144e6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061455f601383613817565b915061456a82614529565b602082019050919050565b6000602082019050818103600083015261458e81614552565b9050919050565b60006145a08261392a565b91506145ab8361392a565b9250828210156145be576145bd613ea7565b5b828203905092915050565b60006040820190506145de6000830185613a43565b6145eb6020830184613a43565b9392505050565b600081905092915050565b50565b600061460d6000836145f2565b9150614618826145fd565b600082019050919050565b600061462e82614600565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614694602183613817565b915061469f82614638565b604082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614737816138fe565b92915050565b600060208284031215614753576147526138c7565b5b600061476184828501614728565b91505092915050565b6000819050919050565b600061478f61478a6147858461476a565b613d31565b61392a565b9050919050565b61479f81614774565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147da816138ec565b82525050565b60006147ec83836147d1565b60208301905092915050565b6000602082019050919050565b6000614810826147a5565b61481a81856147b0565b9350614825836147c1565b8060005b8381101561485657815161483d88826147e0565b9750614848836147f8565b925050600181019050614829565b5085935050505092915050565b600060a0820190506148786000830188613a43565b6148856020830187614796565b81810360408301526148978186614805565b90506148a66060830185613bb0565b6148b36080830184613a43565b9695505050505050565b600060c0820190506148d26000830189613bb0565b6148df6020830188613a43565b6148ec6040830187614796565b6148f96060830186614796565b6149066080830185613bb0565b61491360a0830184613a43565b979650505050505050565b60008151905061492d81613934565b92915050565b60008060006060848603121561494c5761494b6138c7565b5b600061495a8682870161491e565b935050602061496b8682870161491e565b925050604061497c8682870161491e565b915050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f41dd6945d213c51163276f2a0671333f5e8188010dcf5d5f5e423d895995a5f64736f6c63430008090033
Deployed Bytecode Sourcemap
13903:12935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1857:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2804:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15271:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2191:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15055:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15015;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2986:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2086:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19040:827;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3354:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14026:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20946:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18125:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14398:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2312:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6878:148;;;;;;;;;;;;;:::i;:::-;;20169:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20626:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6574:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14093:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1969:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15341:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20506:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15095:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3585:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2452:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14436:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17908:143;;;;;;;;;;;;;:::i;:::-;;19879:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20323:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18761:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14743:251;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;20769:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2640:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20017:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7040:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15557:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13977;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1857:99;1910:13;1943:5;1936:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1857:99;:::o;2804:168::-;2886:4;2903:39;2912:12;:10;:12::i;:::-;2926:7;2935:6;2903:8;:39::i;:::-;2960:4;2953:11;;2804:168;;;;:::o;15271:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;18293:458::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18455:3:::1;18439:13;:11;:13::i;:::-;:19;;;;:::i;:::-;18429:4;18416:9;18400:13;:11;:13::i;:::-;:25;;;;:::i;:::-;18399:34;;;;:::i;:::-;18398:61;;18390:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18576:3;18560:13;:11;:13::i;:::-;:19;;;;:::i;:::-;18550:4;18536:10;18520:13;:11;:13::i;:::-;:26;;;;:::i;:::-;18519:35;;;;:::i;:::-;18518:62;;18510:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;18677:4;18664:9;18648:13;:11;:13::i;:::-;:25;;;;:::i;:::-;18647:34;;;;:::i;:::-;18632:12;:49;;;;18739:4;18725:10;18709:13;:11;:13::i;:::-;:26;;;;:::i;:::-;18708:35;;;;:::i;:::-;18692:13;:51;;;;18293:458:::0;;:::o;2191:107::-;2251:7;2278:12;;2271:19;;2191:107;:::o;15055:33::-;;;;:::o;15015:::-;;;;:::o;2986:354::-;3125:4;3142:36;3152:6;3160:9;3171:6;3142:9;:36::i;:::-;3189:121;3198:6;3206:12;:10;:12::i;:::-;3220:89;3258:6;3220:89;;;;;;;;;;;;;;;;;:11;:19;3232:6;3220:19;;;;;;;;;;;;;;;:33;3240:12;:10;:12::i;:::-;3220:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3189:8;:121::i;:::-;3328:4;3321:11;;2986:354;;;;;:::o;2086:92::-;2143:5;2168:2;2161:9;;2086:92;:::o;19040:827::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19245:16:::1;19221:5;:21;;;:40;;;;;;;;;;;;;;;;;;19296:16;19272:5;:21;;;:40;;;;;;;;;;;;;;;;;;19341:10;19323:5;:15;;;:28;;;;;;;;;;;;;;;;;;19431:5;:15;;;;;;;;;;;;19407:5;:21;;;;;;;;;;;;19383:5;:21;;;;;;;;;;;;:45;;;;:::i;:::-;:63;;;;:::i;:::-;19362:5;:18;;;:84;;;;;;;;;;;;;;;;;;19484:17;19459:5;:22;;;:42;;;;;;;;;;;;;;;;;;19537:17;19512:5;:22;;;:42;;;;;;;;;;;;;;;;;;19584:11;19565:5;:16;;;:30;;;;;;;;;;;;;;;;;;19678:5;:16;;;;;;;;;;;;19653:5;:22;;;;;;;;;;;;19628:5;:22;;;;;;;;;;;;:47;;;;:::i;:::-;:66;;;;:::i;:::-;19606:5;:19;;;:88;;;;;;;;;;;;;;;;;;19735:2;19713:5;:18;;;;;;;;;;;;:24;;;;19705:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19816:2;19793:5;:19;;;;;;;;;;;;:25;;;;19785:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:827:::0;;;;;;:::o;3354:217::-;3441:4;3458:83;3467:12;:10;:12::i;:::-;3481:7;3490:50;3529:10;3490:11;:25;3502:12;:10;:12::i;:::-;3490:25;;;;;;;;;;;;;;;:34;3516:7;3490:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3458:8;:83::i;:::-;3559:4;3552:11;;3354:217;;;;:::o;14026:38::-;;;:::o;20946:125::-;21011:4;21035:19;:28;21055:7;21035:28;;;;;;;;;;;;;;;;;;;;;;;;;21028:35;;20946:125;;;:::o;18125:158::-;18206:4;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18244:9:::1;18222:19;:31;;;;18271:4;18264:11;;18125:158:::0;;;:::o;14398:31::-;;;;;;;;;;;;;:::o;2312:126::-;2385:7;2412:9;:18;2422:7;2412:18;;;;;;;;;;;;;;;;2405:25;;2312:126;;;:::o;6878:148::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6985:1:::1;6948:40;;6969:6;;;;;;;;;;;6948:40;;;;;;;;;;;;7016:1;6999:6;;:19;;;;;;;;;;;;;;;;;;6878:148::o:0;20169:144::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20301:4:::1;20259:31;:39;20291:6;20259:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20169:144:::0;;:::o;20626:135::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20718:8:::1;20711:25;;;20737:7;:5;:7::i;:::-;20746:6;20711:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20626:135:::0;;:::o;6574:78::-;6611:7;6638:6;;;;;;;;;;;6631:13;;6574:78;:::o;14093:25::-;;;;;;;;;;;;;:::o;1969:103::-;2024:13;2057:7;2050:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1969:103;:::o;15341:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;20506:112::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20582:7:::1;:5;:7::i;:::-;20574:25;;:36;20600:9;20574:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20506:112:::0;:::o;15095:27::-;;;;:::o;3585:268::-;3677:4;3694:129;3703:12;:10;:12::i;:::-;3717:7;3726:96;3765:15;3726:96;;;;;;;;;;;;;;;;;:11;:25;3738:12;:10;:12::i;:::-;3726:25;;;;;;;;;;;;;;;:34;3752:7;3726:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;3694:8;:129::i;:::-;3841:4;3834:11;;3585:268;;;;:::o;2452:174::-;2537:4;2554:42;2564:12;:10;:12::i;:::-;2578:9;2589:6;2554:9;:42::i;:::-;2614:4;2607:11;;2452:174;;;;:::o;14436:22::-;;;;;;;;;;;;;:::o;17908:143::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17973:4:::1;17961:9;;:16;;;;;;;;;;;;;;;;;;18002:4;17988:11;;:18;;;;;;;;;;;;;;;;;;18042:1;18027:12;:16;;;;:::i;:::-;18017:7;:26;;;;17908:143::o:0;19879:132::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19995:8:::1;19964:19;:28;19984:7;19964:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19879:132:::0;;:::o;20323:177::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20416:13:::1;20408:21;;:4;:21;;;;20400:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20487:5;20468:10;:16;20479:4;20468:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20323:177:::0;;:::o;18761:271::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18914:3:::1;18898:13;:11;:13::i;:::-;:19;;;;:::i;:::-;18888:4;18871:13;18855;:11;:13::i;:::-;:29;;;;:::i;:::-;18854:38;;;;:::i;:::-;18853:65;;18845:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;19020:4;19003:13;18987;:11;:13::i;:::-;:29;;;;:::i;:::-;18986:38;;;;:::i;:::-;18968:15;:56;;;;18761:271:::0;:::o;14743:251::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20769:169::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20881:16:::1;20863:15;;:34;;;;;;;;;;;;;;;;;;20920:10;20908:9;;:22;;;;;;;;;;;;;;;;;;20769:169:::0;;:::o;2640:150::-;2728:7;2755:11;:18;2767:5;2755:18;;;;;;;;;;;;;;;:27;2774:7;2755:27;;;;;;;;;;;;;;;;2748:34;;2640:150;;;;:::o;20017:146::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20147:8:::1;20109:26;:35;20136:7;20109:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20017:146:::0;;:::o;7040:244::-;6795:12;:10;:12::i;:::-;6785:22;;:6;;;;;;;;;;;:22;;;6777:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7149:1:::1;7129:22;;:8;:22;;;;7121:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7239:8;7210:38;;7231:6;;;;;;;;;;;7210:38;;;;;;;;;;;;7268:8;7259:6;;:17;;;;;;;;;;;;;;;;;;7040:244:::0;:::o;15557:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;13977:::-;;;:::o;4839:180::-;4896:7;4916:9;4932:1;4928;:5;;;;:::i;:::-;4916:17;;4957:1;4952;:6;;4944:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5010:1;5003:8;;;4839:180;;;;:::o;1289:97::-;1341:7;1368:10;1361:17;;1289:97;:::o;4574:220::-;4732:6;4702:11;:18;4714:5;4702:18;;;;;;;;;;;;;;;:27;4721:7;4702:27;;;;;;;;;;;;;;;:36;;;;4770:7;4754:32;;4763:5;4754:32;;;4779:6;4754:32;;;;;;:::i;:::-;;;;;;;;4574:220;;;:::o;21079:3261::-;21246:1;21236:6;:11;21232:102;;;21264:37;21280:6;21288:9;21299:1;21264:15;:37::i;:::-;21316:7;;21232:102;21374:7;:5;:7::i;:::-;21364:17;;:6;:17;;;;:54;;;;;21411:7;:5;:7::i;:::-;21398:20;;:9;:20;;;;21364:54;:82;;;;;21436:10;;;;;;;;;;;21435:11;21364:82;21346:849;;;21480:9;;;;;;;;;;;21475:147;;21518:19;:27;21538:6;21518:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;21549:19;:30;21569:9;21549:30;;;;;;;;;;;;;;;;;;;;;;;;;21518:61;21510:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21475:147;21640:10;:18;21651:6;21640:18;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;21663:31;:42;21695:9;21663:42;;;;;;;;;;;;;;;;;;;;;;;;;21662:43;21640:65;21636:360;;;21744:12;;21734:6;:22;;21726:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21636:360;;;21829:10;:21;21840:9;21829:21;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;;21855:31;:39;21887:6;21855:39;;;;;;;;;;;;;;;;;;;;;;;;;21854:40;21829:65;21825:171;;;21933:13;;21923:6;:23;;21915:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21825:171;21636:360;22017:26;:37;22044:9;22017:37;;;;;;;;;;;;;;;;;;;;;;;;;22012:159;;22116:15;;22092:20;22102:9;22092;:20::i;:::-;22083:6;:29;;;;:::i;:::-;:48;;22075:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;22012:159;21346:849;22221:28;22252:24;22270:4;22252:9;:24::i;:::-;22221:55;;22290:12;22329:19;;22305:20;:43;;22290:58;;22379:7;:35;;;;;22403:11;;;;;;;;;;;22379:35;:63;;;;;22432:10;;;;;;;;;;;22431:11;22379:63;:101;;;;;22459:10;:21;22470:9;22459:21;;;;;;;;;;;;;;;;;;;;;;;;;22379:101;:146;;;;;22498:19;:27;22518:6;22498:27;;;;;;;;;;;;;;;;;;;;;;;;;22497:28;22379:146;:194;;;;;22543:19;:30;22563:9;22543:30;;;;;;;;;;;;;;;;;;;;;;;;;22542:31;22379:194;22361:326;;;22613:4;22600:10;;:17;;;;;;;;;;;;;;;;;;22632:10;:8;:10::i;:::-;22670:5;22657:10;;:18;;;;;;;;;;;;;;;;;;22361:326;22700:12;22716:10;;;;;;;;;;;22715:11;22700:26;;22828:19;:27;22848:6;22828:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;22859:19;:30;22879:9;22859:30;;;;;;;;;;;;;;;;;;;;;;;;;22828:61;22824:109;;;22916:5;22906:15;;22824:109;23034:7;23030:1248;;;23058:12;23107:7;;23092:12;:22;23089:1036;;;23142:23;23161:3;23142:14;23153:2;23142:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;23135:30;;23220:2;23214;23207:4;:9;;;;:::i;:::-;23206:16;;;;:::i;:::-;23184:18;;:38;;;;;;;:::i;:::-;;;;;;;;23270:2;23265:1;23258:4;:8;;;;:::i;:::-;23257:15;;;;:::i;:::-;23241:12;;:31;;;;;;;:::i;:::-;;;;;;;;23089:1036;;;23298:10;:21;23309:9;23298:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;23345:1;23323:5;:19;;;;;;;;;;;;:23;;;23298:48;23294:831;;;23374:40;23410:3;23374:31;23385:5;:19;;;;;;;;;;;;23374:31;;:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;23367:47;;23487:5;:19;;;;;;;;;;;;23455:51;;23462:5;:22;;;;;;;;;;;;23455:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;23433:18;;:73;;;;;;;:::i;:::-;;;;;;;;23579:5;:19;;;;;;;;;;;;23547:51;;23554:5;:22;;;;;;;;;;;;23547:29;;:4;:29;;;;:::i;:::-;:51;;;;:::i;:::-;23525:18;;:73;;;;;;;:::i;:::-;;;;;;;;23659:5;:19;;;;;;;;;;;;23633:45;;23640:5;:16;;;;;;;;;;;;23633:23;;:4;:23;;;;:::i;:::-;:45;;;;:::i;:::-;23617:12;;:61;;;;;;;:::i;:::-;;;;;;;;23294:831;;;23740:10;:18;23751:6;23740:18;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;23783:1;23762:5;:18;;;;;;;;;;;;:22;;;23740:44;23736:389;;;23812:39;23847:3;23812:30;23823:5;:18;;;;;;;;;;;;23812:30;;:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;23805:46;;23923:5;:18;;;;;;;;;;;;23892:49;;23899:5;:21;;;;;;;;;;;;23892:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;23870:18;;:71;;;;;;;:::i;:::-;;;;;;;;24013:5;:18;;;;;;;;;;;;23982:49;;23989:5;:21;;;;;;;;;;;;23982:28;;:4;:28;;;;:::i;:::-;:49;;;;:::i;:::-;23960:18;;:71;;;;;;;:::i;:::-;;;;;;;;24091:5;:18;;;;;;;;;;;;24066:43;;24073:5;:15;;;;;;;;;;;;24066:22;;:4;:22;;;;:::i;:::-;:43;;;;:::i;:::-;24050:12;;:59;;;;;;;:::i;:::-;;;;;;;;23736:389;23294:831;23089:1036;24152:1;24145:4;:8;24141:93;;;24174:44;24190:6;24206:4;24213;24174:15;:44::i;:::-;24141:93;24260:4;24250:14;;;;;:::i;:::-;;;23043:1235;23030:1248;24290:42;24306:6;24314:9;24325:6;24290:15;:42::i;:::-;21211:3129;;;21079:3261;;;;:::o;5180:191::-;5265:7;5298:1;5293;:6;;5301:12;5285:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5325:9;5341:1;5337;:5;;;;:::i;:::-;5325:17;;5362:1;5355:8;;;5180:191;;;;;:::o;3867:358::-;4029:71;4051:6;4029:71;;;;;;;;;;;;;;;;;:9;:17;4039:6;4029:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;4009:9;:17;4019:6;4009:17;;;;;;;;;;;;;;;:91;;;;4134:32;4159:6;4134:9;:20;4144:9;4134:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4111:9;:20;4121:9;4111:20;;;;;;;;;;;;;;;:55;;;;4199:9;4182:35;;4191:6;4182:35;;;4210:6;4182:35;;;;;;:::i;:::-;;;;;;;;3867:358;;;:::o;25268:1565::-;25307:28;25338:24;25356:4;25338:9;:24::i;:::-;25307:55;;25373:14;25432:12;;25411:18;;25390;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;25373:71;;25455:12;25508:1;25484:20;:25;:40;;;;25523:1;25513:6;:11;25484:40;25480:57;;;25528:7;;;;;25480:57;25598:2;25576:19;;:24;;;;:::i;:::-;25553:20;:47;25549:127;;;25662:2;25640:19;;:24;;;;:::i;:::-;25617:47;;25549:127;25737:23;25816:1;25807:6;25786:18;;25763:20;:41;;;;:::i;:::-;:50;;;;:::i;:::-;:54;;;;:::i;:::-;25737:80;;25828:26;25857:41;25882:15;25857:20;:24;;:41;;;;:::i;:::-;25828:70;;25912:25;25940:21;25912:49;;25974:36;25991:18;25974:16;:36::i;:::-;26025:18;26046:44;26072:17;26046:21;:25;;:44;;;;:::i;:::-;26025:65;;26104:23;26130:46;26169:6;26130:34;26145:18;;26130:10;:14;;:34;;;;:::i;:::-;:38;;:46;;;;:::i;:::-;26104:72;;26187:17;26207:40;26240:6;26207:28;26222:12;;26207:10;:14;;:28;;;;:::i;:::-;:32;;:40;;;;:::i;:::-;26187:60;;26258:23;26316:9;26298:15;:27;;;;:::i;:::-;26284:10;:42;;;;:::i;:::-;26258:68;;26362:1;26341:18;:22;;;;26395:1;26374:18;:22;;;;26422:1;26407:12;:16;;;;26460:1;26442:15;:19;:42;;;;;26483:1;26465:15;:19;26442:42;26438:192;;;26501:46;26514:15;26531;26501:12;:46::i;:::-;26567:51;26582:18;26602:15;26567:51;;;;;;;:::i;:::-;;;;;;;;26438:192;26663:9;;;;;;;;;;;26655:23;;26712:15;26688:21;:39;;;;:::i;:::-;26655:80;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26642:93;;;;;26767:15;;;;;;;;;;;26759:29;;26797:21;26759:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26746:79;;;;;25296:1537;;;;;;;;;;25268:1565;:::o;5379:256::-;5436:7;5471:1;5466;:6;5462:47;;;5496:1;5489:8;;;;5462:47;5522:9;5538:1;5534;:5;;;;:::i;:::-;5522:17;;5567:1;5562;5558;:5;;;;:::i;:::-;:10;5550:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5626:1;5619:8;;;5379:256;;;;;:::o;5646:131::-;5703:7;5730:39;5734:1;5737;5730:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5723:46;;5646:131;;;;:::o;5032:135::-;5089:7;5116:43;5120:1;5123;5116:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5109:50;;5032:135;;;;:::o;24348:554::-;24472:21;24510:1;24496:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24472:40;;24541:4;24523;24528:1;24523:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24567:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24557:4;24562:1;24557:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24593:49;24610:4;24625:6;24634:7;24593:8;:49::i;:::-;24681:6;:57;;;24753:7;24775:1;24819:4;24846;24866:15;24681:211;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24399:503;24348:554;:::o;24910:350::-;25054:49;25071:4;25086:6;25095:7;25054:8;:49::i;:::-;25146:6;:22;;;25177:9;25198:4;25205:7;25214:1;25217;25229:4;25236:15;25146:106;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24910:350;;:::o;5789:277::-;5874:7;5906:1;5902;:5;5909:12;5894:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5933:9;5949:1;5945;:5;;;;:::i;:::-;5933:17;;6057:1;6050:8;;;5789:277;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:118::-;5787:22;5803:5;5787:22;:::i;:::-;5780:5;5777:33;5767:61;;5824:1;5821;5814:12;5767:61;5716:118;:::o;5840:135::-;5884:5;5922:6;5909:20;5900:29;;5938:31;5963:5;5938:31;:::i;:::-;5840:135;;;;:::o;5981:1033::-;6073:6;6081;6089;6097;6105;6113;6162:3;6150:9;6141:7;6137:23;6133:33;6130:120;;;6169:79;;:::i;:::-;6130:120;6289:1;6314:51;6357:7;6348:6;6337:9;6333:22;6314:51;:::i;:::-;6304:61;;6260:115;6414:2;6440:51;6483:7;6474:6;6463:9;6459:22;6440:51;:::i;:::-;6430:61;;6385:116;6540:2;6566:51;6609:7;6600:6;6589:9;6585:22;6566:51;:::i;:::-;6556:61;;6511:116;6666:2;6692:51;6735:7;6726:6;6715:9;6711:22;6692:51;:::i;:::-;6682:61;;6637:116;6792:3;6819:51;6862:7;6853:6;6842:9;6838:22;6819:51;:::i;:::-;6809:61;;6763:117;6919:3;6946:51;6989:7;6980:6;6969:9;6965:22;6946:51;:::i;:::-;6936:61;;6890:117;5981:1033;;;;;;;;:::o;7020:118::-;7107:24;7125:5;7107:24;:::i;:::-;7102:3;7095:37;7020:118;;:::o;7144:222::-;7237:4;7275:2;7264:9;7260:18;7252:26;;7288:71;7356:1;7345:9;7341:17;7332:6;7288:71;:::i;:::-;7144:222;;;;:::o;7372:329::-;7431:6;7480:2;7468:9;7459:7;7455:23;7451:32;7448:119;;;7486:79;;:::i;:::-;7448:119;7606:1;7631:53;7676:7;7667:6;7656:9;7652:22;7631:53;:::i;:::-;7621:63;;7577:117;7372:329;;;;:::o;7707:116::-;7777:21;7792:5;7777:21;:::i;:::-;7770:5;7767:32;7757:60;;7813:1;7810;7803:12;7757:60;7707:116;:::o;7829:133::-;7872:5;7910:6;7897:20;7888:29;;7926:30;7950:5;7926:30;:::i;:::-;7829:133;;;;:::o;7968:468::-;8033:6;8041;8090:2;8078:9;8069:7;8065:23;8061:32;8058:119;;;8096:79;;:::i;:::-;8058:119;8216:1;8241:53;8286:7;8277:6;8266:9;8262:22;8241:53;:::i;:::-;8231:63;;8187:117;8343:2;8369:50;8411:7;8402:6;8391:9;8387:22;8369:50;:::i;:::-;8359:60;;8314:115;7968:468;;;;;:::o;8442:933::-;8699:4;8737:3;8726:9;8722:19;8714:27;;8751:67;8815:1;8804:9;8800:17;8791:6;8751:67;:::i;:::-;8828:68;8892:2;8881:9;8877:18;8868:6;8828:68;:::i;:::-;8906;8970:2;8959:9;8955:18;8946:6;8906:68;:::i;:::-;8984;9048:2;9037:9;9033:18;9024:6;8984:68;:::i;:::-;9062:69;9126:3;9115:9;9111:19;9102:6;9062:69;:::i;:::-;9141;9205:3;9194:9;9190:19;9181:6;9141:69;:::i;:::-;9220;9284:3;9273:9;9269:19;9260:6;9220:69;:::i;:::-;9299;9363:3;9352:9;9348:19;9339:6;9299:69;:::i;:::-;8442:933;;;;;;;;;;;:::o;9381:474::-;9449:6;9457;9506:2;9494:9;9485:7;9481:23;9477:32;9474:119;;;9512:79;;:::i;:::-;9474:119;9632:1;9657:53;9702:7;9693:6;9682:9;9678:22;9657:53;:::i;:::-;9647:63;;9603:117;9759:2;9785:53;9830:7;9821:6;9810:9;9806:22;9785:53;:::i;:::-;9775:63;;9730:118;9381:474;;;;;:::o;9861:60::-;9889:3;9910:5;9903:12;;9861:60;;;:::o;9927:142::-;9977:9;10010:53;10028:34;10037:24;10055:5;10037:24;:::i;:::-;10028:34;:::i;:::-;10010:53;:::i;:::-;9997:66;;9927:142;;;:::o;10075:126::-;10125:9;10158:37;10189:5;10158:37;:::i;:::-;10145:50;;10075:126;;;:::o;10207:153::-;10284:9;10317:37;10348:5;10317:37;:::i;:::-;10304:50;;10207:153;;;:::o;10366:185::-;10480:64;10538:5;10480:64;:::i;:::-;10475:3;10468:77;10366:185;;:::o;10557:276::-;10677:4;10715:2;10704:9;10700:18;10692:26;;10728:98;10823:1;10812:9;10808:17;10799:6;10728:98;:::i;:::-;10557:276;;;;:::o;10839:180::-;10887:77;10884:1;10877:88;10984:4;10981:1;10974:15;11008:4;11005:1;10998:15;11025:320;11069:6;11106:1;11100:4;11096:12;11086:22;;11153:1;11147:4;11143:12;11174:18;11164:81;;11230:4;11222:6;11218:17;11208:27;;11164:81;11292:2;11284:6;11281:14;11261:18;11258:38;11255:84;;;11311:18;;:::i;:::-;11255:84;11076:269;11025:320;;;:::o;11351:182::-;11491:34;11487:1;11479:6;11475:14;11468:58;11351:182;:::o;11539:366::-;11681:3;11702:67;11766:2;11761:3;11702:67;:::i;:::-;11695:74;;11778:93;11867:3;11778:93;:::i;:::-;11896:2;11891:3;11887:12;11880:19;;11539:366;;;:::o;11911:419::-;12077:4;12115:2;12104:9;12100:18;12092:26;;12164:9;12158:4;12154:20;12150:1;12139:9;12135:17;12128:47;12192:131;12318:4;12192:131;:::i;:::-;12184:139;;11911:419;;;:::o;12336:180::-;12384:77;12381:1;12374:88;12481:4;12478:1;12471:15;12505:4;12502:1;12495:15;12522:180;12570:77;12567:1;12560:88;12667:4;12664:1;12657:15;12691:4;12688:1;12681:15;12708:185;12748:1;12765:20;12783:1;12765:20;:::i;:::-;12760:25;;12799:20;12817:1;12799:20;:::i;:::-;12794:25;;12838:1;12828:35;;12843:18;;:::i;:::-;12828:35;12885:1;12882;12878:9;12873:14;;12708:185;;;;:::o;12899:348::-;12939:7;12962:20;12980:1;12962:20;:::i;:::-;12957:25;;12996:20;13014:1;12996:20;:::i;:::-;12991:25;;13184:1;13116:66;13112:74;13109:1;13106:81;13101:1;13094:9;13087:17;13083:105;13080:131;;;13191:18;;:::i;:::-;13080:131;13239:1;13236;13232:9;13221:20;;12899:348;;;;:::o;13253:222::-;13393:34;13389:1;13381:6;13377:14;13370:58;13462:5;13457:2;13449:6;13445:15;13438:30;13253:222;:::o;13481:366::-;13623:3;13644:67;13708:2;13703:3;13644:67;:::i;:::-;13637:74;;13720:93;13809:3;13720:93;:::i;:::-;13838:2;13833:3;13829:12;13822:19;;13481:366;;;:::o;13853:419::-;14019:4;14057:2;14046:9;14042:18;14034:26;;14106:9;14100:4;14096:20;14092:1;14081:9;14077:17;14070:47;14134:131;14260:4;14134:131;:::i;:::-;14126:139;;13853:419;;;:::o;14278:223::-;14418:34;14414:1;14406:6;14402:14;14395:58;14487:6;14482:2;14474:6;14470:15;14463:31;14278:223;:::o;14507:366::-;14649:3;14670:67;14734:2;14729:3;14670:67;:::i;:::-;14663:74;;14746:93;14835:3;14746:93;:::i;:::-;14864:2;14859:3;14855:12;14848:19;;14507:366;;;:::o;14879:419::-;15045:4;15083:2;15072:9;15068:18;15060:26;;15132:9;15126:4;15122:20;15118:1;15107:9;15103:17;15096:47;15160:131;15286:4;15160:131;:::i;:::-;15152:139;;14879:419;;;:::o;15304:237::-;15342:3;15361:18;15377:1;15361:18;:::i;:::-;15356:23;;15393:18;15409:1;15393:18;:::i;:::-;15388:23;;15483:1;15477:4;15473:12;15470:1;15467:19;15464:45;;;15489:18;;:::i;:::-;15464:45;15533:1;15530;15526:9;15519:16;;15304:237;;;;:::o;15547:179::-;15687:31;15683:1;15675:6;15671:14;15664:55;15547:179;:::o;15732:366::-;15874:3;15895:67;15959:2;15954:3;15895:67;:::i;:::-;15888:74;;15971:93;16060:3;15971:93;:::i;:::-;16089:2;16084:3;16080:12;16073:19;;15732:366;;;:::o;16104:419::-;16270:4;16308:2;16297:9;16293:18;16285:26;;16357:9;16351:4;16347:20;16343:1;16332:9;16328:17;16321:47;16385:131;16511:4;16385:131;:::i;:::-;16377:139;;16104:419;;;:::o;16529:332::-;16650:4;16688:2;16677:9;16673:18;16665:26;;16701:71;16769:1;16758:9;16754:17;16745:6;16701:71;:::i;:::-;16782:72;16850:2;16839:9;16835:18;16826:6;16782:72;:::i;:::-;16529:332;;;;;:::o;16867:137::-;16921:5;16952:6;16946:13;16937:22;;16968:30;16992:5;16968:30;:::i;:::-;16867:137;;;;:::o;17010:345::-;17077:6;17126:2;17114:9;17105:7;17101:23;17097:32;17094:119;;;17132:79;;:::i;:::-;17094:119;17252:1;17277:61;17330:7;17321:6;17310:9;17306:22;17277:61;:::i;:::-;17267:71;;17223:125;17010:345;;;;:::o;17361:305::-;17401:3;17420:20;17438:1;17420:20;:::i;:::-;17415:25;;17454:20;17472:1;17454:20;:::i;:::-;17449:25;;17608:1;17540:66;17536:74;17533:1;17530:81;17527:107;;;17614:18;;:::i;:::-;17527:107;17658:1;17655;17651:9;17644:16;;17361:305;;;;:::o;17672:173::-;17812:25;17808:1;17800:6;17796:14;17789:49;17672:173;:::o;17851:366::-;17993:3;18014:67;18078:2;18073:3;18014:67;:::i;:::-;18007:74;;18090:93;18179:3;18090:93;:::i;:::-;18208:2;18203:3;18199:12;18192:19;;17851:366;;;:::o;18223:419::-;18389:4;18427:2;18416:9;18412:18;18404:26;;18476:9;18470:4;18466:20;18462:1;18451:9;18447:17;18440:47;18504:131;18630:4;18504:131;:::i;:::-;18496:139;;18223:419;;;:::o;18648:221::-;18788:34;18784:1;18776:6;18772:14;18765:58;18857:4;18852:2;18844:6;18840:15;18833:29;18648:221;:::o;18875:366::-;19017:3;19038:67;19102:2;19097:3;19038:67;:::i;:::-;19031:74;;19114:93;19203:3;19114:93;:::i;:::-;19232:2;19227:3;19223:12;19216:19;;18875:366;;;:::o;19247:419::-;19413:4;19451:2;19440:9;19436:18;19428:26;;19500:9;19494:4;19490:20;19486:1;19475:9;19471:17;19464:47;19528:131;19654:4;19528:131;:::i;:::-;19520:139;;19247:419;;;:::o;19672:225::-;19812:34;19808:1;19800:6;19796:14;19789:58;19881:8;19876:2;19868:6;19864:15;19857:33;19672:225;:::o;19903:366::-;20045:3;20066:67;20130:2;20125:3;20066:67;:::i;:::-;20059:74;;20142:93;20231:3;20142:93;:::i;:::-;20260:2;20255:3;20251:12;20244:19;;19903:366;;;:::o;20275:419::-;20441:4;20479:2;20468:9;20464:18;20456:26;;20528:9;20522:4;20518:20;20514:1;20503:9;20499:17;20492:47;20556:131;20682:4;20556:131;:::i;:::-;20548:139;;20275:419;;;:::o;20700:177::-;20840:29;20836:1;20828:6;20824:14;20817:53;20700:177;:::o;20883:366::-;21025:3;21046:67;21110:2;21105:3;21046:67;:::i;:::-;21039:74;;21122:93;21211:3;21122:93;:::i;:::-;21240:2;21235:3;21231:12;21224:19;;20883:366;;;:::o;21255:419::-;21421:4;21459:2;21448:9;21444:18;21436:26;;21508:9;21502:4;21498:20;21494:1;21483:9;21479:17;21472:47;21536:131;21662:4;21536:131;:::i;:::-;21528:139;;21255:419;;;:::o;21680:172::-;21820:24;21816:1;21808:6;21804:14;21797:48;21680:172;:::o;21858:366::-;22000:3;22021:67;22085:2;22080:3;22021:67;:::i;:::-;22014:74;;22097:93;22186:3;22097:93;:::i;:::-;22215:2;22210:3;22206:12;22199:19;;21858:366;;;:::o;22230:419::-;22396:4;22434:2;22423:9;22419:18;22411:26;;22483:9;22477:4;22473:20;22469:1;22458:9;22454:17;22447:47;22511:131;22637:4;22511:131;:::i;:::-;22503:139;;22230:419;;;:::o;22655:178::-;22795:30;22791:1;22783:6;22779:14;22772:54;22655:178;:::o;22839:366::-;22981:3;23002:67;23066:2;23061:3;23002:67;:::i;:::-;22995:74;;23078:93;23167:3;23078:93;:::i;:::-;23196:2;23191:3;23187:12;23180:19;;22839:366;;;:::o;23211:419::-;23377:4;23415:2;23404:9;23400:18;23392:26;;23464:9;23458:4;23454:20;23450:1;23439:9;23435:17;23428:47;23492:131;23618:4;23492:131;:::i;:::-;23484:139;;23211:419;;;:::o;23636:179::-;23776:31;23772:1;23764:6;23760:14;23753:55;23636:179;:::o;23821:366::-;23963:3;23984:67;24048:2;24043:3;23984:67;:::i;:::-;23977:74;;24060:93;24149:3;24060:93;:::i;:::-;24178:2;24173:3;24169:12;24162:19;;23821:366;;;:::o;24193:419::-;24359:4;24397:2;24386:9;24382:18;24374:26;;24446:9;24440:4;24436:20;24432:1;24421:9;24417:17;24410:47;24474:131;24600:4;24474:131;:::i;:::-;24466:139;;24193:419;;;:::o;24618:169::-;24758:21;24754:1;24746:6;24742:14;24735:45;24618:169;:::o;24793:366::-;24935:3;24956:67;25020:2;25015:3;24956:67;:::i;:::-;24949:74;;25032:93;25121:3;25032:93;:::i;:::-;25150:2;25145:3;25141:12;25134:19;;24793:366;;;:::o;25165:419::-;25331:4;25369:2;25358:9;25354:18;25346:26;;25418:9;25412:4;25408:20;25404:1;25393:9;25389:17;25382:47;25446:131;25572:4;25446:131;:::i;:::-;25438:139;;25165:419;;;:::o;25590:191::-;25630:4;25650:20;25668:1;25650:20;:::i;:::-;25645:25;;25684:20;25702:1;25684:20;:::i;:::-;25679:25;;25723:1;25720;25717:8;25714:34;;;25728:18;;:::i;:::-;25714:34;25773:1;25770;25766:9;25758:17;;25590:191;;;;:::o;25787:332::-;25908:4;25946:2;25935:9;25931:18;25923:26;;25959:71;26027:1;26016:9;26012:17;26003:6;25959:71;:::i;:::-;26040:72;26108:2;26097:9;26093:18;26084:6;26040:72;:::i;:::-;25787:332;;;;;:::o;26125:147::-;26226:11;26263:3;26248:18;;26125:147;;;;:::o;26278:114::-;;:::o;26398:398::-;26557:3;26578:83;26659:1;26654:3;26578:83;:::i;:::-;26571:90;;26670:93;26759:3;26670:93;:::i;:::-;26788:1;26783:3;26779:11;26772:18;;26398:398;;;:::o;26802:379::-;26986:3;27008:147;27151:3;27008:147;:::i;:::-;27001:154;;27172:3;27165:10;;26802:379;;;:::o;27187:220::-;27327:34;27323:1;27315:6;27311:14;27304:58;27396:3;27391:2;27383:6;27379:15;27372:28;27187:220;:::o;27413:366::-;27555:3;27576:67;27640:2;27635:3;27576:67;:::i;:::-;27569:74;;27652:93;27741:3;27652:93;:::i;:::-;27770:2;27765:3;27761:12;27754:19;;27413:366;;;:::o;27785:419::-;27951:4;27989:2;27978:9;27974:18;27966:26;;28038:9;28032:4;28028:20;28024:1;28013:9;28009:17;28002:47;28066:131;28192:4;28066:131;:::i;:::-;28058:139;;27785:419;;;:::o;28210:180::-;28258:77;28255:1;28248:88;28355:4;28352:1;28345:15;28379:4;28376:1;28369:15;28396:180;28444:77;28441:1;28434:88;28541:4;28538:1;28531:15;28565:4;28562:1;28555:15;28582:143;28639:5;28670:6;28664:13;28655:22;;28686:33;28713:5;28686:33;:::i;:::-;28582:143;;;;:::o;28731:351::-;28801:6;28850:2;28838:9;28829:7;28825:23;28821:32;28818:119;;;28856:79;;:::i;:::-;28818:119;28976:1;29001:64;29057:7;29048:6;29037:9;29033:22;29001:64;:::i;:::-;28991:74;;28947:128;28731:351;;;;:::o;29088:85::-;29133:7;29162:5;29151:16;;29088:85;;;:::o;29179:158::-;29237:9;29270:61;29288:42;29297:32;29323:5;29297:32;:::i;:::-;29288:42;:::i;:::-;29270:61;:::i;:::-;29257:74;;29179:158;;;:::o;29343:147::-;29438:45;29477:5;29438:45;:::i;:::-;29433:3;29426:58;29343:147;;:::o;29496:114::-;29563:6;29597:5;29591:12;29581:22;;29496:114;;;:::o;29616:184::-;29715:11;29749:6;29744:3;29737:19;29789:4;29784:3;29780:14;29765:29;;29616:184;;;;:::o;29806:132::-;29873:4;29896:3;29888:11;;29926:4;29921:3;29917:14;29909:22;;29806:132;;;:::o;29944:108::-;30021:24;30039:5;30021:24;:::i;:::-;30016:3;30009:37;29944:108;;:::o;30058:179::-;30127:10;30148:46;30190:3;30182:6;30148:46;:::i;:::-;30226:4;30221:3;30217:14;30203:28;;30058:179;;;;:::o;30243:113::-;30313:4;30345;30340:3;30336:14;30328:22;;30243:113;;;:::o;30392:732::-;30511:3;30540:54;30588:5;30540:54;:::i;:::-;30610:86;30689:6;30684:3;30610:86;:::i;:::-;30603:93;;30720:56;30770:5;30720:56;:::i;:::-;30799:7;30830:1;30815:284;30840:6;30837:1;30834:13;30815:284;;;30916:6;30910:13;30943:63;31002:3;30987:13;30943:63;:::i;:::-;30936:70;;31029:60;31082:6;31029:60;:::i;:::-;31019:70;;30875:224;30862:1;30859;30855:9;30850:14;;30815:284;;;30819:14;31115:3;31108:10;;30516:608;;;30392:732;;;;:::o;31130:831::-;31393:4;31431:3;31420:9;31416:19;31408:27;;31445:71;31513:1;31502:9;31498:17;31489:6;31445:71;:::i;:::-;31526:80;31602:2;31591:9;31587:18;31578:6;31526:80;:::i;:::-;31653:9;31647:4;31643:20;31638:2;31627:9;31623:18;31616:48;31681:108;31784:4;31775:6;31681:108;:::i;:::-;31673:116;;31799:72;31867:2;31856:9;31852:18;31843:6;31799:72;:::i;:::-;31881:73;31949:3;31938:9;31934:19;31925:6;31881:73;:::i;:::-;31130:831;;;;;;;;:::o;31967:807::-;32216:4;32254:3;32243:9;32239:19;32231:27;;32268:71;32336:1;32325:9;32321:17;32312:6;32268:71;:::i;:::-;32349:72;32417:2;32406:9;32402:18;32393:6;32349:72;:::i;:::-;32431:80;32507:2;32496:9;32492:18;32483:6;32431:80;:::i;:::-;32521;32597:2;32586:9;32582:18;32573:6;32521:80;:::i;:::-;32611:73;32679:3;32668:9;32664:19;32655:6;32611:73;:::i;:::-;32694;32762:3;32751:9;32747:19;32738:6;32694:73;:::i;:::-;31967:807;;;;;;;;;:::o;32780:143::-;32837:5;32868:6;32862:13;32853:22;;32884:33;32911:5;32884:33;:::i;:::-;32780:143;;;;:::o;32929:663::-;33017:6;33025;33033;33082:2;33070:9;33061:7;33057:23;33053:32;33050:119;;;33088:79;;:::i;:::-;33050:119;33208:1;33233:64;33289:7;33280:6;33269:9;33265:22;33233:64;:::i;:::-;33223:74;;33179:128;33346:2;33372:64;33428:7;33419:6;33408:9;33404:22;33372:64;:::i;:::-;33362:74;;33317:129;33485:2;33511:64;33567:7;33558:6;33547:9;33543:22;33511:64;:::i;:::-;33501:74;;33456:129;32929:663;;;;;:::o
Swarm Source
ipfs://f41dd6945d213c51163276f2a0671333f5e8188010dcf5d5f5e423d895995a5f
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.