Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 NEKO
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
696,327.267423496 NEKOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DejitaruNeko
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-21 */ /** * Dejitaru Neko will bring mysterious magical powers, beckoning invitations and fortune to those who possess them. * * Telegram: https://t.me/DejitaruNeko_ERC * Website: https://dejitaruneko.com * Twitter: https://twitter.com/Dejitaru_Neko * Medium: https://medium.com/@DejitaruNeko */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } 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 _decimals; } 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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DejitaruNeko is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); string private constant _name = "Dejitaru Neko"; string private constant _symbol = "NEKO"; uint8 private constant _decimals = 9; bool private swapping; address public marketingWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyTotalFees; uint256 private buyMarketingFee; uint256 private buyLiquidityFee; uint256 public sellTotalFees; uint256 private sellMarketingFee; uint256 private sellLiquidityFee; uint256 private tokensForMarketing; uint256 private tokensForLiquidity; uint256 private previousFee; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => bool) public magicAddresses; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquidity( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20(_name, _symbol, _decimals) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 10; uint256 _buyLiquidityFee = 0; uint256 _sellMarketingFee = 40; uint256 _sellLiquidityFee = 0; uint256 totalSupply = 100000000 * 10**_decimals; maxTransactionAmount = (totalSupply * 1) / 100; maxWallet = (totalSupply * 1) / 100; swapTokensAtAmount = (totalSupply * 5) / 10000; buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; previousFee = sellTotalFees; marketingWallet = address(0xa0842bAb3F219625d2c24f33FB2E2E897C7Da932); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = !tradingActive; swapEnabled = tradingActive; } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxWalletAndTxnAmount(uint256 newTxnNum, uint256 newMaxWalletNum) external onlyOwner { require( newTxnNum >= ((totalSupply() * 5) / 1000) / 10**_decimals, "Cannot set maxTxn lower than 0.5%" ); require( newMaxWalletNum >= ((totalSupply() * 5) / 1000) / 10**_decimals, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newMaxWalletNum * (10**_decimals); maxTransactionAmount = newTxnNum * (10**_decimals); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; require(buyTotalFees <= 5, "Must keep fees at 5% or less"); } function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; previousFee = sellTotalFees; require(sellTotalFees <= 5, "Must keep fees at 5% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeMultipleFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { excludeFromFees(accounts[i], excluded); } } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function excludeMagicAddresses(address[] calldata accounts, bool excluded) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { magicAddresses[accounts[i]] = excluded; } } function updateMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "Fee Address cannot be zero address"); address oldAddress = marketingWallet; marketingWallet = newWallet; emit marketingWalletUpdated(newWallet, oldAddress); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if (!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) { require(!magicAddresses[from] && !magicAddresses[to], "Your wallet is magic address!"); } if (automatedMarketMakerPairs[to]) { require(!magicAddresses[from], "Your wallet is magic address!"); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); sellTotalFees = previousFee; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div( totalTokensToSwap ); uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquidity( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"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":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMagicAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleFromFees","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":[{"internalType":"address","name":"","type":"address"}],"name":"magicAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxnNum","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletNum","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600d81526020017f44656a6974617275204e656b6f000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e454b4f0000000000000000000000000000000000000000000000000000000081525060098260039081620000c7919062000cec565b508160049081620000d9919062000cec565b5080600560006101000a81548160ff021916908360ff160217905550505050620001186200010c6200053360201b60201c565b6200053b60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001448160016200060160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea919062000e3d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000278919062000e3d565b6040518363ffffffff1660e01b81526004016200029792919062000e80565b6020604051808303816000875af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000e3d565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200032560a05160016200060160201b60201c565b6200033a60a0516001620006eb60201b60201c565b6000600a9050600080602890506000806009600a6200035a91906200103d565b6305f5e1006200036b91906200108e565b905060646001826200037e91906200108e565b6200038a919062001108565b6007819055506064600182620003a191906200108e565b620003ad919062001108565b600981905550612710600582620003c591906200108e565b620003d1919062001108565b60088190555084600c8190555083600d81905550600d54600c54620003f7919062001140565b600b8190555082600f8190555081601081905550601054600f546200041d919062001140565b600e81905550600e5460138190555073a0842bab3f219625d2c24f33fb2e2e897c7da932600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004a3620004956200078c60201b60201c565b6001620007b660201b60201c565b620004b6306001620007b660201b60201c565b620004cb61dead6001620007b660201b60201c565b620004ed620004df6200078c60201b60201c565b60016200060160201b60201c565b620005003060016200060160201b60201c565b6200051561dead60016200060160201b60201c565b620005273382620008f060201b60201c565b505050505050620012d8565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006116200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006376200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068790620011dc565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007c66200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007ec6200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000845576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083c90620011dc565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008e491906200121b565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000962576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009599062001288565b60405180910390fd5b620009766000838362000a6860201b60201c565b80600260008282546200098a919062001140565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009e1919062001140565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a489190620012bb565b60405180910390a362000a646000838362000a6d60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000af457607f821691505b60208210810362000b0a5762000b0962000aac565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b35565b62000b80868362000b35565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000bcd62000bc762000bc18462000b98565b62000ba2565b62000b98565b9050919050565b6000819050919050565b62000be98362000bac565b62000c0162000bf88262000bd4565b84845462000b42565b825550505050565b600090565b62000c1862000c09565b62000c2581848462000bde565b505050565b5b8181101562000c4d5762000c4160008262000c0e565b60018101905062000c2b565b5050565b601f82111562000c9c5762000c668162000b10565b62000c718462000b25565b8101602085101562000c81578190505b62000c9962000c908562000b25565b83018262000c2a565b50505b505050565b600082821c905092915050565b600062000cc16000198460080262000ca1565b1980831691505092915050565b600062000cdc838362000cae565b9150826002028217905092915050565b62000cf78262000a72565b67ffffffffffffffff81111562000d135762000d1262000a7d565b5b62000d1f825462000adb565b62000d2c82828562000c51565b600060209050601f83116001811462000d64576000841562000d4f578287015190505b62000d5b858262000cce565b86555062000dcb565b601f19841662000d748662000b10565b60005b8281101562000d9e5784890151825560018201915060208501945060208101905062000d77565b8683101562000dbe578489015162000dba601f89168262000cae565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e058262000dd8565b9050919050565b62000e178162000df8565b811462000e2357600080fd5b50565b60008151905062000e378162000e0c565b92915050565b60006020828403121562000e565762000e5562000dd3565b5b600062000e668482850162000e26565b91505092915050565b62000e7a8162000df8565b82525050565b600060408201905062000e97600083018562000e6f565b62000ea6602083018462000e6f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f3b5780860481111562000f135762000f1262000ead565b5b600185161562000f235780820291505b808102905062000f338562000edc565b945062000ef3565b94509492505050565b60008262000f56576001905062001029565b8162000f66576000905062001029565b816001811462000f7f576002811462000f8a5762000fc0565b600191505062001029565b60ff84111562000f9f5762000f9e62000ead565b5b8360020a91508482111562000fb95762000fb862000ead565b5b5062001029565b5060208310610133831016604e8410600b841016171562000ffa5782820a90508381111562000ff45762000ff362000ead565b5b62001029565b62001009848484600162000ee9565b9250905081840481111562001023576200102262000ead565b5b81810290505b9392505050565b600060ff82169050919050565b60006200104a8262000b98565b9150620010578362001030565b9250620010867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f44565b905092915050565b60006200109b8262000b98565b9150620010a88362000b98565b9250828202620010b88162000b98565b91508282048414831517620010d257620010d162000ead565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011158262000b98565b9150620011228362000b98565b925082620011355762001134620010d9565b5b828204905092915050565b60006200114d8262000b98565b91506200115a8362000b98565b925082820190508082111562001175576200117462000ead565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620011c46020836200117b565b9150620011d1826200118c565b602082019050919050565b60006020820190508181036000830152620011f781620011b5565b9050919050565b60008115159050919050565b6200121581620011fe565b82525050565b60006020820190506200123260008301846200120a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001270601f836200117b565b91506200127d8262001238565b602082019050919050565b60006020820190508181036000830152620012a38162001261565b9050919050565b620012b58162000b98565b82525050565b6000602082019050620012d26000830184620012aa565b92915050565b60805160a051614c5b6200132860003960008181610de401526114eb015260008181610ab4015281816132ae0152818161338f015281816133b60152818161345201526134790152614c5b6000f3fe6080604052600436106102295760003560e01c806375f0a87411610123578063bbc0c742116100ab578063d85ba0631161006f578063d85ba06314610828578063dd62ed3e14610853578063e2f4560514610890578063f2fde38b146108bb578063f8b45b05146108e457610230565b8063bbc0c74214610743578063bea1cb271461076e578063c024666814610797578063c8c8ebe4146107c0578063d257b34f146107eb57610230565b806396188399116100f2578063961883991461064e5780639a7a23d614610677578063a457c2d7146106a0578063a9059cbb146106dd578063aacebbe31461071a57610230565b806375f0a874146105b65780638a8c523c146105e15780638da5cb5b146105f857806395d89b411461062357610230565b8063313ce567116101b15780636a486a8e116101755780636a486a8e146104e35780636ddd17131461050e57806370a0823114610539578063715018a6146105765780637571336a1461058d57610230565b8063313ce567146103ea578063395093511461041557806349bd5a5e146104525780634fbee1931461047d57806366ca9b83146104ba57610230565b806318160ddd116101f857806318160ddd146102f15780631fb24ccb1461031c57806323b872dd1461034557806327c8f835146103825780632ea756e6146103ad57610230565b806302dbd8f81461023557806306fdde031461025e578063095ea7b3146102895780631694505e146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190613568565b61090f565b005b34801561026a57600080fd5b50610273610a02565b6040516102809190613638565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab91906136b8565b610a94565b6040516102bd9190613713565b60405180910390f35b3480156102d257600080fd5b506102db610ab2565b6040516102e8919061378d565b60405180910390f35b3480156102fd57600080fd5b50610306610ad6565b60405161031391906137b7565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190613863565b610ae0565b005b34801561035157600080fd5b5061036c600480360381019061036791906138c3565b610c01565b6040516103799190613713565b60405180910390f35b34801561038e57600080fd5b50610397610cf9565b6040516103a49190613925565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190613940565b610cff565b6040516103e19190613713565b60405180910390f35b3480156103f657600080fd5b506103ff610d1f565b60405161040c9190613989565b60405180910390f35b34801561042157600080fd5b5061043c600480360381019061043791906136b8565b610d36565b6040516104499190613713565b60405180910390f35b34801561045e57600080fd5b50610467610de2565b6040516104749190613925565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f9190613940565b610e06565b6040516104b19190613713565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190613568565b610e5c565b005b3480156104ef57600080fd5b506104f8610f46565b60405161050591906137b7565b60405180910390f35b34801561051a57600080fd5b50610523610f4c565b6040516105309190613713565b60405180910390f35b34801561054557600080fd5b50610560600480360381019061055b9190613940565b610f5f565b60405161056d91906137b7565b60405180910390f35b34801561058257600080fd5b5061058b610fa7565b005b34801561059957600080fd5b506105b460048036038101906105af91906139a4565b61102f565b005b3480156105c257600080fd5b506105cb611106565b6040516105d89190613925565b60405180910390f35b3480156105ed57600080fd5b506105f661112c565b005b34801561060457600080fd5b5061060d6111fd565b60405161061a9190613925565b60405180910390f35b34801561062f57600080fd5b50610638611227565b6040516106459190613638565b60405180910390f35b34801561065a57600080fd5b5061067560048036038101906106709190613568565b6112b9565b005b34801561068357600080fd5b5061069e600480360381019061069991906139a4565b61146d565b005b3480156106ac57600080fd5b506106c760048036038101906106c291906136b8565b611585565b6040516106d49190613713565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906136b8565b611670565b6040516107119190613713565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190613940565b61168e565b005b34801561074f57600080fd5b5061075861183f565b6040516107659190613713565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613863565b611852565b005b3480156107a357600080fd5b506107be60048036038101906107b991906139a4565b611926565b005b3480156107cc57600080fd5b506107d5611a4b565b6040516107e291906137b7565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d91906139e4565b611a51565b60405161081f9190613713565b60405180910390f35b34801561083457600080fd5b5061083d611ba6565b60405161084a91906137b7565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613a11565b611bac565b60405161088791906137b7565b60405180910390f35b34801561089c57600080fd5b506108a5611c33565b6040516108b291906137b7565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd9190613940565b611c39565b005b3480156108f057600080fd5b506108f9611d30565b60405161090691906137b7565b60405180910390f35b610917611d36565b73ffffffffffffffffffffffffffffffffffffffff166109356111fd565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613a9d565b60405180910390fd5b81600f8190555080601081905550601054600f546109a99190613aec565b600e81905550600e546013819055506005600e5411156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590613b6c565b60405180910390fd5b5050565b606060038054610a1190613bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90613bbb565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa1611d36565b8484611d3e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610ae8611d36565b73ffffffffffffffffffffffffffffffffffffffff16610b066111fd565b73ffffffffffffffffffffffffffffffffffffffff1614610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390613a9d565b60405180910390fd5b60005b83839050811015610bfb578160176000868685818110610b8257610b81613bec565b5b9050602002016020810190610b979190613940565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bf390613c1b565b915050610b5f565b50505050565b6000610c0e848484611f07565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c59611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090613cd5565b60405180910390fd5b610ced85610ce5611d36565b858403611d3e565b60019150509392505050565b61dead81565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b6000610dd8610d43611d36565b848460016000610d51611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd39190613aec565b611d3e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e64611d36565b73ffffffffffffffffffffffffffffffffffffffff16610e826111fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90613a9d565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610ef69190613aec565b600b819055506005600b541115610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990613b6c565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610faf611d36565b73ffffffffffffffffffffffffffffffffffffffff16610fcd6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90613a9d565b60405180910390fd5b61102d6000612bd0565b565b611037611d36565b73ffffffffffffffffffffffffffffffffffffffff166110556111fd565b73ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290613a9d565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611134611d36565b73ffffffffffffffffffffffffffffffffffffffff166111526111fd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613a9d565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16600a60016101000a81548160ff021916908315150217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461123690613bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461126290613bbb565b80156112af5780601f10611284576101008083540402835291602001916112af565b820191906000526020600020905b81548152906001019060200180831161129257829003601f168201915b5050505050905090565b6112c1611d36565b73ffffffffffffffffffffffffffffffffffffffff166112df6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613a9d565b60405180910390fd5b6009600a6113439190613e28565b6103e86005611350610ad6565b61135a9190613e73565b6113649190613ee4565b61136e9190613ee4565b8210156113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613f87565b60405180910390fd5b6009600a6113be9190613e28565b6103e860056113cb610ad6565b6113d59190613e73565b6113df9190613ee4565b6113e99190613ee4565b81101561142b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142290614019565b60405180910390fd5b6009600a6114399190613e28565b816114449190613e73565b6009819055506009600a6114589190613e28565b826114639190613e73565b6007819055505050565b611475611d36565b73ffffffffffffffffffffffffffffffffffffffff166114936111fd565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613a9d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e906140ab565b60405180910390fd5b6115818282612c96565b5050565b60008060016000611594611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116489061413d565b60405180910390fd5b61166561165c611d36565b85858403611d3e565b600191505092915050565b600061168461167d611d36565b8484611f07565b6001905092915050565b611696611d36565b73ffffffffffffffffffffffffffffffffffffffff166116b46111fd565b73ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170190613a9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611770906141cf565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a35050565b600a60009054906101000a900460ff1681565b61185a611d36565b73ffffffffffffffffffffffffffffffffffffffff166118786111fd565b73ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613a9d565b60405180910390fd5b60005b838390508110156119205761190d8484838181106118f2576118f1613bec565b5b90506020020160208101906119079190613940565b83611926565b808061191890613c1b565b9150506118d1565b50505050565b61192e611d36565b73ffffffffffffffffffffffffffffffffffffffff1661194c6111fd565b73ffffffffffffffffffffffffffffffffffffffff16146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613a9d565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3f9190613713565b60405180910390a25050565b60075481565b6000611a5b611d36565b73ffffffffffffffffffffffffffffffffffffffff16611a796111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613a9d565b60405180910390fd5b620186a06001611add610ad6565b611ae79190613e73565b611af19190613ee4565b821015611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a90614261565b60405180910390fd5b6103e86005611b40610ad6565b611b4a9190613e73565b611b549190613ee4565b821115611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d906142f3565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611c41611d36565b73ffffffffffffffffffffffffffffffffffffffff16611c5f6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613a9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90614385565b60405180910390fd5b611d2d81612bd0565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da490614417565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e13906144a9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611efa91906137b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d9061453b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc906145cd565b60405180910390fd5b60008103611ffe57611ff983836000612d37565b612bcb565b6120066111fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207457506120446111fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120ad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120e7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121005750600560159054906101000a900460ff16155b1561275057600a60009054906101000a900460ff166121fa57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ba5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f090614639565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561229e5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561238757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123475750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d906146a5565b60405180910390fd5b5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d906146a5565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561250a5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125b157600754811115612554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254b90614737565b60405180910390fd5b60095461256083610f5f565b8261256b9190613aec565b11156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a3906147a3565b60405180910390fd5b61274f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126545750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126a35760075481111561269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614835565b60405180910390fd5b61274e565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661274d5760095461270083610f5f565b8261270b9190613aec565b111561274c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612743906147a3565b60405180910390fd5b5b5b5b5b600061275b30610f5f565b9050600060085482101590508080156127805750600a60019054906101000a900460ff165b80156127995750600560159054906101000a900460ff16155b80156127ef5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128455750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561289b5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128df576001600560156101000a81548160ff0219169083151502179055506128c3612fb6565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129955750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561299f57600090505b60008115612bb257601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a0257506000600e54115b15612a9c57612a2f6064612a21600e54886131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600e5460105482612a429190613e73565b612a4c9190613ee4565b60126000828254612a5d9190613aec565b92505081905550600e54600f5482612a759190613e73565b612a7f9190613ee4565b60116000828254612a909190613aec565b92505081905550612b8e565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612af757506000600b54115b15612b8d57612b246064612b16600b54886131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600b54600d5482612b379190613e73565b612b419190613ee4565b60126000828254612b529190613aec565b92505081905550600b54600c5482612b6a9190613e73565b612b749190613ee4565b60116000828254612b859190613aec565b925050819055505b5b6000811115612ba357612ba2873083612d37565b5b8085612baf9190614855565b94505b612bbd878787612d37565b601354600e81905550505050505b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9d9061453b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906145cd565b60405180910390fd5b612e208383836131ef565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9d906148fb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f399190613aec565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f9d91906137b7565b60405180910390a3612fb08484846131f4565b50505050565b6000612fc130610f5f565b90506000601154601254612fd59190613aec565b9050600080831480612fe75750600082145b15612ff4575050506131c1565b60146008546130039190613e73565b83111561301c5760146008546130199190613e73565b92505b60006002836012548661302f9190613e73565b6130399190613ee4565b6130439190613ee4565b9050600061305a82866131f990919063ffffffff16565b9050600047905061306a8261320f565b600061307f82476131f990919063ffffffff16565b905060006130aa8761309c601154856131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600081836130ba9190614855565b9050600060128190555060006011819055506000861180156130dc5750600081115b15613129576130eb868261344c565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb85826012546040516131209392919061491b565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161316f90614983565b60006040518083038185875af1925050503d80600081146131ac576040519150601f19603f3d011682016040523d82523d6000602084013e6131b1565b606091505b5050809750505050505050505050505b565b600081836131d19190613e73565b905092915050565b600081836131e79190613ee4565b905092915050565b505050565b505050565b600081836132079190614855565b905092915050565b6000600267ffffffffffffffff81111561322c5761322b614998565b5b60405190808252806020026020018201604052801561325a5781602001602082028036833780820191505090505b509050308160008151811061327257613271613bec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333b91906149dc565b8160018151811061334f5761334e613bec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133b4307f000000000000000000000000000000000000000000000000000000000000000084611d3e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613416959493929190614b02565b600060405180830381600087803b15801561343057600080fd5b505af1158015613444573d6000803e3d6000fd5b505050505050565b613477307f000000000000000000000000000000000000000000000000000000000000000084611d3e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016134de96959493929190614b5c565b60606040518083038185885af11580156134fc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906135219190614bd2565b5050505050565b600080fd5b600080fd5b6000819050919050565b61354581613532565b811461355057600080fd5b50565b6000813590506135628161353c565b92915050565b6000806040838503121561357f5761357e613528565b5b600061358d85828601613553565b925050602061359e85828601613553565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135e25780820151818401526020810190506135c7565b60008484015250505050565b6000601f19601f8301169050919050565b600061360a826135a8565b61361481856135b3565b93506136248185602086016135c4565b61362d816135ee565b840191505092915050565b6000602082019050818103600083015261365281846135ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136858261365a565b9050919050565b6136958161367a565b81146136a057600080fd5b50565b6000813590506136b28161368c565b92915050565b600080604083850312156136cf576136ce613528565b5b60006136dd858286016136a3565b92505060206136ee85828601613553565b9150509250929050565b60008115159050919050565b61370d816136f8565b82525050565b60006020820190506137286000830184613704565b92915050565b6000819050919050565b600061375361374e6137498461365a565b61372e565b61365a565b9050919050565b600061376582613738565b9050919050565b60006137778261375a565b9050919050565b6137878161376c565b82525050565b60006020820190506137a2600083018461377e565b92915050565b6137b181613532565b82525050565b60006020820190506137cc60008301846137a8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126137f7576137f66137d2565b5b8235905067ffffffffffffffff811115613814576138136137d7565b5b6020830191508360208202830111156138305761382f6137dc565b5b9250929050565b613840816136f8565b811461384b57600080fd5b50565b60008135905061385d81613837565b92915050565b60008060006040848603121561387c5761387b613528565b5b600084013567ffffffffffffffff81111561389a5761389961352d565b5b6138a6868287016137e1565b935093505060206138b98682870161384e565b9150509250925092565b6000806000606084860312156138dc576138db613528565b5b60006138ea868287016136a3565b93505060206138fb868287016136a3565b925050604061390c86828701613553565b9150509250925092565b61391f8161367a565b82525050565b600060208201905061393a6000830184613916565b92915050565b60006020828403121561395657613955613528565b5b6000613964848285016136a3565b91505092915050565b600060ff82169050919050565b6139838161396d565b82525050565b600060208201905061399e600083018461397a565b92915050565b600080604083850312156139bb576139ba613528565b5b60006139c9858286016136a3565b92505060206139da8582860161384e565b9150509250929050565b6000602082840312156139fa576139f9613528565b5b6000613a0884828501613553565b91505092915050565b60008060408385031215613a2857613a27613528565b5b6000613a36858286016136a3565b9250506020613a47858286016136a3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a876020836135b3565b9150613a9282613a51565b602082019050919050565b60006020820190508181036000830152613ab681613a7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613af782613532565b9150613b0283613532565b9250828201905080821115613b1a57613b19613abd565b5b92915050565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b6000613b56601c836135b3565b9150613b6182613b20565b602082019050919050565b60006020820190508181036000830152613b8581613b49565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd357607f821691505b602082108103613be657613be5613b8c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c2682613532565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c5857613c57613abd565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613cbf6028836135b3565b9150613cca82613c63565b604082019050919050565b60006020820190508181036000830152613cee81613cb2565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613d4c57808604811115613d2857613d27613abd565b5b6001851615613d375780820291505b8081029050613d4585613cf5565b9450613d0c565b94509492505050565b600082613d655760019050613e21565b81613d735760009050613e21565b8160018114613d895760028114613d9357613dc2565b6001915050613e21565b60ff841115613da557613da4613abd565b5b8360020a915084821115613dbc57613dbb613abd565b5b50613e21565b5060208310610133831016604e8410600b8410161715613df75782820a905083811115613df257613df1613abd565b5b613e21565b613e048484846001613d02565b92509050818404811115613e1b57613e1a613abd565b5b81810290505b9392505050565b6000613e3382613532565b9150613e3e8361396d565b9250613e6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d55565b905092915050565b6000613e7e82613532565b9150613e8983613532565b9250828202613e9781613532565b91508282048414831517613eae57613ead613abd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eef82613532565b9150613efa83613532565b925082613f0a57613f09613eb5565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f716021836135b3565b9150613f7c82613f15565b604082019050919050565b60006020820190508181036000830152613fa081613f64565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006140036024836135b3565b915061400e82613fa7565b604082019050919050565b6000602082019050818103600083015261403281613ff6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140956039836135b3565b91506140a082614039565b604082019050919050565b600060208201905081810360008301526140c481614088565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141276025836135b3565b9150614132826140cb565b604082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141b96022836135b3565b91506141c48261415d565b604082019050919050565b600060208201905081810360008301526141e8816141ac565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061424b6035836135b3565b9150614256826141ef565b604082019050919050565b6000602082019050818103600083015261427a8161423e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006142dd6034836135b3565b91506142e882614281565b604082019050919050565b6000602082019050818103600083015261430c816142d0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061436f6026836135b3565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144016024836135b3565b915061440c826143a5565b604082019050919050565b60006020820190508181036000830152614430816143f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144936022836135b3565b915061449e82614437565b604082019050919050565b600060208201905081810360008301526144c281614486565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145256025836135b3565b9150614530826144c9565b604082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b76023836135b3565b91506145c28261455b565b604082019050919050565b600060208201905081810360008301526145e6816145aa565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006146236016836135b3565b915061462e826145ed565b602082019050919050565b6000602082019050818103600083015261465281614616565b9050919050565b7f596f75722077616c6c6574206973206d61676963206164647265737321000000600082015250565b600061468f601d836135b3565b915061469a82614659565b602082019050919050565b600060208201905081810360008301526146be81614682565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006147216035836135b3565b915061472c826146c5565b604082019050919050565b6000602082019050818103600083015261475081614714565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061478d6013836135b3565b915061479882614757565b602082019050919050565b600060208201905081810360008301526147bc81614780565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061481f6036836135b3565b915061482a826147c3565b604082019050919050565b6000602082019050818103600083015261484e81614812565b9050919050565b600061486082613532565b915061486b83613532565b925082820390508181111561488357614882613abd565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148e56026836135b3565b91506148f082614889565b604082019050919050565b60006020820190508181036000830152614914816148d8565b9050919050565b600060608201905061493060008301866137a8565b61493d60208301856137a8565b61494a60408301846137a8565b949350505050565b600081905092915050565b50565b600061496d600083614952565b91506149788261495d565b600082019050919050565b600061498e82614960565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506149d68161368c565b92915050565b6000602082840312156149f2576149f1613528565b5b6000614a00848285016149c7565b91505092915050565b6000819050919050565b6000614a2e614a29614a2484614a09565b61372e565b613532565b9050919050565b614a3e81614a13565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a798161367a565b82525050565b6000614a8b8383614a70565b60208301905092915050565b6000602082019050919050565b6000614aaf82614a44565b614ab98185614a4f565b9350614ac483614a60565b8060005b83811015614af5578151614adc8882614a7f565b9750614ae783614a97565b925050600181019050614ac8565b5085935050505092915050565b600060a082019050614b1760008301886137a8565b614b246020830187614a35565b8181036040830152614b368186614aa4565b9050614b456060830185613916565b614b5260808301846137a8565b9695505050505050565b600060c082019050614b716000830189613916565b614b7e60208301886137a8565b614b8b6040830187614a35565b614b986060830186614a35565b614ba56080830185613916565b614bb260a08301846137a8565b979650505050505050565b600081519050614bcc8161353c565b92915050565b600080600060608486031215614beb57614bea613528565b5b6000614bf986828701614bbd565b9350506020614c0a86828701614bbd565b9250506040614c1b86828701614bbd565b915050925092509256fea2646970667358221220d5d2c6cf167040bc44db14f0593baaf90c4f90ca917e3b7a5c6655201201833e64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102295760003560e01c806375f0a87411610123578063bbc0c742116100ab578063d85ba0631161006f578063d85ba06314610828578063dd62ed3e14610853578063e2f4560514610890578063f2fde38b146108bb578063f8b45b05146108e457610230565b8063bbc0c74214610743578063bea1cb271461076e578063c024666814610797578063c8c8ebe4146107c0578063d257b34f146107eb57610230565b806396188399116100f2578063961883991461064e5780639a7a23d614610677578063a457c2d7146106a0578063a9059cbb146106dd578063aacebbe31461071a57610230565b806375f0a874146105b65780638a8c523c146105e15780638da5cb5b146105f857806395d89b411461062357610230565b8063313ce567116101b15780636a486a8e116101755780636a486a8e146104e35780636ddd17131461050e57806370a0823114610539578063715018a6146105765780637571336a1461058d57610230565b8063313ce567146103ea578063395093511461041557806349bd5a5e146104525780634fbee1931461047d57806366ca9b83146104ba57610230565b806318160ddd116101f857806318160ddd146102f15780631fb24ccb1461031c57806323b872dd1461034557806327c8f835146103825780632ea756e6146103ad57610230565b806302dbd8f81461023557806306fdde031461025e578063095ea7b3146102895780631694505e146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190613568565b61090f565b005b34801561026a57600080fd5b50610273610a02565b6040516102809190613638565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab91906136b8565b610a94565b6040516102bd9190613713565b60405180910390f35b3480156102d257600080fd5b506102db610ab2565b6040516102e8919061378d565b60405180910390f35b3480156102fd57600080fd5b50610306610ad6565b60405161031391906137b7565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190613863565b610ae0565b005b34801561035157600080fd5b5061036c600480360381019061036791906138c3565b610c01565b6040516103799190613713565b60405180910390f35b34801561038e57600080fd5b50610397610cf9565b6040516103a49190613925565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190613940565b610cff565b6040516103e19190613713565b60405180910390f35b3480156103f657600080fd5b506103ff610d1f565b60405161040c9190613989565b60405180910390f35b34801561042157600080fd5b5061043c600480360381019061043791906136b8565b610d36565b6040516104499190613713565b60405180910390f35b34801561045e57600080fd5b50610467610de2565b6040516104749190613925565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f9190613940565b610e06565b6040516104b19190613713565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190613568565b610e5c565b005b3480156104ef57600080fd5b506104f8610f46565b60405161050591906137b7565b60405180910390f35b34801561051a57600080fd5b50610523610f4c565b6040516105309190613713565b60405180910390f35b34801561054557600080fd5b50610560600480360381019061055b9190613940565b610f5f565b60405161056d91906137b7565b60405180910390f35b34801561058257600080fd5b5061058b610fa7565b005b34801561059957600080fd5b506105b460048036038101906105af91906139a4565b61102f565b005b3480156105c257600080fd5b506105cb611106565b6040516105d89190613925565b60405180910390f35b3480156105ed57600080fd5b506105f661112c565b005b34801561060457600080fd5b5061060d6111fd565b60405161061a9190613925565b60405180910390f35b34801561062f57600080fd5b50610638611227565b6040516106459190613638565b60405180910390f35b34801561065a57600080fd5b5061067560048036038101906106709190613568565b6112b9565b005b34801561068357600080fd5b5061069e600480360381019061069991906139a4565b61146d565b005b3480156106ac57600080fd5b506106c760048036038101906106c291906136b8565b611585565b6040516106d49190613713565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906136b8565b611670565b6040516107119190613713565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190613940565b61168e565b005b34801561074f57600080fd5b5061075861183f565b6040516107659190613713565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613863565b611852565b005b3480156107a357600080fd5b506107be60048036038101906107b991906139a4565b611926565b005b3480156107cc57600080fd5b506107d5611a4b565b6040516107e291906137b7565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d91906139e4565b611a51565b60405161081f9190613713565b60405180910390f35b34801561083457600080fd5b5061083d611ba6565b60405161084a91906137b7565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613a11565b611bac565b60405161088791906137b7565b60405180910390f35b34801561089c57600080fd5b506108a5611c33565b6040516108b291906137b7565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd9190613940565b611c39565b005b3480156108f057600080fd5b506108f9611d30565b60405161090691906137b7565b60405180910390f35b610917611d36565b73ffffffffffffffffffffffffffffffffffffffff166109356111fd565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613a9d565b60405180910390fd5b81600f8190555080601081905550601054600f546109a99190613aec565b600e81905550600e546013819055506005600e5411156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590613b6c565b60405180910390fd5b5050565b606060038054610a1190613bbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90613bbb565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa1611d36565b8484611d3e565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610ae8611d36565b73ffffffffffffffffffffffffffffffffffffffff16610b066111fd565b73ffffffffffffffffffffffffffffffffffffffff1614610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390613a9d565b60405180910390fd5b60005b83839050811015610bfb578160176000868685818110610b8257610b81613bec565b5b9050602002016020810190610b979190613940565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bf390613c1b565b915050610b5f565b50505050565b6000610c0e848484611f07565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c59611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090613cd5565b60405180910390fd5b610ced85610ce5611d36565b858403611d3e565b60019150509392505050565b61dead81565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b6000610dd8610d43611d36565b848460016000610d51611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd39190613aec565b611d3e565b6001905092915050565b7f0000000000000000000000009ee2741cd1036a51ba499d33b201cba7f81fe2ce81565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e64611d36565b73ffffffffffffffffffffffffffffffffffffffff16610e826111fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90613a9d565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610ef69190613aec565b600b819055506005600b541115610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990613b6c565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610faf611d36565b73ffffffffffffffffffffffffffffffffffffffff16610fcd6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90613a9d565b60405180910390fd5b61102d6000612bd0565b565b611037611d36565b73ffffffffffffffffffffffffffffffffffffffff166110556111fd565b73ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290613a9d565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611134611d36565b73ffffffffffffffffffffffffffffffffffffffff166111526111fd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613a9d565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16600a60016101000a81548160ff021916908315150217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461123690613bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461126290613bbb565b80156112af5780601f10611284576101008083540402835291602001916112af565b820191906000526020600020905b81548152906001019060200180831161129257829003601f168201915b5050505050905090565b6112c1611d36565b73ffffffffffffffffffffffffffffffffffffffff166112df6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613a9d565b60405180910390fd5b6009600a6113439190613e28565b6103e86005611350610ad6565b61135a9190613e73565b6113649190613ee4565b61136e9190613ee4565b8210156113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613f87565b60405180910390fd5b6009600a6113be9190613e28565b6103e860056113cb610ad6565b6113d59190613e73565b6113df9190613ee4565b6113e99190613ee4565b81101561142b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142290614019565b60405180910390fd5b6009600a6114399190613e28565b816114449190613e73565b6009819055506009600a6114589190613e28565b826114639190613e73565b6007819055505050565b611475611d36565b73ffffffffffffffffffffffffffffffffffffffff166114936111fd565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613a9d565b60405180910390fd5b7f0000000000000000000000009ee2741cd1036a51ba499d33b201cba7f81fe2ce73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e906140ab565b60405180910390fd5b6115818282612c96565b5050565b60008060016000611594611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116489061413d565b60405180910390fd5b61166561165c611d36565b85858403611d3e565b600191505092915050565b600061168461167d611d36565b8484611f07565b6001905092915050565b611696611d36565b73ffffffffffffffffffffffffffffffffffffffff166116b46111fd565b73ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170190613a9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611770906141cf565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a35050565b600a60009054906101000a900460ff1681565b61185a611d36565b73ffffffffffffffffffffffffffffffffffffffff166118786111fd565b73ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613a9d565b60405180910390fd5b60005b838390508110156119205761190d8484838181106118f2576118f1613bec565b5b90506020020160208101906119079190613940565b83611926565b808061191890613c1b565b9150506118d1565b50505050565b61192e611d36565b73ffffffffffffffffffffffffffffffffffffffff1661194c6111fd565b73ffffffffffffffffffffffffffffffffffffffff16146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613a9d565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3f9190613713565b60405180910390a25050565b60075481565b6000611a5b611d36565b73ffffffffffffffffffffffffffffffffffffffff16611a796111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613a9d565b60405180910390fd5b620186a06001611add610ad6565b611ae79190613e73565b611af19190613ee4565b821015611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a90614261565b60405180910390fd5b6103e86005611b40610ad6565b611b4a9190613e73565b611b549190613ee4565b821115611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d906142f3565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611c41611d36565b73ffffffffffffffffffffffffffffffffffffffff16611c5f6111fd565b73ffffffffffffffffffffffffffffffffffffffff1614611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613a9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90614385565b60405180910390fd5b611d2d81612bd0565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da490614417565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e13906144a9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611efa91906137b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d9061453b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc906145cd565b60405180910390fd5b60008103611ffe57611ff983836000612d37565b612bcb565b6120066111fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207457506120446111fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120ad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120e7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121005750600560159054906101000a900460ff16155b1561275057600a60009054906101000a900460ff166121fa57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ba5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f090614639565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561229e5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561238757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123475750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d906146a5565b60405180910390fd5b5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d906146a5565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561250a5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125b157600754811115612554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254b90614737565b60405180910390fd5b60095461256083610f5f565b8261256b9190613aec565b11156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a3906147a3565b60405180910390fd5b61274f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126545750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126a35760075481111561269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590614835565b60405180910390fd5b61274e565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661274d5760095461270083610f5f565b8261270b9190613aec565b111561274c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612743906147a3565b60405180910390fd5b5b5b5b5b600061275b30610f5f565b9050600060085482101590508080156127805750600a60019054906101000a900460ff165b80156127995750600560159054906101000a900460ff16155b80156127ef5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128455750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561289b5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128df576001600560156101000a81548160ff0219169083151502179055506128c3612fb6565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129955750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561299f57600090505b60008115612bb257601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a0257506000600e54115b15612a9c57612a2f6064612a21600e54886131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600e5460105482612a429190613e73565b612a4c9190613ee4565b60126000828254612a5d9190613aec565b92505081905550600e54600f5482612a759190613e73565b612a7f9190613ee4565b60116000828254612a909190613aec565b92505081905550612b8e565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612af757506000600b54115b15612b8d57612b246064612b16600b54886131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600b54600d5482612b379190613e73565b612b419190613ee4565b60126000828254612b529190613aec565b92505081905550600b54600c5482612b6a9190613e73565b612b749190613ee4565b60116000828254612b859190613aec565b925050819055505b5b6000811115612ba357612ba2873083612d37565b5b8085612baf9190614855565b94505b612bbd878787612d37565b601354600e81905550505050505b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9d9061453b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906145cd565b60405180910390fd5b612e208383836131ef565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9d906148fb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f399190613aec565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f9d91906137b7565b60405180910390a3612fb08484846131f4565b50505050565b6000612fc130610f5f565b90506000601154601254612fd59190613aec565b9050600080831480612fe75750600082145b15612ff4575050506131c1565b60146008546130039190613e73565b83111561301c5760146008546130199190613e73565b92505b60006002836012548661302f9190613e73565b6130399190613ee4565b6130439190613ee4565b9050600061305a82866131f990919063ffffffff16565b9050600047905061306a8261320f565b600061307f82476131f990919063ffffffff16565b905060006130aa8761309c601154856131c390919063ffffffff16565b6131d990919063ffffffff16565b9050600081836130ba9190614855565b9050600060128190555060006011819055506000861180156130dc5750600081115b15613129576130eb868261344c565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb85826012546040516131209392919061491b565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161316f90614983565b60006040518083038185875af1925050503d80600081146131ac576040519150601f19603f3d011682016040523d82523d6000602084013e6131b1565b606091505b5050809750505050505050505050505b565b600081836131d19190613e73565b905092915050565b600081836131e79190613ee4565b905092915050565b505050565b505050565b600081836132079190614855565b905092915050565b6000600267ffffffffffffffff81111561322c5761322b614998565b5b60405190808252806020026020018201604052801561325a5781602001602082028036833780820191505090505b509050308160008151811061327257613271613bec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333b91906149dc565b8160018151811061334f5761334e613bec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133b4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d3e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613416959493929190614b02565b600060405180830381600087803b15801561343057600080fd5b505af1158015613444573d6000803e3d6000fd5b505050505050565b613477307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d3e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016134de96959493929190614b5c565b60606040518083038185885af11580156134fc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906135219190614bd2565b5050505050565b600080fd5b600080fd5b6000819050919050565b61354581613532565b811461355057600080fd5b50565b6000813590506135628161353c565b92915050565b6000806040838503121561357f5761357e613528565b5b600061358d85828601613553565b925050602061359e85828601613553565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135e25780820151818401526020810190506135c7565b60008484015250505050565b6000601f19601f8301169050919050565b600061360a826135a8565b61361481856135b3565b93506136248185602086016135c4565b61362d816135ee565b840191505092915050565b6000602082019050818103600083015261365281846135ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136858261365a565b9050919050565b6136958161367a565b81146136a057600080fd5b50565b6000813590506136b28161368c565b92915050565b600080604083850312156136cf576136ce613528565b5b60006136dd858286016136a3565b92505060206136ee85828601613553565b9150509250929050565b60008115159050919050565b61370d816136f8565b82525050565b60006020820190506137286000830184613704565b92915050565b6000819050919050565b600061375361374e6137498461365a565b61372e565b61365a565b9050919050565b600061376582613738565b9050919050565b60006137778261375a565b9050919050565b6137878161376c565b82525050565b60006020820190506137a2600083018461377e565b92915050565b6137b181613532565b82525050565b60006020820190506137cc60008301846137a8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126137f7576137f66137d2565b5b8235905067ffffffffffffffff811115613814576138136137d7565b5b6020830191508360208202830111156138305761382f6137dc565b5b9250929050565b613840816136f8565b811461384b57600080fd5b50565b60008135905061385d81613837565b92915050565b60008060006040848603121561387c5761387b613528565b5b600084013567ffffffffffffffff81111561389a5761389961352d565b5b6138a6868287016137e1565b935093505060206138b98682870161384e565b9150509250925092565b6000806000606084860312156138dc576138db613528565b5b60006138ea868287016136a3565b93505060206138fb868287016136a3565b925050604061390c86828701613553565b9150509250925092565b61391f8161367a565b82525050565b600060208201905061393a6000830184613916565b92915050565b60006020828403121561395657613955613528565b5b6000613964848285016136a3565b91505092915050565b600060ff82169050919050565b6139838161396d565b82525050565b600060208201905061399e600083018461397a565b92915050565b600080604083850312156139bb576139ba613528565b5b60006139c9858286016136a3565b92505060206139da8582860161384e565b9150509250929050565b6000602082840312156139fa576139f9613528565b5b6000613a0884828501613553565b91505092915050565b60008060408385031215613a2857613a27613528565b5b6000613a36858286016136a3565b9250506020613a47858286016136a3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a876020836135b3565b9150613a9282613a51565b602082019050919050565b60006020820190508181036000830152613ab681613a7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613af782613532565b9150613b0283613532565b9250828201905080821115613b1a57613b19613abd565b5b92915050565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b6000613b56601c836135b3565b9150613b6182613b20565b602082019050919050565b60006020820190508181036000830152613b8581613b49565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bd357607f821691505b602082108103613be657613be5613b8c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c2682613532565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c5857613c57613abd565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613cbf6028836135b3565b9150613cca82613c63565b604082019050919050565b60006020820190508181036000830152613cee81613cb2565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613d4c57808604811115613d2857613d27613abd565b5b6001851615613d375780820291505b8081029050613d4585613cf5565b9450613d0c565b94509492505050565b600082613d655760019050613e21565b81613d735760009050613e21565b8160018114613d895760028114613d9357613dc2565b6001915050613e21565b60ff841115613da557613da4613abd565b5b8360020a915084821115613dbc57613dbb613abd565b5b50613e21565b5060208310610133831016604e8410600b8410161715613df75782820a905083811115613df257613df1613abd565b5b613e21565b613e048484846001613d02565b92509050818404811115613e1b57613e1a613abd565b5b81810290505b9392505050565b6000613e3382613532565b9150613e3e8361396d565b9250613e6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d55565b905092915050565b6000613e7e82613532565b9150613e8983613532565b9250828202613e9781613532565b91508282048414831517613eae57613ead613abd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eef82613532565b9150613efa83613532565b925082613f0a57613f09613eb5565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f716021836135b3565b9150613f7c82613f15565b604082019050919050565b60006020820190508181036000830152613fa081613f64565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006140036024836135b3565b915061400e82613fa7565b604082019050919050565b6000602082019050818103600083015261403281613ff6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140956039836135b3565b91506140a082614039565b604082019050919050565b600060208201905081810360008301526140c481614088565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141276025836135b3565b9150614132826140cb565b604082019050919050565b600060208201905081810360008301526141568161411a565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141b96022836135b3565b91506141c48261415d565b604082019050919050565b600060208201905081810360008301526141e8816141ac565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061424b6035836135b3565b9150614256826141ef565b604082019050919050565b6000602082019050818103600083015261427a8161423e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006142dd6034836135b3565b91506142e882614281565b604082019050919050565b6000602082019050818103600083015261430c816142d0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061436f6026836135b3565b915061437a82614313565b604082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144016024836135b3565b915061440c826143a5565b604082019050919050565b60006020820190508181036000830152614430816143f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144936022836135b3565b915061449e82614437565b604082019050919050565b600060208201905081810360008301526144c281614486565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145256025836135b3565b9150614530826144c9565b604082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b76023836135b3565b91506145c28261455b565b604082019050919050565b600060208201905081810360008301526145e6816145aa565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006146236016836135b3565b915061462e826145ed565b602082019050919050565b6000602082019050818103600083015261465281614616565b9050919050565b7f596f75722077616c6c6574206973206d61676963206164647265737321000000600082015250565b600061468f601d836135b3565b915061469a82614659565b602082019050919050565b600060208201905081810360008301526146be81614682565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006147216035836135b3565b915061472c826146c5565b604082019050919050565b6000602082019050818103600083015261475081614714565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061478d6013836135b3565b915061479882614757565b602082019050919050565b600060208201905081810360008301526147bc81614780565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061481f6036836135b3565b915061482a826147c3565b604082019050919050565b6000602082019050818103600083015261484e81614812565b9050919050565b600061486082613532565b915061486b83613532565b925082820390508181111561488357614882613abd565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148e56026836135b3565b91506148f082614889565b604082019050919050565b60006020820190508181036000830152614914816148d8565b9050919050565b600060608201905061493060008301866137a8565b61493d60208301856137a8565b61494a60408301846137a8565b949350505050565b600081905092915050565b50565b600061496d600083614952565b91506149788261495d565b600082019050919050565b600061498e82614960565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506149d68161368c565b92915050565b6000602082840312156149f2576149f1613528565b5b6000614a00848285016149c7565b91505092915050565b6000819050919050565b6000614a2e614a29614a2484614a09565b61372e565b613532565b9050919050565b614a3e81614a13565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a798161367a565b82525050565b6000614a8b8383614a70565b60208301905092915050565b6000602082019050919050565b6000614aaf82614a44565b614ab98185614a4f565b9350614ac483614a60565b8060005b83811015614af5578151614adc8882614a7f565b9750614ae783614a97565b925050600181019050614ac8565b5085935050505092915050565b600060a082019050614b1760008301886137a8565b614b246020830187614a35565b8181036040830152614b368186614aa4565b9050614b456060830185613916565b614b5260808301846137a8565b9695505050505050565b600060c082019050614b716000830189613916565b614b7e60208301886137a8565b614b8b6040830187614a35565b614b986060830186614a35565b614ba56080830185613916565b614bb260a08301846137a8565b979650505050505050565b600081519050614bcc8161353c565b92915050565b600080600060608486031215614beb57614bea613528565b5b6000614bf986828701614bbd565b9350506020614c0a86828701614bbd565b9250506040614c1b86828701614bbd565b915050925092509256fea2646970667358221220d5d2c6cf167040bc44db14f0593baaf90c4f90ca917e3b7a5c6655201201833e64736f6c63430008110033
Deployed Bytecode Sourcemap
14210:13291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19376:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3027:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3948:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14292:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3355:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20450:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4125:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14395:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15407:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3247:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4613:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14350:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21189:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19060:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14979:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14827:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3471:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1086:103;;;;;;;;;;;;;:::i;:::-;;18908:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14633:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17753:131;;;;;;;;;;;;;:::i;:::-;;863:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3135:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18364:536;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20159:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4836:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3606:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20681:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14787:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19927:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19737:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14672:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17892:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14867:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3789:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14714:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1197:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14754:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19376:353;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19495:13:::1;19476:16;:32;;;;19538:13;19519:16;:32;;;;19597:16;;19578;;:35;;;;:::i;:::-;19562:13;:51;;;;19638:13;;19624:11;:27;;;;19687:1;19670:13;;:18;;19662:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19376:353:::0;;:::o;3027:100::-;3081:13;3114:5;3107:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3027:100;:::o;3948:169::-;4031:4;4048:39;4057:12;:10;:12::i;:::-;4071:7;4080:6;4048:8;:39::i;:::-;4105:4;4098:11;;3948:169;;;;:::o;14292:51::-;;;:::o;3355:108::-;3416:7;3443:12;;3436:19;;3355:108;:::o;20450:223::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20560:9:::1;20555:111;20579:8;;:15;;20575:1;:19;20555:111;;;20646:8;20616:14;:27;20631:8;;20640:1;20631:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20616:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20596:3;;;;;:::i;:::-;;;;20555:111;;;;20450:223:::0;;;:::o;4125:480::-;4265:4;4282:36;4292:6;4300:9;4311:6;4282:9;:36::i;:::-;4331:24;4358:11;:19;4370:6;4358:19;;;;;;;;;;;;;;;:33;4378:12;:10;:12::i;:::-;4358:33;;;;;;;;;;;;;;;;4331:60;;4430:6;4410:16;:26;;4402:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4509:57;4518:6;4526:12;:10;:12::i;:::-;4559:6;4540:16;:25;4509:8;:57::i;:::-;4593:4;4586:11;;;4125:480;;;;;:::o;14395:53::-;14441:6;14395:53;:::o;15407:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;3247:100::-;3305:5;3330:9;;;;;;;;;;;3323:16;;3247:100;:::o;4613:215::-;4701:4;4718:80;4727:12;:10;:12::i;:::-;4741:7;4787:10;4750:11;:25;4762:12;:10;:12::i;:::-;4750:25;;;;;;;;;;;;;;;:34;4776:7;4750:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4718:8;:80::i;:::-;4816:4;4809:11;;4613:215;;;;:::o;14350:38::-;;;:::o;21189:126::-;21255:4;21279:19;:28;21299:7;21279:28;;;;;;;;;;;;;;;;;;;;;;;;;21272:35;;21189:126;;;:::o;19060:308::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19177:13:::1;19159:15;:31;;;;19219:13;19201:15;:31;;;;19276:15;;19258;;:33;;;;:::i;:::-;19243:12;:48;;;;19326:1;19310:12;;:17;;19302:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19060:308:::0;;:::o;14979:28::-;;;;:::o;14827:31::-;;;;;;;;;;;;;:::o;3471:127::-;3545:7;3572:9;:18;3582:7;3572:18;;;;;;;;;;;;;;;;3565:25;;3471:127;;;:::o;1086:103::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1151:30:::1;1178:1;1151:18;:30::i;:::-;1086:103::o:0;18908:144::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:4:::1;18998:31;:39;19030:6;18998:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18908:144:::0;;:::o;14633:30::-;;;;;;;;;;;;;:::o;17753:131::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17825:13:::1;;;;;;;;;;;17824:14;17808:13;;:30;;;;;;;;;;;;;;;;;;17863:13;;;;;;;;;;;17849:11;;:27;;;;;;;;;;;;;;;;;;17753:131::o:0;863:87::-;909:7;936:6;;;;;;;;;;;929:13;;863:87;:::o;3135:104::-;3191:13;3224:7;3217:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3135:104;:::o;18364:536::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14593:1:::1;18541:2;:13;;;;:::i;:::-;18533:4;18528:1;18512:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18511:26;;;;:::i;:::-;18510:44;;;;:::i;:::-;18497:9;:57;;18475:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;14593:1;18698:2;:13;;;;:::i;:::-;18690:4;18685:1;18669:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18668:26;;;;:::i;:::-;18667:44;;;;:::i;:::-;18648:15;:63;;18626:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;14593:1;18817:2;:13;;;;:::i;:::-;18798:15;:33;;;;:::i;:::-;18786:9;:45;;;;14593:1;18878:2;:13;;;;:::i;:::-;18865:9;:27;;;;:::i;:::-;18842:20;:50;;;;18364:536:::0;;:::o;20159:283::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20282:13:::1;20274:21;;:4;:21;;::::0;20252:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20393:41;20422:4;20428:5;20393:28;:41::i;:::-;20159:283:::0;;:::o;4836:401::-;4929:4;4946:24;4973:11;:25;4985:12;:10;:12::i;:::-;4973:25;;;;;;;;;;;;;;;:34;4999:7;4973:34;;;;;;;;;;;;;;;;4946:61;;5046:15;5026:16;:35;;5018:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5131:67;5140:12;:10;:12::i;:::-;5154:7;5182:15;5163:16;:34;5131:8;:67::i;:::-;5225:4;5218:11;;;4836:401;;;;:::o;3606:175::-;3692:4;3709:42;3719:12;:10;:12::i;:::-;3733:9;3744:6;3709:9;:42::i;:::-;3769:4;3762:11;;3606:175;;;;:::o;20681:304::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20790:1:::1;20769:23;;:9;:23;;::::0;20761:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20842:18;20863:15;;;;;;;;;;;20842:36;;20907:9;20889:15;;:27;;;;;;;;;;;;;;;;;;20966:10;20932:45;;20955:9;20932:45;;;;;;;;;;;;20750:235;20681:304:::0;:::o;14787:33::-;;;;;;;;;;;;;:::o;19927:224::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20038:9:::1;20034:110;20057:8;;:15;;20053:1;:19;20034:110;;;20094:38;20110:8;;20119:1;20110:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20123:8;20094:15;:38::i;:::-;20074:3;;;;;:::i;:::-;;;;20034:110;;;;19927:224:::0;;;:::o;19737:182::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19853:8:::1;19822:19;:28;19842:7;19822:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19893:7;19877:34;;;19902:8;19877:34;;;;;;:::i;:::-;;;;;;;;19737:182:::0;;:::o;14672:35::-;;;;:::o;17892:464::-;17973:4;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18046:6:::1;18041:1;18025:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18024:28;;;;:::i;:::-;18011:9;:41;;17989:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;18201:4;18196:1;18180:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18179:26;;;;:::i;:::-;18166:9;:39;;18144:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;18317:9;18296:18;:30;;;;18344:4;18337:11;;17892:464:::0;;;:::o;14867:27::-;;;;:::o;3789:151::-;3878:7;3905:11;:18;3917:5;3905:18;;;;;;;;;;;;;;;:27;3924:7;3905:27;;;;;;;;;;;;;;;;3898:34;;3789:151;;;;:::o;14714:33::-;;;;:::o;1197:201::-;1009:12;:10;:12::i;:::-;998:23;;:7;:5;:7::i;:::-;:23;;;990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1306:1:::1;1286:22;;:8;:22;;::::0;1278:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1362:28;1381:8;1362:18;:28::i;:::-;1197:201:::0;:::o;14754:24::-;;;;:::o;409:98::-;462:7;489:10;482:17;;409:98;:::o;6381:380::-;6534:1;6517:19;;:5;:19;;;6509:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6615:1;6596:21;;:7;:21;;;6588:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6699:6;6669:11;:18;6681:5;6669:18;;;;;;;;;;;;;;;:27;6688:7;6669:27;;;;;;;;;;;;;;;:36;;;;6737:7;6721:32;;6730:5;6721:32;;;6746:6;6721:32;;;;;;:::i;:::-;;;;;;;;6381:380;;;:::o;21323:3828::-;21471:1;21455:18;;:4;:18;;;21447:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21548:1;21534:16;;:2;:16;;;21526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21617:1;21607:6;:11;21603:93;;21635:28;21651:4;21657:2;21661:1;21635:15;:28::i;:::-;21678:7;;21603:93;21734:7;:5;:7::i;:::-;21726:15;;:4;:15;;;;:45;;;;;21764:7;:5;:7::i;:::-;21758:13;;:2;:13;;;;21726:45;:78;;;;;21802:1;21788:16;;:2;:16;;;;21726:78;:116;;;;;21835:6;21821:21;;:2;:21;;;;21726:116;:142;;;;;21860:8;;;;;;;;;;;21859:9;21726:142;21708:1853;;;21900:13;;;;;;;;;;;21895:203;;21964:19;:25;21984:4;21964:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21993:19;:23;22013:2;21993:23;;;;;;;;;;;;;;;;;;;;;;;;;21964:52;21934:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;21895:203;22119:25;:31;22145:4;22119:31;;;;;;;;;;;;;;;;;;;;;;;;;22118:32;:66;;;;;22155:25;:29;22181:2;22155:29;;;;;;;;;;;;;;;;;;;;;;;;;22154:30;22118:66;22114:193;;;22214:14;:20;22229:4;22214:20;;;;;;;;;;;;;;;;;;;;;;;;;22213:21;:44;;;;;22239:14;:18;22254:2;22239:18;;;;;;;;;;;;;;;;;;;;;;;;;22238:19;22213:44;22205:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;22114:193;22327:25;:29;22353:2;22327:29;;;;;;;;;;;;;;;;;;;;;;;;;22323:133;;;22386:14;:20;22401:4;22386:20;;;;;;;;;;;;;;;;;;;;;;;;;22385:21;22377:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22323:133;22518:25;:31;22544:4;22518:31;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;22571:31;:35;22603:2;22571:35;;;;;;;;;;;;;;;;;;;;;;;;;22570:36;22518:88;22496:1054;;;22681:20;;22671:6;:30;;22641:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;22873:9;;22856:13;22866:2;22856:9;:13::i;:::-;22847:6;:22;;;;:::i;:::-;:35;;22817:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;22496:1054;;;23027:25;:29;23053:2;23027:29;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;23078:31;:37;23110:4;23078:37;;;;;;;;;;;;;;;;;;;;;;;;;23077:38;23027:88;23005:545;;;23190:20;;23180:6;:30;;23150:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;23005:545;;;23350:31;:35;23382:2;23350:35;;;;;;;;;;;;;;;;;;;;;;;;;23345:205;;23462:9;;23445:13;23455:2;23445:9;:13::i;:::-;23436:6;:22;;;;:::i;:::-;:35;;23406:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;23345:205;23005:545;22496:1054;21708:1853;23573:28;23604:24;23622:4;23604:9;:24::i;:::-;23573:55;;23641:12;23680:18;;23656:20;:42;;23641:57;;23729:7;:35;;;;;23753:11;;;;;;;;;;;23729:35;:61;;;;;23782:8;;;;;;;;;;;23781:9;23729:61;:110;;;;;23808:25;:31;23834:4;23808:31;;;;;;;;;;;;;;;;;;;;;;;;;23807:32;23729:110;:153;;;;;23857:19;:25;23877:4;23857:25;;;;;;;;;;;;;;;;;;;;;;;;;23856:26;23729:153;:194;;;;;23900:19;:23;23920:2;23900:23;;;;;;;;;;;;;;;;;;;;;;;;;23899:24;23729:194;23711:326;;;23961:4;23950:8;;:15;;;;;;;;;;;;;;;;;;23982:10;:8;:10::i;:::-;24020:5;24009:8;;:16;;;;;;;;;;;;;;;;;;23711:326;24049:12;24065:8;;;;;;;;;;;24064:9;24049:24;;24090:19;:25;24110:4;24090:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24119:19;:23;24139:2;24119:23;;;;;;;;;;;;;;;;;;;;;;;;;24090:52;24086:100;;;24169:5;24159:15;;24086:100;24198:12;24231:7;24227:831;;;24283:25;:29;24309:2;24283:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;24332:1;24316:13;;:17;24283:50;24279:630;;;24361:34;24391:3;24361:25;24372:13;;24361:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24354:41;;24464:13;;24444:16;;24437:4;:23;;;;:::i;:::-;24436:41;;;;:::i;:::-;24414:18;;:63;;;;;;;:::i;:::-;;;;;;;;24546:13;;24526:16;;24519:4;:23;;;;:::i;:::-;24518:41;;;;:::i;:::-;24496:18;;:63;;;;;;;:::i;:::-;;;;;;;;24279:630;;;24621:25;:31;24647:4;24621:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;24671:1;24656:12;;:16;24621:51;24617:292;;;24700:33;24729:3;24700:24;24711:12;;24700:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;24693:40;;24801:12;;24782:15;;24775:4;:22;;;;:::i;:::-;24774:39;;;;:::i;:::-;24752:18;;:61;;;;;;;:::i;:::-;;;;;;;;24881:12;;24862:15;;24855:4;:22;;;;:::i;:::-;24854:39;;;;:::i;:::-;24832:18;;:61;;;;;;;:::i;:::-;;;;;;;;24617:292;24279:630;24936:1;24929:4;:8;24925:91;;;24958:42;24974:4;24988;24995;24958:15;:42::i;:::-;24925:91;25042:4;25032:14;;;;;:::i;:::-;;;24227:831;25070:33;25086:4;25092:2;25096:6;25070:15;:33::i;:::-;25130:11;;25114:13;:27;;;;21436:3715;;;;21323:3828;;;;:::o;1406:191::-;1480:16;1499:6;;;;;;;;;;;1480:25;;1525:8;1516:6;;:17;;;;;;;;;;;;;;;;;;1580:8;1549:40;;1570:8;1549:40;;;;;;;;;;;;1469:128;1406:191;:::o;20993:188::-;21110:5;21076:25;:31;21102:4;21076:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21167:5;21133:40;;21161:4;21133:40;;;;;;;;;;;;20993:188;;:::o;5245:721::-;5403:1;5385:20;;:6;:20;;;5377:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5487:1;5466:23;;:9;:23;;;5458:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5542:47;5563:6;5571:9;5582:6;5542:20;:47::i;:::-;5602:21;5626:9;:17;5636:6;5626:17;;;;;;;;;;;;;;;;5602:41;;5679:6;5662:13;:23;;5654:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5792:6;5776:13;:22;5756:9;:17;5766:6;5756:17;;;;;;;;;;;;;;;:42;;;;5840:6;5816:9;:20;5826:9;5816:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5881:9;5864:35;;5873:6;5864:35;;;5892:6;5864:35;;;;;;:::i;:::-;;;;;;;;5912:46;5932:6;5940:9;5951:6;5912:19;:46::i;:::-;5366:600;5245:721;;;:::o;26046:1452::-;26085:23;26111:24;26129:4;26111:9;:24::i;:::-;26085:50;;26146:25;26204:18;;26174;;:48;;;;:::i;:::-;26146:76;;26233:12;26281:1;26262:15;:20;:46;;;;26307:1;26286:17;:22;26262:46;26258:85;;;26325:7;;;;;26258:85;26398:2;26377:18;;:23;;;;:::i;:::-;26359:15;:41;26355:115;;;26456:2;26435:18;;:23;;;;:::i;:::-;26417:41;;26355:115;26482:23;26587:1;26558:17;26527:18;;26509:15;:36;;;;:::i;:::-;26508:67;;;;:::i;:::-;:80;;;;:::i;:::-;26482:106;;26599:26;26628:36;26648:15;26628;:19;;:36;;;;:::i;:::-;26599:65;;26677:25;26705:21;26677:49;;26739:36;26756:18;26739:16;:36::i;:::-;26788:18;26809:44;26835:17;26809:21;:25;;:44;;;;:::i;:::-;26788:65;;26866:23;26892:81;26945:17;26892:34;26907:18;;26892:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;26866:107;;26986:23;27025:15;27012:10;:28;;;;:::i;:::-;26986:54;;27074:1;27053:18;:22;;;;27107:1;27086:18;:22;;;;27143:1;27125:15;:19;:42;;;;;27166:1;27148:15;:19;27125:42;27121:280;;;27184:46;27197:15;27214;27184:12;:46::i;:::-;27250:139;27285:18;27322:15;27356:18;;27250:139;;;;;;;;:::i;:::-;;;;;;;;27121:280;27435:15;;;;;;;;;;;27427:29;;27464:21;27427:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27413:77;;;;;26074:1424;;;;;;;;;26046:1452;:::o;8295:98::-;8353:7;8384:1;8380;:5;;;;:::i;:::-;8373:12;;8295:98;;;;:::o;8401:::-;8459:7;8490:1;8486;:5;;;;:::i;:::-;8479:12;;8401:98;;;;:::o;6769:125::-;;;;:::o;6902:124::-;;;;:::o;8189:98::-;8247:7;8278:1;8274;:5;;;;:::i;:::-;8267:12;;8189:98;;;;:::o;25159:503::-;25227:21;25265:1;25251:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25227:40;;25296:4;25278;25283:1;25278:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25322:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25312:4;25317:1;25312:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25357:62;25374:4;25389:15;25407:11;25357:8;:62::i;:::-;25458:15;:66;;;25539:11;25565:1;25581:4;25608;25628:15;25458:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25214:448;25159:503;:::o;25670:368::-;25753:62;25770:4;25785:15;25803:11;25753:8;:62::i;:::-;25828:15;:31;;;25867:9;25900:4;25920:11;25946:1;25962;14441:6;26004:15;25828:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25670:368;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:117::-;5365:1;5362;5355:12;5379:117;5488:1;5485;5478:12;5502:117;5611:1;5608;5601:12;5642:568;5715:8;5725:6;5775:3;5768:4;5760:6;5756:17;5752:27;5742:122;;5783:79;;:::i;:::-;5742:122;5896:6;5883:20;5873:30;;5926:18;5918:6;5915:30;5912:117;;;5948:79;;:::i;:::-;5912:117;6062:4;6054:6;6050:17;6038:29;;6116:3;6108:4;6100:6;6096:17;6086:8;6082:32;6079:41;6076:128;;;6123:79;;:::i;:::-;6076:128;5642:568;;;;;:::o;6216:116::-;6286:21;6301:5;6286:21;:::i;:::-;6279:5;6276:32;6266:60;;6322:1;6319;6312:12;6266:60;6216:116;:::o;6338:133::-;6381:5;6419:6;6406:20;6397:29;;6435:30;6459:5;6435:30;:::i;:::-;6338:133;;;;:::o;6477:698::-;6569:6;6577;6585;6634:2;6622:9;6613:7;6609:23;6605:32;6602:119;;;6640:79;;:::i;:::-;6602:119;6788:1;6777:9;6773:17;6760:31;6818:18;6810:6;6807:30;6804:117;;;6840:79;;:::i;:::-;6804:117;6953:80;7025:7;7016:6;7005:9;7001:22;6953:80;:::i;:::-;6935:98;;;;6731:312;7082:2;7108:50;7150:7;7141:6;7130:9;7126:22;7108:50;:::i;:::-;7098:60;;7053:115;6477:698;;;;;:::o;7181:619::-;7258:6;7266;7274;7323:2;7311:9;7302:7;7298:23;7294:32;7291:119;;;7329:79;;:::i;:::-;7291:119;7449:1;7474:53;7519:7;7510:6;7499:9;7495:22;7474:53;:::i;:::-;7464:63;;7420:117;7576:2;7602:53;7647:7;7638:6;7627:9;7623:22;7602:53;:::i;:::-;7592:63;;7547:118;7704:2;7730:53;7775:7;7766:6;7755:9;7751:22;7730:53;:::i;:::-;7720:63;;7675:118;7181:619;;;;;:::o;7806:118::-;7893:24;7911:5;7893:24;:::i;:::-;7888:3;7881:37;7806:118;;:::o;7930:222::-;8023:4;8061:2;8050:9;8046:18;8038:26;;8074:71;8142:1;8131:9;8127:17;8118:6;8074:71;:::i;:::-;7930:222;;;;:::o;8158:329::-;8217:6;8266:2;8254:9;8245:7;8241:23;8237:32;8234:119;;;8272:79;;:::i;:::-;8234:119;8392:1;8417:53;8462:7;8453:6;8442:9;8438:22;8417:53;:::i;:::-;8407:63;;8363:117;8158:329;;;;:::o;8493:86::-;8528:7;8568:4;8561:5;8557:16;8546:27;;8493:86;;;:::o;8585:112::-;8668:22;8684:5;8668:22;:::i;:::-;8663:3;8656:35;8585:112;;:::o;8703:214::-;8792:4;8830:2;8819:9;8815:18;8807:26;;8843:67;8907:1;8896:9;8892:17;8883:6;8843:67;:::i;:::-;8703:214;;;;:::o;8923:468::-;8988:6;8996;9045:2;9033:9;9024:7;9020:23;9016:32;9013:119;;;9051:79;;:::i;:::-;9013:119;9171:1;9196:53;9241:7;9232:6;9221:9;9217:22;9196:53;:::i;:::-;9186:63;;9142:117;9298:2;9324:50;9366:7;9357:6;9346:9;9342:22;9324:50;:::i;:::-;9314:60;;9269:115;8923:468;;;;;:::o;9397:329::-;9456:6;9505:2;9493:9;9484:7;9480:23;9476:32;9473:119;;;9511:79;;:::i;:::-;9473:119;9631:1;9656:53;9701:7;9692:6;9681:9;9677:22;9656:53;:::i;:::-;9646:63;;9602:117;9397:329;;;;:::o;9732:474::-;9800:6;9808;9857:2;9845:9;9836:7;9832:23;9828:32;9825:119;;;9863:79;;:::i;:::-;9825:119;9983:1;10008:53;10053:7;10044:6;10033:9;10029:22;10008:53;:::i;:::-;9998:63;;9954:117;10110:2;10136:53;10181:7;10172:6;10161:9;10157:22;10136:53;:::i;:::-;10126:63;;10081:118;9732:474;;;;;:::o;10212:182::-;10352:34;10348:1;10340:6;10336:14;10329:58;10212:182;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10400:366;;;:::o;10772:419::-;10938:4;10976:2;10965:9;10961:18;10953:26;;11025:9;11019:4;11015:20;11011:1;11000:9;10996:17;10989:47;11053:131;11179:4;11053:131;:::i;:::-;11045:139;;10772:419;;;:::o;11197:180::-;11245:77;11242:1;11235:88;11342:4;11339:1;11332:15;11366:4;11363:1;11356:15;11383:191;11423:3;11442:20;11460:1;11442:20;:::i;:::-;11437:25;;11476:20;11494:1;11476:20;:::i;:::-;11471:25;;11519:1;11516;11512:9;11505:16;;11540:3;11537:1;11534:10;11531:36;;;11547:18;;:::i;:::-;11531:36;11383:191;;;;:::o;11580:178::-;11720:30;11716:1;11708:6;11704:14;11697:54;11580:178;:::o;11764:366::-;11906:3;11927:67;11991:2;11986:3;11927:67;:::i;:::-;11920:74;;12003:93;12092:3;12003:93;:::i;:::-;12121:2;12116:3;12112:12;12105:19;;11764:366;;;:::o;12136:419::-;12302:4;12340:2;12329:9;12325:18;12317:26;;12389:9;12383:4;12379:20;12375:1;12364:9;12360:17;12353:47;12417:131;12543:4;12417:131;:::i;:::-;12409:139;;12136:419;;;:::o;12561:180::-;12609:77;12606:1;12599:88;12706:4;12703:1;12696:15;12730:4;12727:1;12720:15;12747:320;12791:6;12828:1;12822:4;12818:12;12808:22;;12875:1;12869:4;12865:12;12896:18;12886:81;;12952:4;12944:6;12940:17;12930:27;;12886:81;13014:2;13006:6;13003:14;12983:18;12980:38;12977:84;;13033:18;;:::i;:::-;12977:84;12798:269;12747:320;;;:::o;13073:180::-;13121:77;13118:1;13111:88;13218:4;13215:1;13208:15;13242:4;13239:1;13232:15;13259:233;13298:3;13321:24;13339:5;13321:24;:::i;:::-;13312:33;;13367:66;13360:5;13357:77;13354:103;;13437:18;;:::i;:::-;13354:103;13484:1;13477:5;13473:13;13466:20;;13259:233;;;:::o;13498:227::-;13638:34;13634:1;13626:6;13622:14;13615:58;13707:10;13702:2;13694:6;13690:15;13683:35;13498:227;:::o;13731:366::-;13873:3;13894:67;13958:2;13953:3;13894:67;:::i;:::-;13887:74;;13970:93;14059:3;13970:93;:::i;:::-;14088:2;14083:3;14079:12;14072:19;;13731:366;;;:::o;14103:419::-;14269:4;14307:2;14296:9;14292:18;14284:26;;14356:9;14350:4;14346:20;14342:1;14331:9;14327:17;14320:47;14384:131;14510:4;14384:131;:::i;:::-;14376:139;;14103:419;;;:::o;14528:102::-;14570:8;14617:5;14614:1;14610:13;14589:34;;14528:102;;;:::o;14636:848::-;14697:5;14704:4;14728:6;14719:15;;14752:5;14743:14;;14766:712;14787:1;14777:8;14774:15;14766:712;;;14882:4;14877:3;14873:14;14867:4;14864:24;14861:50;;;14891:18;;:::i;:::-;14861:50;14941:1;14931:8;14927:16;14924:451;;;15356:4;15349:5;15345:16;15336:25;;14924:451;15406:4;15400;15396:15;15388:23;;15436:32;15459:8;15436:32;:::i;:::-;15424:44;;14766:712;;;14636:848;;;;;;;:::o;15490:1073::-;15544:5;15735:8;15725:40;;15756:1;15747:10;;15758:5;;15725:40;15784:4;15774:36;;15801:1;15792:10;;15803:5;;15774:36;15870:4;15918:1;15913:27;;;;15954:1;15949:191;;;;15863:277;;15913:27;15931:1;15922:10;;15933:5;;;15949:191;15994:3;15984:8;15981:17;15978:43;;;16001:18;;:::i;:::-;15978:43;16050:8;16047:1;16043:16;16034:25;;16085:3;16078:5;16075:14;16072:40;;;16092:18;;:::i;:::-;16072:40;16125:5;;;15863:277;;16249:2;16239:8;16236:16;16230:3;16224:4;16221:13;16217:36;16199:2;16189:8;16186:16;16181:2;16175:4;16172:12;16168:35;16152:111;16149:246;;;16305:8;16299:4;16295:19;16286:28;;16340:3;16333:5;16330:14;16327:40;;;16347:18;;:::i;:::-;16327:40;16380:5;;16149:246;16420:42;16458:3;16448:8;16442:4;16439:1;16420:42;:::i;:::-;16405:57;;;;16494:4;16489:3;16485:14;16478:5;16475:25;16472:51;;;16503:18;;:::i;:::-;16472:51;16552:4;16545:5;16541:16;16532:25;;15490:1073;;;;;;:::o;16569:281::-;16627:5;16651:23;16669:4;16651:23;:::i;:::-;16643:31;;16695:25;16711:8;16695:25;:::i;:::-;16683:37;;16739:104;16776:66;16766:8;16760:4;16739:104;:::i;:::-;16730:113;;16569:281;;;;:::o;16856:410::-;16896:7;16919:20;16937:1;16919:20;:::i;:::-;16914:25;;16953:20;16971:1;16953:20;:::i;:::-;16948:25;;17008:1;17005;17001:9;17030:30;17048:11;17030:30;:::i;:::-;17019:41;;17209:1;17200:7;17196:15;17193:1;17190:22;17170:1;17163:9;17143:83;17120:139;;17239:18;;:::i;:::-;17120:139;16904:362;16856:410;;;;:::o;17272:180::-;17320:77;17317:1;17310:88;17417:4;17414:1;17407:15;17441:4;17438:1;17431:15;17458:185;17498:1;17515:20;17533:1;17515:20;:::i;:::-;17510:25;;17549:20;17567:1;17549:20;:::i;:::-;17544:25;;17588:1;17578:35;;17593:18;;:::i;:::-;17578:35;17635:1;17632;17628:9;17623:14;;17458:185;;;;:::o;17649:220::-;17789:34;17785:1;17777:6;17773:14;17766:58;17858:3;17853:2;17845:6;17841:15;17834:28;17649:220;:::o;17875:366::-;18017:3;18038:67;18102:2;18097:3;18038:67;:::i;:::-;18031:74;;18114:93;18203:3;18114:93;:::i;:::-;18232:2;18227:3;18223:12;18216:19;;17875:366;;;:::o;18247:419::-;18413:4;18451:2;18440:9;18436:18;18428:26;;18500:9;18494:4;18490:20;18486:1;18475:9;18471:17;18464:47;18528:131;18654:4;18528:131;:::i;:::-;18520:139;;18247:419;;;:::o;18672:223::-;18812:34;18808:1;18800:6;18796:14;18789:58;18881:6;18876:2;18868:6;18864:15;18857:31;18672:223;:::o;18901:366::-;19043:3;19064:67;19128:2;19123:3;19064:67;:::i;:::-;19057:74;;19140:93;19229:3;19140:93;:::i;:::-;19258:2;19253:3;19249:12;19242:19;;18901:366;;;:::o;19273:419::-;19439:4;19477:2;19466:9;19462:18;19454:26;;19526:9;19520:4;19516:20;19512:1;19501:9;19497:17;19490:47;19554:131;19680:4;19554:131;:::i;:::-;19546:139;;19273:419;;;:::o;19698:244::-;19838:34;19834:1;19826:6;19822:14;19815:58;19907:27;19902:2;19894:6;19890:15;19883:52;19698:244;:::o;19948:366::-;20090:3;20111:67;20175:2;20170:3;20111:67;:::i;:::-;20104:74;;20187:93;20276:3;20187:93;:::i;:::-;20305:2;20300:3;20296:12;20289:19;;19948:366;;;:::o;20320:419::-;20486:4;20524:2;20513:9;20509:18;20501:26;;20573:9;20567:4;20563:20;20559:1;20548:9;20544:17;20537:47;20601:131;20727:4;20601:131;:::i;:::-;20593:139;;20320:419;;;:::o;20745:224::-;20885:34;20881:1;20873:6;20869:14;20862:58;20954:7;20949:2;20941:6;20937:15;20930:32;20745:224;:::o;20975:366::-;21117:3;21138:67;21202:2;21197:3;21138:67;:::i;:::-;21131:74;;21214:93;21303:3;21214:93;:::i;:::-;21332:2;21327:3;21323:12;21316:19;;20975:366;;;:::o;21347:419::-;21513:4;21551:2;21540:9;21536:18;21528:26;;21600:9;21594:4;21590:20;21586:1;21575:9;21571:17;21564:47;21628:131;21754:4;21628:131;:::i;:::-;21620:139;;21347:419;;;:::o;21772:221::-;21912:34;21908:1;21900:6;21896:14;21889:58;21981:4;21976:2;21968:6;21964:15;21957:29;21772:221;:::o;21999:366::-;22141:3;22162:67;22226:2;22221:3;22162:67;:::i;:::-;22155:74;;22238:93;22327:3;22238:93;:::i;:::-;22356:2;22351:3;22347:12;22340:19;;21999:366;;;:::o;22371:419::-;22537:4;22575:2;22564:9;22560:18;22552:26;;22624:9;22618:4;22614:20;22610:1;22599:9;22595:17;22588:47;22652:131;22778:4;22652:131;:::i;:::-;22644:139;;22371:419;;;:::o;22796:240::-;22936:34;22932:1;22924:6;22920:14;22913:58;23005:23;23000:2;22992:6;22988:15;22981:48;22796:240;:::o;23042:366::-;23184:3;23205:67;23269:2;23264:3;23205:67;:::i;:::-;23198:74;;23281:93;23370:3;23281:93;:::i;:::-;23399:2;23394:3;23390:12;23383:19;;23042:366;;;:::o;23414:419::-;23580:4;23618:2;23607:9;23603:18;23595:26;;23667:9;23661:4;23657:20;23653:1;23642:9;23638:17;23631:47;23695:131;23821:4;23695:131;:::i;:::-;23687:139;;23414:419;;;:::o;23839:239::-;23979:34;23975:1;23967:6;23963:14;23956:58;24048:22;24043:2;24035:6;24031:15;24024:47;23839:239;:::o;24084:366::-;24226:3;24247:67;24311:2;24306:3;24247:67;:::i;:::-;24240:74;;24323:93;24412:3;24323:93;:::i;:::-;24441:2;24436:3;24432:12;24425:19;;24084:366;;;:::o;24456:419::-;24622:4;24660:2;24649:9;24645:18;24637:26;;24709:9;24703:4;24699:20;24695:1;24684:9;24680:17;24673:47;24737:131;24863:4;24737:131;:::i;:::-;24729:139;;24456:419;;;:::o;24881:225::-;25021:34;25017:1;25009:6;25005:14;24998:58;25090:8;25085:2;25077:6;25073:15;25066:33;24881:225;:::o;25112:366::-;25254:3;25275:67;25339:2;25334:3;25275:67;:::i;:::-;25268:74;;25351:93;25440:3;25351:93;:::i;:::-;25469:2;25464:3;25460:12;25453:19;;25112:366;;;:::o;25484:419::-;25650:4;25688:2;25677:9;25673:18;25665:26;;25737:9;25731:4;25727:20;25723:1;25712:9;25708:17;25701:47;25765:131;25891:4;25765:131;:::i;:::-;25757:139;;25484:419;;;:::o;25909:223::-;26049:34;26045:1;26037:6;26033:14;26026:58;26118:6;26113:2;26105:6;26101:15;26094:31;25909:223;:::o;26138:366::-;26280:3;26301:67;26365:2;26360:3;26301:67;:::i;:::-;26294:74;;26377:93;26466:3;26377:93;:::i;:::-;26495:2;26490:3;26486:12;26479:19;;26138:366;;;:::o;26510:419::-;26676:4;26714:2;26703:9;26699:18;26691:26;;26763:9;26757:4;26753:20;26749:1;26738:9;26734:17;26727:47;26791:131;26917:4;26791:131;:::i;:::-;26783:139;;26510:419;;;:::o;26935:221::-;27075:34;27071:1;27063:6;27059:14;27052:58;27144:4;27139:2;27131:6;27127:15;27120:29;26935:221;:::o;27162:366::-;27304:3;27325:67;27389:2;27384:3;27325:67;:::i;:::-;27318:74;;27401:93;27490:3;27401:93;:::i;:::-;27519:2;27514:3;27510:12;27503:19;;27162:366;;;:::o;27534:419::-;27700:4;27738:2;27727:9;27723:18;27715:26;;27787:9;27781:4;27777:20;27773:1;27762:9;27758:17;27751:47;27815:131;27941:4;27815:131;:::i;:::-;27807:139;;27534:419;;;:::o;27959:224::-;28099:34;28095:1;28087:6;28083:14;28076:58;28168:7;28163:2;28155:6;28151:15;28144:32;27959:224;:::o;28189:366::-;28331:3;28352:67;28416:2;28411:3;28352:67;:::i;:::-;28345:74;;28428:93;28517:3;28428:93;:::i;:::-;28546:2;28541:3;28537:12;28530:19;;28189:366;;;:::o;28561:419::-;28727:4;28765:2;28754:9;28750:18;28742:26;;28814:9;28808:4;28804:20;28800:1;28789:9;28785:17;28778:47;28842:131;28968:4;28842:131;:::i;:::-;28834:139;;28561:419;;;:::o;28986:222::-;29126:34;29122:1;29114:6;29110:14;29103:58;29195:5;29190:2;29182:6;29178:15;29171:30;28986:222;:::o;29214:366::-;29356:3;29377:67;29441:2;29436:3;29377:67;:::i;:::-;29370:74;;29453:93;29542:3;29453:93;:::i;:::-;29571:2;29566:3;29562:12;29555:19;;29214:366;;;:::o;29586:419::-;29752:4;29790:2;29779:9;29775:18;29767:26;;29839:9;29833:4;29829:20;29825:1;29814:9;29810:17;29803:47;29867:131;29993:4;29867:131;:::i;:::-;29859:139;;29586:419;;;:::o;30011:172::-;30151:24;30147:1;30139:6;30135:14;30128:48;30011:172;:::o;30189:366::-;30331:3;30352:67;30416:2;30411:3;30352:67;:::i;:::-;30345:74;;30428:93;30517:3;30428:93;:::i;:::-;30546:2;30541:3;30537:12;30530:19;;30189:366;;;:::o;30561:419::-;30727:4;30765:2;30754:9;30750:18;30742:26;;30814:9;30808:4;30804:20;30800:1;30789:9;30785:17;30778:47;30842:131;30968:4;30842:131;:::i;:::-;30834:139;;30561:419;;;:::o;30986:179::-;31126:31;31122:1;31114:6;31110:14;31103:55;30986:179;:::o;31171:366::-;31313:3;31334:67;31398:2;31393:3;31334:67;:::i;:::-;31327:74;;31410:93;31499:3;31410:93;:::i;:::-;31528:2;31523:3;31519:12;31512:19;;31171:366;;;:::o;31543:419::-;31709:4;31747:2;31736:9;31732:18;31724:26;;31796:9;31790:4;31786:20;31782:1;31771:9;31767:17;31760:47;31824:131;31950:4;31824:131;:::i;:::-;31816:139;;31543:419;;;:::o;31968:240::-;32108:34;32104:1;32096:6;32092:14;32085:58;32177:23;32172:2;32164:6;32160:15;32153:48;31968:240;:::o;32214:366::-;32356:3;32377:67;32441:2;32436:3;32377:67;:::i;:::-;32370:74;;32453:93;32542:3;32453:93;:::i;:::-;32571:2;32566:3;32562:12;32555:19;;32214:366;;;:::o;32586:419::-;32752:4;32790:2;32779:9;32775:18;32767:26;;32839:9;32833:4;32829:20;32825:1;32814:9;32810:17;32803:47;32867:131;32993:4;32867:131;:::i;:::-;32859:139;;32586:419;;;:::o;33011:169::-;33151:21;33147:1;33139:6;33135:14;33128:45;33011:169;:::o;33186:366::-;33328:3;33349:67;33413:2;33408:3;33349:67;:::i;:::-;33342:74;;33425:93;33514:3;33425:93;:::i;:::-;33543:2;33538:3;33534:12;33527:19;;33186:366;;;:::o;33558:419::-;33724:4;33762:2;33751:9;33747:18;33739:26;;33811:9;33805:4;33801:20;33797:1;33786:9;33782:17;33775:47;33839:131;33965:4;33839:131;:::i;:::-;33831:139;;33558:419;;;:::o;33983:241::-;34123:34;34119:1;34111:6;34107:14;34100:58;34192:24;34187:2;34179:6;34175:15;34168:49;33983:241;:::o;34230:366::-;34372:3;34393:67;34457:2;34452:3;34393:67;:::i;:::-;34386:74;;34469:93;34558:3;34469:93;:::i;:::-;34587:2;34582:3;34578:12;34571:19;;34230:366;;;:::o;34602:419::-;34768:4;34806:2;34795:9;34791:18;34783:26;;34855:9;34849:4;34845:20;34841:1;34830:9;34826:17;34819:47;34883:131;35009:4;34883:131;:::i;:::-;34875:139;;34602:419;;;:::o;35027:194::-;35067:4;35087:20;35105:1;35087:20;:::i;:::-;35082:25;;35121:20;35139:1;35121:20;:::i;:::-;35116:25;;35165:1;35162;35158:9;35150:17;;35189:1;35183:4;35180:11;35177:37;;;35194:18;;:::i;:::-;35177:37;35027:194;;;;:::o;35227:225::-;35367:34;35363:1;35355:6;35351:14;35344:58;35436:8;35431:2;35423:6;35419:15;35412:33;35227:225;:::o;35458:366::-;35600:3;35621:67;35685:2;35680:3;35621:67;:::i;:::-;35614:74;;35697:93;35786:3;35697:93;:::i;:::-;35815:2;35810:3;35806:12;35799:19;;35458:366;;;:::o;35830:419::-;35996:4;36034:2;36023:9;36019:18;36011:26;;36083:9;36077:4;36073:20;36069:1;36058:9;36054:17;36047:47;36111:131;36237:4;36111:131;:::i;:::-;36103:139;;35830:419;;;:::o;36255:442::-;36404:4;36442:2;36431:9;36427:18;36419:26;;36455:71;36523:1;36512:9;36508:17;36499:6;36455:71;:::i;:::-;36536:72;36604:2;36593:9;36589:18;36580:6;36536:72;:::i;:::-;36618;36686:2;36675:9;36671:18;36662:6;36618:72;:::i;:::-;36255:442;;;;;;:::o;36703:147::-;36804:11;36841:3;36826:18;;36703:147;;;;:::o;36856:114::-;;:::o;36976:398::-;37135:3;37156:83;37237:1;37232:3;37156:83;:::i;:::-;37149:90;;37248:93;37337:3;37248:93;:::i;:::-;37366:1;37361:3;37357:11;37350:18;;36976:398;;;:::o;37380:379::-;37564:3;37586:147;37729:3;37586:147;:::i;:::-;37579:154;;37750:3;37743:10;;37380:379;;;:::o;37765:180::-;37813:77;37810:1;37803:88;37910:4;37907:1;37900:15;37934:4;37931:1;37924:15;37951:143;38008:5;38039:6;38033:13;38024:22;;38055:33;38082:5;38055:33;:::i;:::-;37951:143;;;;:::o;38100:351::-;38170:6;38219:2;38207:9;38198:7;38194:23;38190:32;38187:119;;;38225:79;;:::i;:::-;38187:119;38345:1;38370:64;38426:7;38417:6;38406:9;38402:22;38370:64;:::i;:::-;38360:74;;38316:128;38100:351;;;;:::o;38457:85::-;38502:7;38531:5;38520:16;;38457:85;;;:::o;38548:158::-;38606:9;38639:61;38657:42;38666:32;38692:5;38666:32;:::i;:::-;38657:42;:::i;:::-;38639:61;:::i;:::-;38626:74;;38548:158;;;:::o;38712:147::-;38807:45;38846:5;38807:45;:::i;:::-;38802:3;38795:58;38712:147;;:::o;38865:114::-;38932:6;38966:5;38960:12;38950:22;;38865:114;;;:::o;38985:184::-;39084:11;39118:6;39113:3;39106:19;39158:4;39153:3;39149:14;39134:29;;38985:184;;;;:::o;39175:132::-;39242:4;39265:3;39257:11;;39295:4;39290:3;39286:14;39278:22;;39175:132;;;:::o;39313:108::-;39390:24;39408:5;39390:24;:::i;:::-;39385:3;39378:37;39313:108;;:::o;39427:179::-;39496:10;39517:46;39559:3;39551:6;39517:46;:::i;:::-;39595:4;39590:3;39586:14;39572:28;;39427:179;;;;:::o;39612:113::-;39682:4;39714;39709:3;39705:14;39697:22;;39612:113;;;:::o;39761:732::-;39880:3;39909:54;39957:5;39909:54;:::i;:::-;39979:86;40058:6;40053:3;39979:86;:::i;:::-;39972:93;;40089:56;40139:5;40089:56;:::i;:::-;40168:7;40199:1;40184:284;40209:6;40206:1;40203:13;40184:284;;;40285:6;40279:13;40312:63;40371:3;40356:13;40312:63;:::i;:::-;40305:70;;40398:60;40451:6;40398:60;:::i;:::-;40388:70;;40244:224;40231:1;40228;40224:9;40219:14;;40184:284;;;40188:14;40484:3;40477:10;;39885:608;;;39761:732;;;;:::o;40499:831::-;40762:4;40800:3;40789:9;40785:19;40777:27;;40814:71;40882:1;40871:9;40867:17;40858:6;40814:71;:::i;:::-;40895:80;40971:2;40960:9;40956:18;40947:6;40895:80;:::i;:::-;41022:9;41016:4;41012:20;41007:2;40996:9;40992:18;40985:48;41050:108;41153:4;41144:6;41050:108;:::i;:::-;41042:116;;41168:72;41236:2;41225:9;41221:18;41212:6;41168:72;:::i;:::-;41250:73;41318:3;41307:9;41303:19;41294:6;41250:73;:::i;:::-;40499:831;;;;;;;;:::o;41336:807::-;41585:4;41623:3;41612:9;41608:19;41600:27;;41637:71;41705:1;41694:9;41690:17;41681:6;41637:71;:::i;:::-;41718:72;41786:2;41775:9;41771:18;41762:6;41718:72;:::i;:::-;41800:80;41876:2;41865:9;41861:18;41852:6;41800:80;:::i;:::-;41890;41966:2;41955:9;41951:18;41942:6;41890:80;:::i;:::-;41980:73;42048:3;42037:9;42033:19;42024:6;41980:73;:::i;:::-;42063;42131:3;42120:9;42116:19;42107:6;42063:73;:::i;:::-;41336:807;;;;;;;;;:::o;42149:143::-;42206:5;42237:6;42231:13;42222:22;;42253:33;42280:5;42253:33;:::i;:::-;42149:143;;;;:::o;42298:663::-;42386:6;42394;42402;42451:2;42439:9;42430:7;42426:23;42422:32;42419:119;;;42457:79;;:::i;:::-;42419:119;42577:1;42602:64;42658:7;42649:6;42638:9;42634:22;42602:64;:::i;:::-;42592:74;;42548:128;42715:2;42741:64;42797:7;42788:6;42777:9;42773:22;42741:64;:::i;:::-;42731:74;;42686:129;42854:2;42880:64;42936:7;42927:6;42916:9;42912:22;42880:64;:::i;:::-;42870:74;;42825:129;42298:663;;;;;:::o
Swarm Source
ipfs://d5d2c6cf167040bc44db14f0593baaf90c4f90ca917e3b7a5c6655201201833e
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.