ERC-20
Overview
Max Total Supply
100,000,000,000 BSHARK
Holders
16
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
919,428,483.105089826766892928 BSHARKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BananaShark
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-18 */ /* Telegram: https://t.me/BananaSharkERC Website: http://bananashark.xyz/ Twitter: https://twitter.com/BananaSharkERC The Banana Shark: A Meme for the Community -=+++++=-: ..:*#+==+*+====++++==--. .------=+***####**+: .-==+++++=====+%-+@#===========+++==+-:..-=+++***+====+=- :=++=============*@*#@%================+++#*==+*+======+= :**+++++============*%%#++++++===============**+=======+= .*:.==:.:==++==========+*=:....++===============+*=====*. +:...:.....:-=++++++++-........#=================**==*. -=.....................=#=....#=======*+=========+**: -=-:.............:=#%*%:....*===+**+=+*+========*% :=-:......:-=#%%**#+.....:*+=+***+==+++=======*. :+*=**+*--##*##=...*.....-=++++#++=++****+==* -+. :.:%%#=...:*:.........+=-*========#+=#-- -*+:....=*=-..-=:....:+-.++=======#+=..-=. :=-----#+=:=#*%=-......-+--*=======*.....+. =#+=+#=+*==-=======++==*======*.....* #---*#+*:......:=.-++*#++*=====*:...* .*---#.:.......-#**+*+%=-+***+===*+..+. #---#.........#=*#+--#---%+*###*+=*=+: *---#.........*==#---#---#+*%*+*%*++%: :*--+=........#**=---#---=*==#+=+=..=: *---*.......-*#-----#----=**##==#..+. -+--*:......=+#-----#-----==*=*=#..* #--=#......=*#-----#-----==*:#=*..* +--+%+.....+*+-----#----===# #*=.=: :*+=#+=....##-----+*---====+ ##.-- *-++..+#+-----*=---===* -*=: ==-=++#=------#---===*- .*-----------=*--===+= *-----------*=-===+- ==---------=#====*: *---------#===++. *-------+*=++: #**##*#%+*- +%%%%%%%#. .*%@@@#= .. */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, 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 _init(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 _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), 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 {} } contract BananaShark is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => bool) private _isExcludedFromFees; uint256 public tradingActiveTime; uint256 private buyFee; uint256 private sellFee; address public marketingWallet; address private DEAD = 0x000000000000000000000000000000000000dEaD; bool public tradingEnabled; uint256 public swapTokensAtAmount; bool public swapWithLimit; bool private swapping; event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludedFromMaxTransactionLimit(address indexed account, bool isExcluded); event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded); event MaxWalletLimitAmountChanged(uint256 maxWalletLimitRate); event MaxWalletLimitStateChanged(bool maxWalletLimit); event MaxTransactionLimitAmountChanged(uint256 maxTransferRate); event MaxTransactionLimitStateChanged(bool maxTransactionLimit); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived); event SwapWithLimitUpdated(bool swapWithLimit); constructor () ERC20("Banana Shark", "BSHARK") { address newOwner = 0x1373568396ABa1D728905b9281A9B36e42B21986; transferOwnership(newOwner); address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH UniswapV2 Router IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _approve(address(this), address(uniswapV2Router), type(uint256).max); marketingWallet = 0x6aEaE5F86403eFfd3F3573070892803b07002036; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromMaxTxLimit[owner()] = true; _isExcludedFromMaxTxLimit[address(0)] = true; _isExcludedFromMaxTxLimit[address(this)] = true; _isExcludedFromMaxTxLimit[DEAD] = true; _isExcludedFromMaxWalletLimit[owner()] = true; _isExcludedFromMaxWalletLimit[address(0)] = true; _isExcludedFromMaxWalletLimit[address(this)] = true; _isExcludedFromMaxWalletLimit[DEAD] = true; _init(owner(), 100000000000 ether); swapTokensAtAmount = totalSupply() / 5000; maxTransactionAmount = totalSupply() / 100; maxWalletAmount = totalSupply() / 100; } receive() external payable { } function enableTrading() public onlyOwner{ require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; tradingActiveTime = block.timestamp; } function claimStuckTokens(address token) external onlyOwner { if (token == address(0x0)) { (bool success,) = msg.sender.call{value: address(this).balance}(""); require(success, "Claim failed"); return; } IERC20 ERC20token = IERC20(token); uint256 balance = ERC20token.balanceOf(address(this)); ERC20token.transfer(msg.sender, balance); } function getBuyFee() public view returns (uint256) { uint256 _buyFee; if (block.timestamp - tradingActiveTime < 15 minutes) { _buyFee = 5; }else if (block.timestamp - tradingActiveTime >= 15 minutes && block.timestamp - tradingActiveTime < 25 minutes) { _buyFee = 1; }else if (block.timestamp - tradingActiveTime >= 25 minutes) { _buyFee = 0; } return _buyFee; } function getSellFee() public view returns (uint256) { uint256 _sellFee; if (block.timestamp - tradingActiveTime < 5 minutes) { _sellFee = 20; }else if (block.timestamp - tradingActiveTime >= 5 minutes && block.timestamp - tradingActiveTime < 10 minutes) { _sellFee = 10; }else if (block.timestamp - tradingActiveTime >= 10 minutes && block.timestamp - tradingActiveTime < 15 minutes) { _sellFee = 5; }else if (block.timestamp - tradingActiveTime >= 15 minutes && block.timestamp - tradingActiveTime < 25 minutes) { _sellFee = 1; }else if (block.timestamp - tradingActiveTime >= 25 minutes) { _sellFee = 0; } return _sellFee; } function excludeFromFees(address account, bool excluded) external onlyOwner{ require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'"); _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function changeMarketingWallet(address _marketingWallet) external onlyOwner { require(_marketingWallet != address(0), "Marketing wallet cannot be the zero address"); marketingWallet = _marketingWallet; } 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"); require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet"); if (amount == 0) { super._transfer(from, to, 0); return; } if (maxTransactionLimitEnabled) { if ((from == uniswapV2Pair || to == uniswapV2Pair) && _isExcludedFromMaxTxLimit[from] == false && _isExcludedFromMaxTxLimit[to] == false) { require(amount <= maxTransactionAmount, "AntiWhale: Transfer amount exceeds the maxTransactionAmount"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && to == uniswapV2Pair ) { swapping = true; if (swapWithLimit) { contractTokenBalance = swapTokensAtAmount; } swap(contractTokenBalance); swapping = false; } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; }else if (from == uniswapV2Pair) { _totalFees = getBuyFee(); }else if (to == uniswapV2Pair) { _totalFees = getSellFee(); }else { _totalFees = 0; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(this), fees); } if (maxWalletLimitEnabled) { if (_isExcludedFromMaxWalletLimit[from] == false && _isExcludedFromMaxWalletLimit[to] == false && to != uniswapV2Pair ) { uint balance = balanceOf(to); require( balance + amount <= maxWalletAmount, "MaxWallet: Recipient exceeds the maxWalletAmount" ); } } super._transfer(from, to, amount); } function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{ require(newAmount > totalSupply() / 1000000, "SwapTokensAtAmount must be greater than 0.0001% of total supply"); swapTokensAtAmount = newAmount; emit SwapTokensAtAmountUpdated(swapTokensAtAmount); } function setSwapWithLimit(bool _swapWithLimit) external onlyOwner{ swapWithLimit = _swapWithLimit; emit SwapWithLimitUpdated(swapWithLimit); } function swap(uint256 tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); uint256 newBalance = address(this).balance - initialBalance; bool success = payable(marketingWallet).send(newBalance); if (success) { emit SwapAndSend(tokenAmount, newBalance); } } //=======MaxWallet=======// mapping(address => bool) private _isExcludedFromMaxWalletLimit; bool public maxWalletLimitEnabled = true; uint256 public maxWalletAmount; function setEnableMaxWalletLimit(bool enable) external onlyOwner { require( enable != maxWalletLimitEnabled, "Max wallet limit is already set to that state" ); maxWalletLimitEnabled = enable; emit MaxWalletLimitStateChanged(maxWalletLimitEnabled); } function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner { require( _maxWalletAmount >= (totalSupply() / (10 ** decimals())) / 100, "Max wallet percentage cannot be lower than 1%" ); maxWalletAmount = _maxWalletAmount * (10 ** decimals()); emit MaxWalletLimitAmountChanged(maxWalletAmount); } function setExcludeFromMaxWallet(address account, bool exclude) external onlyOwner { require( _isExcludedFromMaxWalletLimit[account] != exclude, "Account is already set to that state" ); _isExcludedFromMaxWalletLimit[account] = exclude; emit ExcludedFromMaxWalletLimit(account, exclude); } function isExcludedFromMaxWalletLimit(address account) public view returns(bool) { return _isExcludedFromMaxWalletLimit[account]; } //=======MaxTransaction=======// mapping(address => bool) private _isExcludedFromMaxTxLimit; bool public maxTransactionLimitEnabled = true; uint256 public maxTransactionAmount; function setEnableMaxTransactionLimit(bool enable) external onlyOwner { require( enable != maxTransactionLimitEnabled, "Max transaction limit is already set to that state" ); maxTransactionLimitEnabled = enable; emit MaxTransactionLimitStateChanged(maxTransactionLimitEnabled); } function setMaxTransactionAmount(uint256 _maxTransactionAmount) external onlyOwner { require( _maxTransactionAmount >= (totalSupply() / (10 ** decimals())) / 1000, "Max Transaction limis cannot be lower than 0.1% of total supply" ); maxTransactionAmount = _maxTransactionAmount * (10 ** decimals()); emit MaxTransactionLimitAmountChanged(maxTransactionAmount); } function setExcludeFromMaxTransactionLimit(address account, bool exclude) external onlyOwner { require( _isExcludedFromMaxTxLimit[account] != exclude, "Account is already set to that state" ); _isExcludedFromMaxTxLimit[account] = exclude; emit ExcludedFromMaxTransactionLimit(account, exclude); } function isExcludedFromMaxTransaction(address account) public view returns(bool) { return _isExcludedFromMaxTxLimit[account]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransferRate","type":"uint256"}],"name":"MaxTransactionLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxTransactionLimit","type":"bool"}],"name":"MaxTransactionLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletLimitRate","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"account","type":"address"}],"name":"isExcludedFromMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","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":"maxTransactionLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapWithLimit","type":"bool"}],"name":"setSwapWithLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tradingActiveTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160115f6101000a81548160ff021916908315150217905550600160145f6101000a81548160ff02191690831515021790555034801562000086575f80fd5b506040518060400160405280600c81526020017f42616e616e6120536861726b00000000000000000000000000000000000000008152506040518060400160405280600681526020017f42534841524b0000000000000000000000000000000000000000000000000000815250816003908162000104919062001103565b50806004908162000116919062001103565b5050505f6200012a6200095260201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f731373568396aba1d728905b9281a9b36e42b219869050620001f0816200095960201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027d91906200124c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030991906200124c565b6040518363ffffffff1660e01b8152600401620003289291906200128d565b6020604051808303815f875af115801562000345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036b91906200124c565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004413060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000b2960201b60201c565b736aeae5f86403effd3f3573070892803b07002036600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f620004aa62000cf460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f620005ba62000cf460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f6200073e62000cf460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008db620008c162000cf460201b60201c565b6c01431e0fae6d7217caa000000062000d1c60201b60201c565b611388620008ee62000e8c60201b60201c565b620008fa919062001312565b600e8190555060646200091262000e8c60201b60201c565b6200091e919062001312565b60158190555060646200093662000e8c60201b60201c565b62000942919062001312565b6012819055505050505062001657565b5f33905090565b620009696200095260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f190620013a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a62906200143b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9190620014cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c029062001563565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ce7919062001594565b60405180910390a3505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d8490620015fd565b60405180910390fd5b62000da05f838362000e9560201b60201c565b8060025f82825462000db391906200161d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000e0791906200161d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e6d919062001594565b60405180910390a362000e885f838362000e9a60201b60201c565b5050565b5f600254905090565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000f1b57607f821691505b60208210810362000f315762000f3062000ed6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f58565b62000fa1868362000f58565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000feb62000fe562000fdf8462000fb9565b62000fc2565b62000fb9565b9050919050565b5f819050919050565b620010068362000fcb565b6200101e620010158262000ff2565b84845462000f64565b825550505050565b5f90565b6200103462001026565b6200104181848462000ffb565b505050565b5b8181101562001068576200105c5f826200102a565b60018101905062001047565b5050565b601f821115620010b757620010818162000f37565b6200108c8462000f49565b810160208510156200109c578190505b620010b4620010ab8562000f49565b83018262001046565b50505b505050565b5f82821c905092915050565b5f620010d95f1984600802620010bc565b1980831691505092915050565b5f620010f38383620010c8565b9150826002028217905092915050565b6200110e8262000e9f565b67ffffffffffffffff8111156200112a576200112962000ea9565b5b62001136825462000f03565b620011438282856200106c565b5f60209050601f83116001811462001179575f841562001164578287015190505b620011708582620010e6565b865550620011df565b601f198416620011898662000f37565b5f5b82811015620011b2578489015182556001820191506020850194506020810190506200118b565b86831015620011d25784890151620011ce601f891682620010c8565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200121682620011eb565b9050919050565b62001228816200120a565b811462001233575f80fd5b50565b5f8151905062001246816200121d565b92915050565b5f60208284031215620012645762001263620011e7565b5b5f620012738482850162001236565b91505092915050565b62001287816200120a565b82525050565b5f604082019050620012a25f8301856200127c565b620012b160208301846200127c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200131e8262000fb9565b91506200132b8362000fb9565b9250826200133e576200133d620012b8565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200138f60208362001349565b91506200139c8262001359565b602082019050919050565b5f6020820190508181035f830152620013c08162001381565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6200142360268362001349565b91506200143082620013c7565b604082019050919050565b5f6020820190508181035f830152620014548162001415565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f620014b760248362001349565b9150620014c4826200145b565b604082019050919050565b5f6020820190508181035f830152620014e881620014a9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200154b60228362001349565b91506200155882620014ef565b604082019050919050565b5f6020820190508181035f8301526200157c816200153d565b9050919050565b6200158e8162000fb9565b82525050565b5f602082019050620015a95f83018462001583565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620015e5601f8362001349565b9150620015f282620015af565b602082019050919050565b5f6020820190508181035f8301526200161681620015d7565b9050919050565b5f620016298262000fb9565b9150620016368362000fb9565b9250828201905080821115620016515762001650620012e5565b5b92915050565b614b8380620016655f395ff3fe608060405260043610610254575f3560e01c806370a0823111610138578063a8a69b9d116100b5578063c024666811610079578063c0246668146108af578063c8c8ebe4146108d7578063dd62ed3e14610901578063e2f456051461093d578063f2fde38b14610967578063f9d0831a1461098f5761025b565b8063a8a69b9d146107bd578063a9059cbb146107f9578063aa4bde2814610835578063afa4f3b21461085f578063bb85c6d1146108875761025b565b80638f818b90116100fc5780638f818b90146106dd578063929f13601461070757806395d89b411461072f578063988be11814610759578063a457c2d7146107815761025b565b806370a0823114610621578063715018a61461065d57806375f0a874146106735780638a8c523c1461069d5780638da5cb5b146106b35761025b565b8063289af0d8116101d1578063488eb37f11610195578063488eb37f1461051557806349bd5a5e1461053f5780634ada218b146105695780634fbee193146105935780635031595f146105cf57806356a6cabf146105f95761025b565b8063289af0d8146104335780632a6c7dba1461045d5780632ba86bf214610485578063313ce567146104af57806339509351146104d95761025b565b806318d9ceae1161021857806318d9ceae146103415780631e293c101461037d57806321a9d82a146103a557806323b872dd146103cf57806327a14fc21461040b5761025b565b806306fdde031461025f578063095ea7b314610289578063150c880c146102c55780631694505e146102ed57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109b7565b604051610280919061362b565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa91906136dc565b610a47565b6040516102bc9190613734565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e69190613777565b610a64565b005b3480156102f8575f80fd5b50610301610c2f565b60405161030e9190613810565b60405180910390f35b348015610322575f80fd5b5061032b610c54565b6040516103389190613838565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190613851565b610c5d565b6040516103749190613734565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e919061387c565b610caf565b005b3480156103b0575f80fd5b506103b9610e1b565b6040516103c69190613734565b60405180910390f35b3480156103da575f80fd5b506103f560048036038101906103f091906138a7565b610e2d565b6040516104029190613734565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c919061387c565b610f47565b005b34801561043e575f80fd5b506104476110b2565b6040516104549190613838565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906138f7565b6111aa565b005b348015610490575f80fd5b506104996112f5565b6040516104a69190613734565b60405180910390f35b3480156104ba575f80fd5b506104c3611307565b6040516104d0919061393d565b60405180910390f35b3480156104e4575f80fd5b506104ff60048036038101906104fa91906136dc565b61130f565b60405161050c9190613734565b60405180910390f35b348015610520575f80fd5b506105296113b6565b6040516105369190613734565b60405180910390f35b34801561054a575f80fd5b506105536113c8565b6040516105609190613965565b60405180910390f35b348015610574575f80fd5b5061057d6113ed565b60405161058a9190613734565b60405180910390f35b34801561059e575f80fd5b506105b960048036038101906105b49190613851565b611400565b6040516105c69190613734565b60405180910390f35b3480156105da575f80fd5b506105e3611452565b6040516105f09190613838565b60405180910390f35b348015610604575f80fd5b5061061f600480360381019061061a91906138f7565b611458565b005b34801561062c575f80fd5b5061064760048036038101906106429190613851565b6115a3565b6040516106549190613838565b60405180910390f35b348015610668575f80fd5b506106716115e8565b005b34801561067e575f80fd5b5061068761173b565b6040516106949190613965565b60405180910390f35b3480156106a8575f80fd5b506106b1611760565b005b3480156106be575f80fd5b506106c761186a565b6040516106d49190613965565b60405180910390f35b3480156106e8575f80fd5b506106f1611892565b6040516106fe9190613838565b60405180910390f35b348015610712575f80fd5b5061072d60048036038101906107289190613777565b611912565b005b34801561073a575f80fd5b50610743611add565b604051610750919061362b565b60405180910390f35b348015610764575f80fd5b5061077f600480360381019061077a91906138f7565b611b6d565b005b34801561078c575f80fd5b506107a760048036038101906107a291906136dc565b611c64565b6040516107b49190613734565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de9190613851565b611d4a565b6040516107f09190613734565b60405180910390f35b348015610804575f80fd5b5061081f600480360381019061081a91906136dc565b611d9c565b60405161082c9190613734565b60405180910390f35b348015610840575f80fd5b50610849611db9565b6040516108569190613838565b60405180910390f35b34801561086a575f80fd5b506108856004803603810190610880919061387c565b611dbf565b005b348015610892575f80fd5b506108ad60048036038101906108a89190613851565b611eef565b005b3480156108ba575f80fd5b506108d560048036038101906108d09190613777565b612036565b005b3480156108e2575f80fd5b506108eb612201565b6040516108f89190613838565b60405180910390f35b34801561090c575f80fd5b506109276004803603810190610922919061397e565b612207565b6040516109349190613838565b60405180910390f35b348015610948575f80fd5b50610951612289565b60405161095e9190613838565b60405180910390f35b348015610972575f80fd5b5061098d60048036038101906109889190613851565b61228f565b005b34801561099a575f80fd5b506109b560048036038101906109b09190613851565b612451565b005b6060600380546109c6906139e9565b80601f01602080910402602001604051908101604052809291908181526020018280546109f2906139e9565b8015610a3d5780601f10610a1457610100808354040283529160200191610a3d565b820191905f5260205f20905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b5f610a5a610a536126c9565b84846126d0565b6001905092915050565b610a6c6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190613a63565b60405180910390fd5b80151560135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613af1565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1082604051610c239190613734565b60405180910390a25050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610cb76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c90613a63565b60405180910390fd5b6103e8610d50611307565b600a610d5c9190613c6b565b610d64610c54565b610d6e9190613ce2565b610d789190613ce2565b811015610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613d82565b60405180910390fd5b610dc2611307565b600a610dce9190613c6b565b81610dd99190613da0565b6015819055507f82752703028499b617ec0b1cf458c9689993344fd9c6ed80eeb873658cf5ad7f601554604051610e109190613838565b60405180910390a150565b60115f9054906101000a900460ff1681565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e756126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613e51565b60405180910390fd5b610f2f85610f276126c9565b8584036126d0565b5b610f3b858585612893565b60019150509392505050565b610f4f6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613a63565b60405180910390fd5b6064610fe7611307565b600a610ff39190613c6b565b610ffb610c54565b6110059190613ce2565b61100f9190613ce2565b811015611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890613edf565b60405180910390fd5b611059611307565b600a6110659190613c6b565b816110709190613da0565b6012819055507f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59426012546040516110a79190613838565b60405180910390a150565b5f8061012c600954426110c59190613efd565b10156110d457601490506111a3565b61012c600954426110e59190613efd565b101580156111015750610258600954426110ff9190613efd565b105b1561110f57600a90506111a2565b610258600954426111209190613efd565b1015801561113c57506103846009544261113a9190613efd565b105b1561114a57600590506111a1565b6103846009544261115b9190613efd565b1015801561117757506105dc600954426111759190613efd565b105b1561118557600190506111a0565b6105dc600954426111969190613efd565b1061119f575f90505b5b5b5b5b8091505090565b6111b26126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790613a63565b60405180910390fd5b60115f9054906101000a900460ff16151581151503611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90613fa0565b60405180910390fd5b8060115f6101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f160115f9054906101000a900460ff166040516112ea9190613734565b60405180910390a150565b60145f9054906101000a900460ff1681565b5f6012905090565b5f6113ac61131b6126c9565b848460015f6113286126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a79190613fbe565b6126d0565b6001905092915050565b600f5f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60149054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095481565b6114606126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613a63565b60405180910390fd5b60145f9054906101000a900460ff16151581151503611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990614061565b60405180910390fd5b8060145f6101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf60145f9054906101000a900460ff166040516115989190613734565b60405180910390a150565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115f06126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117686126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed90613a63565b60405180910390fd5b600d60149054906101000a900460ff1615611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906140c9565b60405180910390fd5b6001600d60146101000a81548160ff02191690831515021790555042600981905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80610384600954426118a59190613efd565b10156118b4576005905061190b565b610384600954426118c59190613efd565b101580156118e157506105dc600954426118df9190613efd565b105b156118ef576001905061190a565b6105dc600954426119009190613efd565b10611909575f90505b5b5b8091505090565b61191a6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613a63565b60405180910390fd5b80151560105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e90613af1565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c82604051611ad19190613734565b60405180910390a25050565b606060048054611aec906139e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611b18906139e9565b8015611b635780601f10611b3a57610100808354040283529160200191611b63565b820191905f5260205f20905b815481529060010190602001808311611b4657829003601f168201915b5050505050905090565b611b756126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90613a63565b60405180910390fd5b80600f5f6101000a81548160ff0219169083151502179055507f94da5f18dc9529c37f2af4ffa1921f49d8bb14b6e5fe22b0d6ddc94f102f9232600f5f9054906101000a900460ff16604051611c599190613734565b60405180910390a150565b5f8060015f611c716126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2290614157565b60405180910390fd5b611d3f611d366126c9565b858584036126d0565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f611daf611da86126c9565b8484612893565b6001905092915050565b60125481565b611dc76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613a63565b60405180910390fd5b620f4240611e61610c54565b611e6b9190613ce2565b8111611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906141e5565b60405180910390fd5b80600e819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600e54604051611ee49190613838565b60405180910390a150565b611ef76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90614273565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61203e6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c390613a63565b60405180910390fd5b80151560085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290614301565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516121f59190613734565b60405180910390a25050565b60155481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b6122976126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a9061438f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124596126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125c8575f3373ffffffffffffffffffffffffffffffffffffffff164760405161253f906143da565b5f6040518083038185875af1925050503d805f8114612579576040519150601f19603f3d011682016040523d82523d5f602084013e61257e565b606091505b50509050806125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990614438565b60405180910390fd5b506126c6565b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126069190613965565b602060405180830381865afa158015612621573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612645919061446a565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612682929190614495565b6020604051808303815f875af115801561269e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c291906144d0565b5050505b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361273e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127359061456b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a3906145f9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128869190613838565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f890614687565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361296f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296690614715565b60405180910390fd5b600d60149054906101000a900460ff16806129d0575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612a21575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a579061477d565b60405180910390fd5b5f8103612a7757612a7283835f61306a565b613065565b60145f9054906101000a900460ff1615612c2e5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612b32575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015612b8a57505f151560135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b8015612be257505f151560135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b15612c2d57601554811115612c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c239061480b565b60405180910390fd5b5b5b5f612c38306115a3565b90505f600e548210159050808015612c5d5750600f60019054906101000a900460ff16155b8015612cb5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612d13576001600f60016101000a81548160ff021916908315150217905550600f5f9054906101000a900460ff1615612cef57600e5491505b612cf8826132df565b5f600f60016101000a81548160ff0219169083151502179055505b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612daf575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612dc65750600f60019054906101000a900460ff165b15612dd3575f9050612e9f565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612e3657612e2f611892565b9050612e9e565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612e9957612e926110b2565b9050612e9d565b5f90505b5b5b5f811115612edd575f60648286612eb69190613da0565b612ec09190613ce2565b90508085612ece9190613efd565b9450612edb87308361306a565b505b60115f9054906101000a900460ff1615613056575f151560105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515148015612f9957505f151560105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b8015612ff2575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15613055575f613001866115a3565b905060125485826130129190613fbe565b1115613053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304a90614899565b60405180910390fd5b505b5b61306186868661306a565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130cf90614687565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313d90614715565b60405180910390fd5b613151838383613597565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156131d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cb90614927565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132629190613fbe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132c69190613838565b60405180910390a36132d984848461359c565b50505050565b5f4790505f600267ffffffffffffffff8111156132ff576132fe614945565b5b60405190808252806020026020018201604052801561332d5781602001602082028036833780820191505090505b50905030815f8151811061334457613343614972565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061340c91906149b3565b816001815181106134205761341f614972565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016134bc959493929190614ace565b5f604051808303815f87803b1580156134d3575f80fd5b505af11580156134e5573d5f803e3d5ffd5b505050505f82476134f69190613efd565b90505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090508015613590577f1309193d68e1a43bd32da5f04e07935cc194c20b2bd1813be5c6898b99dac4be8583604051613587929190614b26565b60405180910390a15b5050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156135d85780820151818401526020810190506135bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6135fd826135a1565b61360781856135ab565b93506136178185602086016135bb565b613620816135e3565b840191505092915050565b5f6020820190508181035f83015261364381846135f3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6136788261364f565b9050919050565b6136888161366e565b8114613692575f80fd5b50565b5f813590506136a38161367f565b92915050565b5f819050919050565b6136bb816136a9565b81146136c5575f80fd5b50565b5f813590506136d6816136b2565b92915050565b5f80604083850312156136f2576136f161364b565b5b5f6136ff85828601613695565b9250506020613710858286016136c8565b9150509250929050565b5f8115159050919050565b61372e8161371a565b82525050565b5f6020820190506137475f830184613725565b92915050565b6137568161371a565b8114613760575f80fd5b50565b5f813590506137718161374d565b92915050565b5f806040838503121561378d5761378c61364b565b5b5f61379a85828601613695565b92505060206137ab85828601613763565b9150509250929050565b5f819050919050565b5f6137d86137d36137ce8461364f565b6137b5565b61364f565b9050919050565b5f6137e9826137be565b9050919050565b5f6137fa826137df565b9050919050565b61380a816137f0565b82525050565b5f6020820190506138235f830184613801565b92915050565b613832816136a9565b82525050565b5f60208201905061384b5f830184613829565b92915050565b5f602082840312156138665761386561364b565b5b5f61387384828501613695565b91505092915050565b5f602082840312156138915761389061364b565b5b5f61389e848285016136c8565b91505092915050565b5f805f606084860312156138be576138bd61364b565b5b5f6138cb86828701613695565b93505060206138dc86828701613695565b92505060406138ed868287016136c8565b9150509250925092565b5f6020828403121561390c5761390b61364b565b5b5f61391984828501613763565b91505092915050565b5f60ff82169050919050565b61393781613922565b82525050565b5f6020820190506139505f83018461392e565b92915050565b61395f8161366e565b82525050565b5f6020820190506139785f830184613956565b92915050565b5f80604083850312156139945761399361364b565b5b5f6139a185828601613695565b92505060206139b285828601613695565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a0057607f821691505b602082108103613a1357613a126139bc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a4d6020836135ab565b9150613a5882613a19565b602082019050919050565b5f6020820190508181035f830152613a7a81613a41565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f207468617420735f8201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b5f613adb6024836135ab565b9150613ae682613a81565b604082019050919050565b5f6020820190508181035f830152613b0881613acf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613b9157808604811115613b6d57613b6c613b0f565b5b6001851615613b7c5780820291505b8081029050613b8a85613b3c565b9450613b51565b94509492505050565b5f82613ba95760019050613c64565b81613bb6575f9050613c64565b8160018114613bcc5760028114613bd657613c05565b6001915050613c64565b60ff841115613be857613be7613b0f565b5b8360020a915084821115613bff57613bfe613b0f565b5b50613c64565b5060208310610133831016604e8410600b8410161715613c3a5782820a905083811115613c3557613c34613b0f565b5b613c64565b613c478484846001613b48565b92509050818404811115613c5e57613c5d613b0f565b5b81810290505b9392505050565b5f613c75826136a9565b9150613c8083613922565b9250613cad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cec826136a9565b9150613cf7836136a9565b925082613d0757613d06613cb5565b5b828204905092915050565b7f4d6178205472616e73616374696f6e206c696d69732063616e6e6f74206265205f8201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b5f613d6c603f836135ab565b9150613d7782613d12565b604082019050919050565b5f6020820190508181035f830152613d9981613d60565b9050919050565b5f613daa826136a9565b9150613db5836136a9565b9250828202613dc3816136a9565b91508282048414831517613dda57613dd9613b0f565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e3b6028836135ab565b9150613e4682613de1565b604082019050919050565b5f6020820190508181035f830152613e6881613e2f565b9050919050565b7f4d61782077616c6c65742070657263656e746167652063616e6e6f74206265205f8201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b5f613ec9602d836135ab565b9150613ed482613e6f565b604082019050919050565b5f6020820190508181035f830152613ef681613ebd565b9050919050565b5f613f07826136a9565b9150613f12836136a9565b9250828203905081811115613f2a57613f29613b0f565b5b92915050565b7f4d61782077616c6c6574206c696d697420697320616c726561647920736574205f8201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b5f613f8a602d836135ab565b9150613f9582613f30565b604082019050919050565b5f6020820190508181035f830152613fb781613f7e565b9050919050565b5f613fc8826136a9565b9150613fd3836136a9565b9250828201905080821115613feb57613fea613b0f565b5b92915050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c72656164795f8201527f2073657420746f20746861742073746174650000000000000000000000000000602082015250565b5f61404b6032836135ab565b915061405682613ff1565b604082019050919050565b5f6020820190508181035f8301526140788161403f565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f6140b3601a836135ab565b91506140be8261407f565b602082019050919050565b5f6020820190508181035f8301526140e0816140a7565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6141416025836135ab565b915061414c826140e7565b604082019050919050565b5f6020820190508181035f83015261416e81614135565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d7573742062652067726561745f8201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b5f6141cf603f836135ab565b91506141da82614175565b604082019050919050565b5f6020820190508181035f8301526141fc816141c3565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f61425d602b836135ab565b915061426882614203565b604082019050919050565b5f6020820190508181035f83015261428a81614251565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f66205f8201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b5f6142eb602a836135ab565b91506142f682614291565b604082019050919050565b5f6020820190508181035f830152614318816142df565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6143796026836135ab565b91506143848261431f565b604082019050919050565b5f6020820190508181035f8301526143a68161436d565b9050919050565b5f81905092915050565b50565b5f6143c55f836143ad565b91506143d0826143b7565b5f82019050919050565b5f6143e4826143ba565b9150819050919050565b7f436c61696d206661696c656400000000000000000000000000000000000000005f82015250565b5f614422600c836135ab565b915061442d826143ee565b602082019050919050565b5f6020820190508181035f83015261444f81614416565b9050919050565b5f81519050614464816136b2565b92915050565b5f6020828403121561447f5761447e61364b565b5b5f61448c84828501614456565b91505092915050565b5f6040820190506144a85f830185613956565b6144b56020830184613829565b9392505050565b5f815190506144ca8161374d565b92915050565b5f602082840312156144e5576144e461364b565b5b5f6144f2848285016144bc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6145556024836135ab565b9150614560826144fb565b604082019050919050565b5f6020820190508181035f83015261458281614549565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145e36022836135ab565b91506145ee82614589565b604082019050919050565b5f6020820190508181035f830152614610816145d7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6146716025836135ab565b915061467c82614617565b604082019050919050565b5f6020820190508181035f83015261469e81614665565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6146ff6023836135ab565b915061470a826146a5565b604082019050919050565b5f6020820190508181035f83015261472c816146f3565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965740000000000005f82015250565b5f614767601a836135ab565b915061477282614733565b602082019050919050565b5f6020820190508181035f8301526147948161475b565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e742065786365655f8201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000602082015250565b5f6147f5603b836135ab565b91506148008261479b565b604082019050919050565b5f6020820190508181035f830152614822816147e9565b9050919050565b7f4d617857616c6c65743a20526563697069656e742065786365656473207468655f8201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b5f6148836030836135ab565b915061488e82614829565b604082019050919050565b5f6020820190508181035f8301526148b081614877565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149116026836135ab565b915061491c826148b7565b604082019050919050565b5f6020820190508181035f83015261493e81614905565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506149ad8161367f565b92915050565b5f602082840312156149c8576149c761364b565b5b5f6149d58482850161499f565b91505092915050565b5f819050919050565b5f614a016149fc6149f7846149de565b6137b5565b6136a9565b9050919050565b614a11816149e7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a498161366e565b82525050565b5f614a5a8383614a40565b60208301905092915050565b5f602082019050919050565b5f614a7c82614a17565b614a868185614a21565b9350614a9183614a31565b805f5b83811015614ac1578151614aa88882614a4f565b9750614ab383614a66565b925050600181019050614a94565b5085935050505092915050565b5f60a082019050614ae15f830188613829565b614aee6020830187614a08565b8181036040830152614b008186614a72565b9050614b0f6060830185613956565b614b1c6080830184613829565b9695505050505050565b5f604082019050614b395f830185613829565b614b466020830184613829565b939250505056fea264697066735822122037805549f5c91ed194dffaef6ecdbdb84fd5261abe30cd590e67a7fae95e674564736f6c63430008140033
Deployed Bytecode
0x608060405260043610610254575f3560e01c806370a0823111610138578063a8a69b9d116100b5578063c024666811610079578063c0246668146108af578063c8c8ebe4146108d7578063dd62ed3e14610901578063e2f456051461093d578063f2fde38b14610967578063f9d0831a1461098f5761025b565b8063a8a69b9d146107bd578063a9059cbb146107f9578063aa4bde2814610835578063afa4f3b21461085f578063bb85c6d1146108875761025b565b80638f818b90116100fc5780638f818b90146106dd578063929f13601461070757806395d89b411461072f578063988be11814610759578063a457c2d7146107815761025b565b806370a0823114610621578063715018a61461065d57806375f0a874146106735780638a8c523c1461069d5780638da5cb5b146106b35761025b565b8063289af0d8116101d1578063488eb37f11610195578063488eb37f1461051557806349bd5a5e1461053f5780634ada218b146105695780634fbee193146105935780635031595f146105cf57806356a6cabf146105f95761025b565b8063289af0d8146104335780632a6c7dba1461045d5780632ba86bf214610485578063313ce567146104af57806339509351146104d95761025b565b806318d9ceae1161021857806318d9ceae146103415780631e293c101461037d57806321a9d82a146103a557806323b872dd146103cf57806327a14fc21461040b5761025b565b806306fdde031461025f578063095ea7b314610289578063150c880c146102c55780631694505e146102ed57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b506102736109b7565b604051610280919061362b565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa91906136dc565b610a47565b6040516102bc9190613734565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e69190613777565b610a64565b005b3480156102f8575f80fd5b50610301610c2f565b60405161030e9190613810565b60405180910390f35b348015610322575f80fd5b5061032b610c54565b6040516103389190613838565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190613851565b610c5d565b6040516103749190613734565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e919061387c565b610caf565b005b3480156103b0575f80fd5b506103b9610e1b565b6040516103c69190613734565b60405180910390f35b3480156103da575f80fd5b506103f560048036038101906103f091906138a7565b610e2d565b6040516104029190613734565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c919061387c565b610f47565b005b34801561043e575f80fd5b506104476110b2565b6040516104549190613838565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906138f7565b6111aa565b005b348015610490575f80fd5b506104996112f5565b6040516104a69190613734565b60405180910390f35b3480156104ba575f80fd5b506104c3611307565b6040516104d0919061393d565b60405180910390f35b3480156104e4575f80fd5b506104ff60048036038101906104fa91906136dc565b61130f565b60405161050c9190613734565b60405180910390f35b348015610520575f80fd5b506105296113b6565b6040516105369190613734565b60405180910390f35b34801561054a575f80fd5b506105536113c8565b6040516105609190613965565b60405180910390f35b348015610574575f80fd5b5061057d6113ed565b60405161058a9190613734565b60405180910390f35b34801561059e575f80fd5b506105b960048036038101906105b49190613851565b611400565b6040516105c69190613734565b60405180910390f35b3480156105da575f80fd5b506105e3611452565b6040516105f09190613838565b60405180910390f35b348015610604575f80fd5b5061061f600480360381019061061a91906138f7565b611458565b005b34801561062c575f80fd5b5061064760048036038101906106429190613851565b6115a3565b6040516106549190613838565b60405180910390f35b348015610668575f80fd5b506106716115e8565b005b34801561067e575f80fd5b5061068761173b565b6040516106949190613965565b60405180910390f35b3480156106a8575f80fd5b506106b1611760565b005b3480156106be575f80fd5b506106c761186a565b6040516106d49190613965565b60405180910390f35b3480156106e8575f80fd5b506106f1611892565b6040516106fe9190613838565b60405180910390f35b348015610712575f80fd5b5061072d60048036038101906107289190613777565b611912565b005b34801561073a575f80fd5b50610743611add565b604051610750919061362b565b60405180910390f35b348015610764575f80fd5b5061077f600480360381019061077a91906138f7565b611b6d565b005b34801561078c575f80fd5b506107a760048036038101906107a291906136dc565b611c64565b6040516107b49190613734565b60405180910390f35b3480156107c8575f80fd5b506107e360048036038101906107de9190613851565b611d4a565b6040516107f09190613734565b60405180910390f35b348015610804575f80fd5b5061081f600480360381019061081a91906136dc565b611d9c565b60405161082c9190613734565b60405180910390f35b348015610840575f80fd5b50610849611db9565b6040516108569190613838565b60405180910390f35b34801561086a575f80fd5b506108856004803603810190610880919061387c565b611dbf565b005b348015610892575f80fd5b506108ad60048036038101906108a89190613851565b611eef565b005b3480156108ba575f80fd5b506108d560048036038101906108d09190613777565b612036565b005b3480156108e2575f80fd5b506108eb612201565b6040516108f89190613838565b60405180910390f35b34801561090c575f80fd5b506109276004803603810190610922919061397e565b612207565b6040516109349190613838565b60405180910390f35b348015610948575f80fd5b50610951612289565b60405161095e9190613838565b60405180910390f35b348015610972575f80fd5b5061098d60048036038101906109889190613851565b61228f565b005b34801561099a575f80fd5b506109b560048036038101906109b09190613851565b612451565b005b6060600380546109c6906139e9565b80601f01602080910402602001604051908101604052809291908181526020018280546109f2906139e9565b8015610a3d5780601f10610a1457610100808354040283529160200191610a3d565b820191905f5260205f20905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b5f610a5a610a536126c9565b84846126d0565b6001905092915050565b610a6c6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190613a63565b60405180910390fd5b80151560135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613af1565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f8727c4afe988887760e8db0bbad9f9fcceee6428545956832f67c8fdbd589c1082604051610c239190613734565b60405180910390a25050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610cb76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c90613a63565b60405180910390fd5b6103e8610d50611307565b600a610d5c9190613c6b565b610d64610c54565b610d6e9190613ce2565b610d789190613ce2565b811015610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190613d82565b60405180910390fd5b610dc2611307565b600a610dce9190613c6b565b81610dd99190613da0565b6015819055507f82752703028499b617ec0b1cf458c9689993344fd9c6ed80eeb873658cf5ad7f601554604051610e109190613838565b60405180910390a150565b60115f9054906101000a900460ff1681565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e756126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613e51565b60405180910390fd5b610f2f85610f276126c9565b8584036126d0565b5b610f3b858585612893565b60019150509392505050565b610f4f6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613a63565b60405180910390fd5b6064610fe7611307565b600a610ff39190613c6b565b610ffb610c54565b6110059190613ce2565b61100f9190613ce2565b811015611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890613edf565b60405180910390fd5b611059611307565b600a6110659190613c6b565b816110709190613da0565b6012819055507f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59426012546040516110a79190613838565b60405180910390a150565b5f8061012c600954426110c59190613efd565b10156110d457601490506111a3565b61012c600954426110e59190613efd565b101580156111015750610258600954426110ff9190613efd565b105b1561110f57600a90506111a2565b610258600954426111209190613efd565b1015801561113c57506103846009544261113a9190613efd565b105b1561114a57600590506111a1565b6103846009544261115b9190613efd565b1015801561117757506105dc600954426111759190613efd565b105b1561118557600190506111a0565b6105dc600954426111969190613efd565b1061119f575f90505b5b5b5b5b8091505090565b6111b26126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790613a63565b60405180910390fd5b60115f9054906101000a900460ff16151581151503611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90613fa0565b60405180910390fd5b8060115f6101000a81548160ff0219169083151502179055507f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f160115f9054906101000a900460ff166040516112ea9190613734565b60405180910390a150565b60145f9054906101000a900460ff1681565b5f6012905090565b5f6113ac61131b6126c9565b848460015f6113286126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a79190613fbe565b6126d0565b6001905092915050565b600f5f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60149054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095481565b6114606126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613a63565b60405180910390fd5b60145f9054906101000a900460ff16151581151503611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990614061565b60405180910390fd5b8060145f6101000a81548160ff0219169083151502179055507fe81be35e61864c26afd7a4655e99f321378d0aaae1e5af8ee67b658a7460f3cf60145f9054906101000a900460ff166040516115989190613734565b60405180910390a150565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115f06126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117686126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed90613a63565b60405180910390fd5b600d60149054906101000a900460ff1615611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906140c9565b60405180910390fd5b6001600d60146101000a81548160ff02191690831515021790555042600981905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80610384600954426118a59190613efd565b10156118b4576005905061190b565b610384600954426118c59190613efd565b101580156118e157506105dc600954426118df9190613efd565b105b156118ef576001905061190a565b6105dc600954426119009190613efd565b10611909575f90505b5b5b8091505090565b61191a6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613a63565b60405180910390fd5b80151560105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e90613af1565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c82604051611ad19190613734565b60405180910390a25050565b606060048054611aec906139e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611b18906139e9565b8015611b635780601f10611b3a57610100808354040283529160200191611b63565b820191905f5260205f20905b815481529060010190602001808311611b4657829003601f168201915b5050505050905090565b611b756126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90613a63565b60405180910390fd5b80600f5f6101000a81548160ff0219169083151502179055507f94da5f18dc9529c37f2af4ffa1921f49d8bb14b6e5fe22b0d6ddc94f102f9232600f5f9054906101000a900460ff16604051611c599190613734565b60405180910390a150565b5f8060015f611c716126c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2290614157565b60405180910390fd5b611d3f611d366126c9565b858584036126d0565b600191505092915050565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f611daf611da86126c9565b8484612893565b6001905092915050565b60125481565b611dc76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613a63565b60405180910390fd5b620f4240611e61610c54565b611e6b9190613ce2565b8111611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906141e5565b60405180910390fd5b80600e819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600e54604051611ee49190613838565b60405180910390a150565b611ef76126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90614273565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61203e6126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c390613a63565b60405180910390fd5b80151560085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290614301565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516121f59190613734565b60405180910390a25050565b60155481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600e5481565b6122976126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a9061438f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124596126c9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de90613a63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125c8575f3373ffffffffffffffffffffffffffffffffffffffff164760405161253f906143da565b5f6040518083038185875af1925050503d805f8114612579576040519150601f19603f3d011682016040523d82523d5f602084013e61257e565b606091505b50509050806125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990614438565b60405180910390fd5b506126c6565b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126069190613965565b602060405180830381865afa158015612621573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612645919061446a565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612682929190614495565b6020604051808303815f875af115801561269e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c291906144d0565b5050505b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361273e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127359061456b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a3906145f9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128869190613838565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f890614687565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361296f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296690614715565b60405180910390fd5b600d60149054906101000a900460ff16806129d0575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612a21575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a579061477d565b60405180910390fd5b5f8103612a7757612a7283835f61306a565b613065565b60145f9054906101000a900460ff1615612c2e5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612b32575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015612b8a57505f151560135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b8015612be257505f151560135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b15612c2d57601554811115612c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c239061480b565b60405180910390fd5b5b5b5f612c38306115a3565b90505f600e548210159050808015612c5d5750600f60019054906101000a900460ff16155b8015612cb5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612d13576001600f60016101000a81548160ff021916908315150217905550600f5f9054906101000a900460ff1615612cef57600e5491505b612cf8826132df565b5f600f60016101000a81548160ff0219169083151502179055505b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612daf575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612dc65750600f60019054906101000a900460ff165b15612dd3575f9050612e9f565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612e3657612e2f611892565b9050612e9e565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612e9957612e926110b2565b9050612e9d565b5f90505b5b5b5f811115612edd575f60648286612eb69190613da0565b612ec09190613ce2565b90508085612ece9190613efd565b9450612edb87308361306a565b505b60115f9054906101000a900460ff1615613056575f151560105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515148015612f9957505f151560105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b8015612ff2575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15613055575f613001866115a3565b905060125485826130129190613fbe565b1115613053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304a90614899565b60405180910390fd5b505b5b61306186868661306a565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130cf90614687565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313d90614715565b60405180910390fd5b613151838383613597565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156131d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131cb90614927565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132629190613fbe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132c69190613838565b60405180910390a36132d984848461359c565b50505050565b5f4790505f600267ffffffffffffffff8111156132ff576132fe614945565b5b60405190808252806020026020018201604052801561332d5781602001602082028036833780820191505090505b50905030815f8151811061334457613343614972565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061340c91906149b3565b816001815181106134205761341f614972565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016134bc959493929190614ace565b5f604051808303815f87803b1580156134d3575f80fd5b505af11580156134e5573d5f803e3d5ffd5b505050505f82476134f69190613efd565b90505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090508015613590577f1309193d68e1a43bd32da5f04e07935cc194c20b2bd1813be5c6898b99dac4be8583604051613587929190614b26565b60405180910390a15b5050505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156135d85780820151818401526020810190506135bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6135fd826135a1565b61360781856135ab565b93506136178185602086016135bb565b613620816135e3565b840191505092915050565b5f6020820190508181035f83015261364381846135f3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6136788261364f565b9050919050565b6136888161366e565b8114613692575f80fd5b50565b5f813590506136a38161367f565b92915050565b5f819050919050565b6136bb816136a9565b81146136c5575f80fd5b50565b5f813590506136d6816136b2565b92915050565b5f80604083850312156136f2576136f161364b565b5b5f6136ff85828601613695565b9250506020613710858286016136c8565b9150509250929050565b5f8115159050919050565b61372e8161371a565b82525050565b5f6020820190506137475f830184613725565b92915050565b6137568161371a565b8114613760575f80fd5b50565b5f813590506137718161374d565b92915050565b5f806040838503121561378d5761378c61364b565b5b5f61379a85828601613695565b92505060206137ab85828601613763565b9150509250929050565b5f819050919050565b5f6137d86137d36137ce8461364f565b6137b5565b61364f565b9050919050565b5f6137e9826137be565b9050919050565b5f6137fa826137df565b9050919050565b61380a816137f0565b82525050565b5f6020820190506138235f830184613801565b92915050565b613832816136a9565b82525050565b5f60208201905061384b5f830184613829565b92915050565b5f602082840312156138665761386561364b565b5b5f61387384828501613695565b91505092915050565b5f602082840312156138915761389061364b565b5b5f61389e848285016136c8565b91505092915050565b5f805f606084860312156138be576138bd61364b565b5b5f6138cb86828701613695565b93505060206138dc86828701613695565b92505060406138ed868287016136c8565b9150509250925092565b5f6020828403121561390c5761390b61364b565b5b5f61391984828501613763565b91505092915050565b5f60ff82169050919050565b61393781613922565b82525050565b5f6020820190506139505f83018461392e565b92915050565b61395f8161366e565b82525050565b5f6020820190506139785f830184613956565b92915050565b5f80604083850312156139945761399361364b565b5b5f6139a185828601613695565b92505060206139b285828601613695565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a0057607f821691505b602082108103613a1357613a126139bc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a4d6020836135ab565b9150613a5882613a19565b602082019050919050565b5f6020820190508181035f830152613a7a81613a41565b9050919050565b7f4163636f756e7420697320616c72656164792073657420746f207468617420735f8201527f7461746500000000000000000000000000000000000000000000000000000000602082015250565b5f613adb6024836135ab565b9150613ae682613a81565b604082019050919050565b5f6020820190508181035f830152613b0881613acf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613b9157808604811115613b6d57613b6c613b0f565b5b6001851615613b7c5780820291505b8081029050613b8a85613b3c565b9450613b51565b94509492505050565b5f82613ba95760019050613c64565b81613bb6575f9050613c64565b8160018114613bcc5760028114613bd657613c05565b6001915050613c64565b60ff841115613be857613be7613b0f565b5b8360020a915084821115613bff57613bfe613b0f565b5b50613c64565b5060208310610133831016604e8410600b8410161715613c3a5782820a905083811115613c3557613c34613b0f565b5b613c64565b613c478484846001613b48565b92509050818404811115613c5e57613c5d613b0f565b5b81810290505b9392505050565b5f613c75826136a9565b9150613c8083613922565b9250613cad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cec826136a9565b9150613cf7836136a9565b925082613d0757613d06613cb5565b5b828204905092915050565b7f4d6178205472616e73616374696f6e206c696d69732063616e6e6f74206265205f8201527f6c6f776572207468616e20302e3125206f6620746f74616c20737570706c7900602082015250565b5f613d6c603f836135ab565b9150613d7782613d12565b604082019050919050565b5f6020820190508181035f830152613d9981613d60565b9050919050565b5f613daa826136a9565b9150613db5836136a9565b9250828202613dc3816136a9565b91508282048414831517613dda57613dd9613b0f565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e3b6028836135ab565b9150613e4682613de1565b604082019050919050565b5f6020820190508181035f830152613e6881613e2f565b9050919050565b7f4d61782077616c6c65742070657263656e746167652063616e6e6f74206265205f8201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b5f613ec9602d836135ab565b9150613ed482613e6f565b604082019050919050565b5f6020820190508181035f830152613ef681613ebd565b9050919050565b5f613f07826136a9565b9150613f12836136a9565b9250828203905081811115613f2a57613f29613b0f565b5b92915050565b7f4d61782077616c6c6574206c696d697420697320616c726561647920736574205f8201527f746f207468617420737461746500000000000000000000000000000000000000602082015250565b5f613f8a602d836135ab565b9150613f9582613f30565b604082019050919050565b5f6020820190508181035f830152613fb781613f7e565b9050919050565b5f613fc8826136a9565b9150613fd3836136a9565b9250828201905080821115613feb57613fea613b0f565b5b92915050565b7f4d6178207472616e73616374696f6e206c696d697420697320616c72656164795f8201527f2073657420746f20746861742073746174650000000000000000000000000000602082015250565b5f61404b6032836135ab565b915061405682613ff1565b604082019050919050565b5f6020820190508181035f8301526140788161403f565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f6140b3601a836135ab565b91506140be8261407f565b602082019050919050565b5f6020820190508181035f8301526140e0816140a7565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6141416025836135ab565b915061414c826140e7565b604082019050919050565b5f6020820190508181035f83015261416e81614135565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d7573742062652067726561745f8201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b5f6141cf603f836135ab565b91506141da82614175565b604082019050919050565b5f6020820190508181035f8301526141fc816141c3565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f61425d602b836135ab565b915061426882614203565b604082019050919050565b5f6020820190508181035f83015261428a81614251565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f66205f8201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b5f6142eb602a836135ab565b91506142f682614291565b604082019050919050565b5f6020820190508181035f830152614318816142df565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6143796026836135ab565b91506143848261431f565b604082019050919050565b5f6020820190508181035f8301526143a68161436d565b9050919050565b5f81905092915050565b50565b5f6143c55f836143ad565b91506143d0826143b7565b5f82019050919050565b5f6143e4826143ba565b9150819050919050565b7f436c61696d206661696c656400000000000000000000000000000000000000005f82015250565b5f614422600c836135ab565b915061442d826143ee565b602082019050919050565b5f6020820190508181035f83015261444f81614416565b9050919050565b5f81519050614464816136b2565b92915050565b5f6020828403121561447f5761447e61364b565b5b5f61448c84828501614456565b91505092915050565b5f6040820190506144a85f830185613956565b6144b56020830184613829565b9392505050565b5f815190506144ca8161374d565b92915050565b5f602082840312156144e5576144e461364b565b5b5f6144f2848285016144bc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6145556024836135ab565b9150614560826144fb565b604082019050919050565b5f6020820190508181035f83015261458281614549565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145e36022836135ab565b91506145ee82614589565b604082019050919050565b5f6020820190508181035f830152614610816145d7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6146716025836135ab565b915061467c82614617565b604082019050919050565b5f6020820190508181035f83015261469e81614665565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6146ff6023836135ab565b915061470a826146a5565b604082019050919050565b5f6020820190508181035f83015261472c816146f3565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965740000000000005f82015250565b5f614767601a836135ab565b915061477282614733565b602082019050919050565b5f6020820190508181035f8301526147948161475b565b9050919050565b7f416e74695768616c653a205472616e7366657220616d6f756e742065786365655f8201527f647320746865206d61785472616e73616374696f6e416d6f756e740000000000602082015250565b5f6147f5603b836135ab565b91506148008261479b565b604082019050919050565b5f6020820190508181035f830152614822816147e9565b9050919050565b7f4d617857616c6c65743a20526563697069656e742065786365656473207468655f8201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b5f6148836030836135ab565b915061488e82614829565b604082019050919050565b5f6020820190508181035f8301526148b081614877565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149116026836135ab565b915061491c826148b7565b604082019050919050565b5f6020820190508181035f83015261493e81614905565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506149ad8161367f565b92915050565b5f602082840312156149c8576149c761364b565b5b5f6149d58482850161499f565b91505092915050565b5f819050919050565b5f614a016149fc6149f7846149de565b6137b5565b6136a9565b9050919050565b614a11816149e7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a498161366e565b82525050565b5f614a5a8383614a40565b60208301905092915050565b5f602082019050919050565b5f614a7c82614a17565b614a868185614a21565b9350614a9183614a31565b805f5b83811015614ac1578151614aa88882614a4f565b9750614ab383614a66565b925050600181019050614a94565b5085935050505092915050565b5f60a082019050614ae15f830188613829565b614aee6020830187614a08565b8181036040830152614b008186614a72565b9050614b0f6060830185613956565b614b1c6080830184613829565b9695505050505050565b5f604082019050614b395f830185613829565b614b466020830184613829565b939250505056fea264697066735822122037805549f5c91ed194dffaef6ecdbdb84fd5261abe30cd590e67a7fae95e674564736f6c63430008140033
Deployed Bytecode Sourcemap
16638:12073:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11923:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12837:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28195:364;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16684:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12244:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28567:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27753:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25881:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13014:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26295:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20662:787;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25970:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27296:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12143:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13595:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17127:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16732:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17049;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21762:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16832:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27397:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12360:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11110:148;;;;;;;;;;;;;:::i;:::-;;16938:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19529:192;;;;;;;;;;;;;:::i;:::-;;10896:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20165:489;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26679:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12031:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24929:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13818:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27044:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25931:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24621:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21896:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21464:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27352:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12678:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17087:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11266:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19731:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11923:100;11977:13;12010:5;12003:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11923:100;:::o;12837:169::-;12920:4;12937:39;12946:12;:10;:12::i;:::-;12960:7;12969:6;12937:8;:39::i;:::-;12994:4;12987:11;;12837:169;;;;:::o;28195:364::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28359:7:::1;28321:45;;:25;:34;28347:7;28321:34;;;;;;;;;;;;;;;;;;;;;;;;;:45;;::::0;28299:132:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;28479:7;28442:25;:34;28468:7;28442:34;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;28534:7;28502:49;;;28543:7;28502:49;;;;;;:::i;:::-;;;;;;;;28195:364:::0;;:::o;16684:41::-;;;;;;;;;;;;;:::o;12244:108::-;12305:7;12332:12;;12325:19;;12244:108;:::o;28567:141::-;28642:4;28666:25;:34;28692:7;28666:34;;;;;;;;;;;;;;;;;;;;;;;;;28659:41;;28567:141;;;:::o;27753:434::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27934:4:::1;27919:10;:8;:10::i;:::-;27913:2;:16;;;;:::i;:::-;27896:13;:11;:13::i;:::-;:34;;;;:::i;:::-;27895:43;;;;:::i;:::-;27869:21;:69;;27847:183;;;;;;;;;;;;:::i;:::-;;;;;;;;;28098:10;:8;:10::i;:::-;28092:2;:16;;;;:::i;:::-;28066:21;:43;;;;:::i;:::-;28042:20;:67;;;;28125:54;28158:20;;28125:54;;;;;;:::i;:::-;;;;;;;;27753:434:::0;:::o;25881:43::-;;;;;;;;;;;;;:::o;13014:573::-;13154:4;13171:24;13198:11;:19;13210:6;13198:19;;;;;;;;;;;;;;;:33;13218:12;:10;:12::i;:::-;13198:33;;;;;;;;;;;;;;;;13171:60;;13266:17;13246:16;:37;13242:265;;13328:6;13308:16;:26;;13300:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13423:57;13432:6;13440:12;:10;:12::i;:::-;13473:6;13454:16;:25;13423:8;:57::i;:::-;13242:265;13519:36;13529:6;13537:9;13548:6;13519:9;:36::i;:::-;13575:4;13568:11;;;13014:573;;;;;:::o;26295:376::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26460:3:::1;26445:10;:8;:10::i;:::-;26439:2;:16;;;;:::i;:::-;26422:13;:11;:13::i;:::-;:34;;;;:::i;:::-;26421:42;;;;:::i;:::-;26401:16;:62;;26379:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;26592:10;:8;:10::i;:::-;26586:2;:16;;;;:::i;:::-;26566;:37;;;;:::i;:::-;26548:15;:55;;;;26619:44;26647:15;;26619:44;;;;;;:::i;:::-;;;;;;;;26295:376:::0;:::o;20662:787::-;20705:7;20727:16;20798:9;20778:17;;20760:15;:35;;;;:::i;:::-;:47;20756:658;;;20836:2;20824:14;;20756:658;;;20900:9;20879:17;;20861:15;:35;;;;:::i;:::-;:48;;:100;;;;;20951:10;20931:17;;20913:15;:35;;;;:::i;:::-;:48;20861:100;20857:557;;;20990:2;20978:14;;20857:557;;;21054:10;21033:17;;21015:15;:35;;;;:::i;:::-;:49;;:101;;;;;21106:10;21086:17;;21068:15;:35;;;;:::i;:::-;:48;21015:101;21011:403;;;21145:1;21133:13;;21011:403;;;21208:10;21187:17;;21169:15;:35;;;;:::i;:::-;:49;;:101;;;;;21260:10;21240:17;;21222:15;:35;;;;:::i;:::-;:48;21169:101;21165:249;;;21299:1;21287:13;;21165:249;;;21362:10;21341:17;;21323:15;:35;;;;:::i;:::-;:49;21319:95;;21401:1;21389:13;;21319:95;21165:249;21011:403;20857:557;20756:658;21433:8;21426:15;;;20662:787;:::o;25970:317::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26078:21:::1;;;;;;;;;;;26068:31;;:6;:31;;::::0;26046:127:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;26208:6;26184:21;;:30;;;;;;;;;;;;;;;;;;26230:49;26257:21;;;;;;;;;;;26230:49;;;;;;:::i;:::-;;;;;;;;25970:317:::0;:::o;27296:49::-;;;;;;;;;;;;;:::o;12143:93::-;12201:5;12226:2;12219:9;;12143:93;:::o;13595:215::-;13683:4;13700:80;13709:12;:10;:12::i;:::-;13723:7;13769:10;13732:11;:25;13744:12;:10;:12::i;:::-;13732:25;;;;;;;;;;;;;;;:34;13758:7;13732:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13700:8;:80::i;:::-;13798:4;13791:11;;13595:215;;;;:::o;17127:28::-;;;;;;;;;;;;;:::o;16732:29::-;;;;;;;;;;;;;:::o;17049:::-;;;;;;;;;;;;;:::o;21762:125::-;21827:4;21851:19;:28;21871:7;21851:28;;;;;;;;;;;;;;;;;;;;;;;;;21844:35;;21762:125;;;:::o;16832:32::-;;;;:::o;27397:348::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27511:26:::1;;;;;;;;;;;27501:36;;:6;:36;;::::0;27479:137:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;27656:6;27627:26;;:35;;;;;;;;;;;;;;;;;;27678:59;27710:26;;;;;;;;;;;27678:59;;;;;;:::i;:::-;;;;;;;;27397:348:::0;:::o;12360:127::-;12434:7;12461:9;:18;12471:7;12461:18;;;;;;;;;;;;;;;;12454:25;;12360:127;;;:::o;11110:148::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11217:1:::1;11180:40;;11201:6;;;;;;;;;;;11180:40;;;;;;;;;;;;11248:1;11231:6;;:19;;;;;;;;;;;;;;;;;;11110:148::o:0;16938:30::-;;;;;;;;;;;;;:::o;19529:192::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19590:14:::1;;;;;;;;;;;19589:15;19581:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19663:4;19646:14;;:21;;;;;;;;;;;;;;;;;;19698:15;19678:17;:35;;;;19529:192::o:0;10896:79::-;10934:7;10961:6;;;;;;;;;;;10954:13;;10896:79;:::o;20165:489::-;20207:7;20237:15;20307:10;20287:17;;20269:15;:35;;;;:::i;:::-;:48;20265:347;;;20345:1;20334:12;;20265:347;;;20408:10;20387:17;;20369:15;:35;;;;:::i;:::-;:49;;:101;;;;;20460:10;20440:17;;20422:15;:35;;;;:::i;:::-;:48;20369:101;20365:247;;;20498:1;20487:12;;20365:247;;;20561:10;20540:17;;20522:15;:35;;;;:::i;:::-;:49;20518:94;;20599:1;20588:12;;20518:94;20365:247;20265:347;20639:7;20632:14;;;20165:489;:::o;26679:357::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26837:7:::1;26795:49;;:29;:38;26825:7;26795:38;;;;;;;;;;;;;;;;;;;;;;;;;:49;;::::0;26773:136:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;26961:7;26920:29;:38;26950:7;26920:38;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;27011:7;26984:44;;;27020:7;26984:44;;;;;;:::i;:::-;;;;;;;;26679:357:::0;;:::o;12031:104::-;12087:13;12120:7;12113:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12031:104;:::o;24929:165::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25021:14:::1;25005:13;;:30;;;;;;;;;;;;;;;;;;25051:35;25072:13;;;;;;;;;;;25051:35;;;;;;:::i;:::-;;;;;;;;24929:165:::0;:::o;13818:413::-;13911:4;13928:24;13955:11;:25;13967:12;:10;:12::i;:::-;13955:25;;;;;;;;;;;;;;;:34;13981:7;13955:34;;;;;;;;;;;;;;;;13928:61;;14028:15;14008:16;:35;;14000:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14121:67;14130:12;:10;:12::i;:::-;14144:7;14172:15;14153:16;:34;14121:8;:67::i;:::-;14219:4;14212:11;;;13818:413;;;;:::o;27044:145::-;27119:4;27143:29;:38;27173:7;27143:38;;;;;;;;;;;;;;;;;;;;;;;;;27136:45;;27044:145;;;:::o;12495:175::-;12581:4;12598:42;12608:12;:10;:12::i;:::-;12622:9;12633:6;12598:9;:42::i;:::-;12658:4;12651:11;;12495:175;;;;:::o;25931:30::-;;;;:::o;24621:300::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24736:7:::1;24720:13;:11;:13::i;:::-;:23;;;;:::i;:::-;24708:9;:35;24700:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;24843:9;24822:18;:30;;;;24868:45;24894:18;;24868:45;;;;;;:::i;:::-;;;;;;;;24621:300:::0;:::o;21896:226::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22019:1:::1;21991:30;;:16;:30;;::::0;21983:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22098:16;22080:15;;:34;;;;;;;;;;;;;;;;;;21896:226:::0;:::o;21464:290::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21590:8:::1;21558:40;;:19;:28;21578:7;21558:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;21550:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21686:8;21655:19;:28;21675:7;21655:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21728:7;21712:34;;;21737:8;21712:34;;;;;;:::i;:::-;;;;;;;;21464:290:::0;;:::o;27352:36::-;;;;:::o;12678:151::-;12767:7;12794:11;:18;12806:5;12794:18;;;;;;;;;;;;;;;:27;12813:7;12794:27;;;;;;;;;;;;;;;;12787:34;;12678:151;;;;:::o;17087:33::-;;;;:::o;11266:244::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11375:1:::1;11355:22;;:8;:22;;::::0;11347:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11465:8;11436:38;;11457:6;;;;;;;;;;;11436:38;;;;;;;;;;;;11494:8;11485:6;;:17;;;;;;;;;;;;;;;;;;11266:244:::0;:::o;19731:426::-;11033:12;:10;:12::i;:::-;11023:22;;:6;;;;;;;;;;;:22;;;11015:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19823:3:::1;19806:21;;:5;:21;;::::0;19802:189:::1;;19845:12;19862:10;:15;;19885:21;19862:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19844:67;;;19934:7;19926:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;19973:7;;;19802:189;20001:17;20028:5;20001:33;;20045:15;20063:10;:20;;;20092:4;20063:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20045:53;;20109:10;:19;;;20129:10;20141:7;20109:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19791:366;;11093:1;19731:426:::0;:::o;10219:98::-;10272:7;10299:10;10292:17;;10219:98;:::o;15986:380::-;16139:1;16122:19;;:5;:19;;;16114:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16220:1;16201:21;;:7;:21;;;16193:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16304:6;16274:11;:18;16286:5;16274:18;;;;;;;;;;;;;;;:27;16293:7;16274:27;;;;;;;;;;;;;;;:36;;;;16342:7;16326:32;;16335:5;16326:32;;;16351:6;16326:32;;;;;;:::i;:::-;;;;;;;;15986:380;;;:::o;22134:2479::-;22247:1;22231:18;;:4;:18;;;22223:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22324:1;22310:16;;:2;:16;;;22302:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22385:14;;;;;;;;;;;:43;;;;22403:19;:25;22423:4;22403:25;;;;;;;;;;;;;;;;;;;;;;;;;22385:43;:70;;;;22432:19;:23;22452:2;22432:23;;;;;;;;;;;;;;;;;;;;;;;;;22385:70;22377:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;22525:1;22515:6;:11;22511:93;;22543:28;22559:4;22565:2;22569:1;22543:15;:28::i;:::-;22586:7;;22511:93;22620:26;;;;;;;;;;;22616:410;;;22686:13;;;;;;;;;;;22678:21;;:4;:21;;;:44;;;;22709:13;;;;;;;;;;;22703:19;;:2;:19;;;22678:44;22677:107;;;;;22779:5;22744:40;;:25;:31;22770:4;22744:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;22677:107;:169;;;;;22841:5;22806:40;;:25;:29;22832:2;22806:29;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;22677:169;22673:342;;;22899:20;;22889:6;:30;;22881:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;22673:342;22616:410;23036:28;23067:24;23085:4;23067:9;:24::i;:::-;23036:55;;23104:12;23143:18;;23119:20;:42;;23104:57;;23178:7;:33;;;;;23203:8;;;;;;;;;;;23202:9;23178:33;:69;;;;;23234:13;;;;;;;;;;;23228:19;;:2;:19;;;23178:69;23174:322;;;23285:4;23274:8;;:15;;;;;;;;;;;;;;;;;;23310:13;;;;;;;;;;;23306:95;;;23367:18;;23344:41;;23306:95;23417:26;23422:20;23417:4;:26::i;:::-;23479:5;23468:8;;:16;;;;;;;;;;;;;;;;;;23174:322;23508:18;23541:19;:25;23561:4;23541:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23570:19;:23;23590:2;23570:23;;;;;;;;;;;;;;;;;;;;;;;;;23541:52;:64;;;;23597:8;;;;;;;;;;;23541:64;23537:350;;;23635:1;23622:14;;23537:350;;;23667:13;;;;;;;;;;;23659:21;;:4;:21;;;23655:232;;23711:11;:9;:11::i;:::-;23697:25;;23655:232;;;23751:13;;;;;;;;;;;23745:19;;:2;:19;;;23741:146;;23807:12;:10;:12::i;:::-;23794:25;;23741:146;;;23874:1;23861:14;;23741:146;23655:232;23537:350;23916:1;23903:10;:14;23899:183;;;23934:12;23973:3;23959:10;23950:6;:19;;;;:::i;:::-;23949:27;;;;:::i;:::-;23934:42;;24009:4;24000:6;:13;;;;:::i;:::-;23991:22;;24028:42;24044:4;24058;24065;24028:15;:42::i;:::-;23919:163;23899:183;24098:21;;;;;;;;;;;24094:466;;;24180:5;24140:45;;:29;:35;24170:4;24140:35;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;:112;;;;;24247:5;24207:45;;:29;:33;24237:2;24207:33;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;24140:112;:152;;;;;24279:13;;;;;;;;;;;24273:19;;:2;:19;;;;24140:152;24136:413;;;24327:12;24343:13;24353:2;24343:9;:13::i;:::-;24327:29;;24425:15;;24415:6;24405:7;:16;;;;:::i;:::-;:35;;24375:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;24308:241;24136:413;24094:466;24572:33;24588:4;24594:2;24598:6;24572:15;:33::i;:::-;22212:2401;;;22134:2479;;;;:::o;14239:733::-;14397:1;14379:20;;:6;:20;;;14371:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14481:1;14460:23;;:9;:23;;;14452:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14536:47;14557:6;14565:9;14576:6;14536:20;:47::i;:::-;14596:21;14620:9;:17;14630:6;14620:17;;;;;;;;;;;;;;;;14596:41;;14673:6;14656:13;:23;;14648:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14794:6;14778:13;:22;14758:9;:17;14768:6;14758:17;;;;;;;;;;;;;;;:42;;;;14846:6;14822:9;:20;14832:9;14822:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14887:9;14870:35;;14879:6;14870:35;;;14898:6;14870:35;;;;;;:::i;:::-;;;;;;;;14918:46;14938:6;14946:9;14957:6;14918:19;:46::i;:::-;14360:612;14239:733;;;:::o;25102:669::-;25156:22;25181:21;25156:46;;25215:21;25253:1;25239:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25215:40;;25284:4;25266;25271:1;25266:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25310:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25300:4;25305:1;25300:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25345:15;;;;;;;;;;;:66;;;25426:11;25452:1;25468:4;25495;25515:15;25345:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25544:18;25589:14;25565:21;:38;;;;:::i;:::-;25544:59;;25616:12;25639:15;;;;;;;;;;;25631:29;;:41;25661:10;25631:41;;;;;;;;;;;;;;;;;;;;;;;25616:56;;25687:7;25683:81;;;25716:36;25728:11;25741:10;25716:36;;;;;;;:::i;:::-;;;;;;;;25683:81;25145:626;;;;25102:669;:::o;16374:125::-;;;;:::o;16507:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:468::-;3772:6;3780;3829:2;3817:9;3808:7;3804:23;3800:32;3797:119;;;3835:79;;:::i;:::-;3797:119;3955:1;3980:53;4025:7;4016:6;4005:9;4001:22;3980:53;:::i;:::-;3970:63;;3926:117;4082:2;4108:50;4150:7;4141:6;4130:9;4126:22;4108:50;:::i;:::-;4098:60;;4053:115;3707:468;;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:152::-;4603:9;4636:37;4667:5;4636:37;:::i;:::-;4623:50;;4527:152;;;:::o;4685:183::-;4798:63;4855:5;4798:63;:::i;:::-;4793:3;4786:76;4685:183;;:::o;4874:274::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:97;5138:1;5127:9;5123:17;5114:6;5044:97;:::i;:::-;4874:274;;;;:::o;5154:118::-;5241:24;5259:5;5241:24;:::i;:::-;5236:3;5229:37;5154:118;;:::o;5278:222::-;5371:4;5409:2;5398:9;5394:18;5386:26;;5422:71;5490:1;5479:9;5475:17;5466:6;5422:71;:::i;:::-;5278:222;;;;:::o;5506:329::-;5565:6;5614:2;5602:9;5593:7;5589:23;5585:32;5582:119;;;5620:79;;:::i;:::-;5582:119;5740:1;5765:53;5810:7;5801:6;5790:9;5786:22;5765:53;:::i;:::-;5755:63;;5711:117;5506:329;;;;:::o;5841:::-;5900:6;5949:2;5937:9;5928:7;5924:23;5920:32;5917:119;;;5955:79;;:::i;:::-;5917:119;6075:1;6100:53;6145:7;6136:6;6125:9;6121:22;6100:53;:::i;:::-;6090:63;;6046:117;5841:329;;;;:::o;6176:619::-;6253:6;6261;6269;6318:2;6306:9;6297:7;6293:23;6289:32;6286:119;;;6324:79;;:::i;:::-;6286:119;6444:1;6469:53;6514:7;6505:6;6494:9;6490:22;6469:53;:::i;:::-;6459:63;;6415:117;6571:2;6597:53;6642:7;6633:6;6622:9;6618:22;6597:53;:::i;:::-;6587:63;;6542:118;6699:2;6725:53;6770:7;6761:6;6750:9;6746:22;6725:53;:::i;:::-;6715:63;;6670:118;6176:619;;;;;:::o;6801:323::-;6857:6;6906:2;6894:9;6885:7;6881:23;6877:32;6874:119;;;6912:79;;:::i;:::-;6874:119;7032:1;7057:50;7099:7;7090:6;7079:9;7075:22;7057:50;:::i;:::-;7047:60;;7003:114;6801:323;;;;:::o;7130:86::-;7165:7;7205:4;7198:5;7194:16;7183:27;;7130:86;;;:::o;7222:112::-;7305:22;7321:5;7305:22;:::i;:::-;7300:3;7293:35;7222:112;;:::o;7340:214::-;7429:4;7467:2;7456:9;7452:18;7444:26;;7480:67;7544:1;7533:9;7529:17;7520:6;7480:67;:::i;:::-;7340:214;;;;:::o;7560:118::-;7647:24;7665:5;7647:24;:::i;:::-;7642:3;7635:37;7560:118;;:::o;7684:222::-;7777:4;7815:2;7804:9;7800:18;7792:26;;7828:71;7896:1;7885:9;7881:17;7872:6;7828:71;:::i;:::-;7684:222;;;;:::o;7912:474::-;7980:6;7988;8037:2;8025:9;8016:7;8012:23;8008:32;8005:119;;;8043:79;;:::i;:::-;8005:119;8163:1;8188:53;8233:7;8224:6;8213:9;8209:22;8188:53;:::i;:::-;8178:63;;8134:117;8290:2;8316:53;8361:7;8352:6;8341:9;8337:22;8316:53;:::i;:::-;8306:63;;8261:118;7912:474;;;;;:::o;8392:180::-;8440:77;8437:1;8430:88;8537:4;8534:1;8527:15;8561:4;8558:1;8551:15;8578:320;8622:6;8659:1;8653:4;8649:12;8639:22;;8706:1;8700:4;8696:12;8727:18;8717:81;;8783:4;8775:6;8771:17;8761:27;;8717:81;8845:2;8837:6;8834:14;8814:18;8811:38;8808:84;;8864:18;;:::i;:::-;8808:84;8629:269;8578:320;;;:::o;8904:182::-;9044:34;9040:1;9032:6;9028:14;9021:58;8904:182;:::o;9092:366::-;9234:3;9255:67;9319:2;9314:3;9255:67;:::i;:::-;9248:74;;9331:93;9420:3;9331:93;:::i;:::-;9449:2;9444:3;9440:12;9433:19;;9092:366;;;:::o;9464:419::-;9630:4;9668:2;9657:9;9653:18;9645:26;;9717:9;9711:4;9707:20;9703:1;9692:9;9688:17;9681:47;9745:131;9871:4;9745:131;:::i;:::-;9737:139;;9464:419;;;:::o;9889:223::-;10029:34;10025:1;10017:6;10013:14;10006:58;10098:6;10093:2;10085:6;10081:15;10074:31;9889:223;:::o;10118:366::-;10260:3;10281:67;10345:2;10340:3;10281:67;:::i;:::-;10274:74;;10357:93;10446:3;10357:93;:::i;:::-;10475:2;10470:3;10466:12;10459:19;;10118:366;;;:::o;10490:419::-;10656:4;10694:2;10683:9;10679:18;10671:26;;10743:9;10737:4;10733:20;10729:1;10718:9;10714:17;10707:47;10771:131;10897:4;10771:131;:::i;:::-;10763:139;;10490:419;;;:::o;10915:180::-;10963:77;10960:1;10953:88;11060:4;11057:1;11050:15;11084:4;11081:1;11074:15;11101:102;11143:8;11190:5;11187:1;11183:13;11162:34;;11101:102;;;:::o;11209:848::-;11270:5;11277:4;11301:6;11292:15;;11325:5;11316:14;;11339:712;11360:1;11350:8;11347:15;11339:712;;;11455:4;11450:3;11446:14;11440:4;11437:24;11434:50;;;11464:18;;:::i;:::-;11434:50;11514:1;11504:8;11500:16;11497:451;;;11929:4;11922:5;11918:16;11909:25;;11497:451;11979:4;11973;11969:15;11961:23;;12009:32;12032:8;12009:32;:::i;:::-;11997:44;;11339:712;;;11209:848;;;;;;;:::o;12063:1073::-;12117:5;12308:8;12298:40;;12329:1;12320:10;;12331:5;;12298:40;12357:4;12347:36;;12374:1;12365:10;;12376:5;;12347:36;12443:4;12491:1;12486:27;;;;12527:1;12522:191;;;;12436:277;;12486:27;12504:1;12495:10;;12506:5;;;12522:191;12567:3;12557:8;12554:17;12551:43;;;12574:18;;:::i;:::-;12551:43;12623:8;12620:1;12616:16;12607:25;;12658:3;12651:5;12648:14;12645:40;;;12665:18;;:::i;:::-;12645:40;12698:5;;;12436:277;;12822:2;12812:8;12809:16;12803:3;12797:4;12794:13;12790:36;12772:2;12762:8;12759:16;12754:2;12748:4;12745:12;12741:35;12725:111;12722:246;;;12878:8;12872:4;12868:19;12859:28;;12913:3;12906:5;12903:14;12900:40;;;12920:18;;:::i;:::-;12900:40;12953:5;;12722:246;12993:42;13031:3;13021:8;13015:4;13012:1;12993:42;:::i;:::-;12978:57;;;;13067:4;13062:3;13058:14;13051:5;13048:25;13045:51;;;13076:18;;:::i;:::-;13045:51;13125:4;13118:5;13114:16;13105:25;;12063:1073;;;;;;:::o;13142:281::-;13200:5;13224:23;13242:4;13224:23;:::i;:::-;13216:31;;13268:25;13284:8;13268:25;:::i;:::-;13256:37;;13312:104;13349:66;13339:8;13333:4;13312:104;:::i;:::-;13303:113;;13142:281;;;;:::o;13429:180::-;13477:77;13474:1;13467:88;13574:4;13571:1;13564:15;13598:4;13595:1;13588:15;13615:185;13655:1;13672:20;13690:1;13672:20;:::i;:::-;13667:25;;13706:20;13724:1;13706:20;:::i;:::-;13701:25;;13745:1;13735:35;;13750:18;;:::i;:::-;13735:35;13792:1;13789;13785:9;13780:14;;13615:185;;;;:::o;13806:250::-;13946:34;13942:1;13934:6;13930:14;13923:58;14015:33;14010:2;14002:6;13998:15;13991:58;13806:250;:::o;14062:366::-;14204:3;14225:67;14289:2;14284:3;14225:67;:::i;:::-;14218:74;;14301:93;14390:3;14301:93;:::i;:::-;14419:2;14414:3;14410:12;14403:19;;14062:366;;;:::o;14434:419::-;14600:4;14638:2;14627:9;14623:18;14615:26;;14687:9;14681:4;14677:20;14673:1;14662:9;14658:17;14651:47;14715:131;14841:4;14715:131;:::i;:::-;14707:139;;14434:419;;;:::o;14859:410::-;14899:7;14922:20;14940:1;14922:20;:::i;:::-;14917:25;;14956:20;14974:1;14956:20;:::i;:::-;14951:25;;15011:1;15008;15004:9;15033:30;15051:11;15033:30;:::i;:::-;15022:41;;15212:1;15203:7;15199:15;15196:1;15193:22;15173:1;15166:9;15146:83;15123:139;;15242:18;;:::i;:::-;15123:139;14907:362;14859:410;;;;:::o;15275:227::-;15415:34;15411:1;15403:6;15399:14;15392:58;15484:10;15479:2;15471:6;15467:15;15460:35;15275:227;:::o;15508:366::-;15650:3;15671:67;15735:2;15730:3;15671:67;:::i;:::-;15664:74;;15747:93;15836:3;15747:93;:::i;:::-;15865:2;15860:3;15856:12;15849:19;;15508:366;;;:::o;15880:419::-;16046:4;16084:2;16073:9;16069:18;16061:26;;16133:9;16127:4;16123:20;16119:1;16108:9;16104:17;16097:47;16161:131;16287:4;16161:131;:::i;:::-;16153:139;;15880:419;;;:::o;16305:232::-;16445:34;16441:1;16433:6;16429:14;16422:58;16514:15;16509:2;16501:6;16497:15;16490:40;16305:232;:::o;16543:366::-;16685:3;16706:67;16770:2;16765:3;16706:67;:::i;:::-;16699:74;;16782:93;16871:3;16782:93;:::i;:::-;16900:2;16895:3;16891:12;16884:19;;16543:366;;;:::o;16915:419::-;17081:4;17119:2;17108:9;17104:18;17096:26;;17168:9;17162:4;17158:20;17154:1;17143:9;17139:17;17132:47;17196:131;17322:4;17196:131;:::i;:::-;17188:139;;16915:419;;;:::o;17340:194::-;17380:4;17400:20;17418:1;17400:20;:::i;:::-;17395:25;;17434:20;17452:1;17434:20;:::i;:::-;17429:25;;17478:1;17475;17471:9;17463:17;;17502:1;17496:4;17493:11;17490:37;;;17507:18;;:::i;:::-;17490:37;17340:194;;;;:::o;17540:232::-;17680:34;17676:1;17668:6;17664:14;17657:58;17749:15;17744:2;17736:6;17732:15;17725:40;17540:232;:::o;17778:366::-;17920:3;17941:67;18005:2;18000:3;17941:67;:::i;:::-;17934:74;;18017:93;18106:3;18017:93;:::i;:::-;18135:2;18130:3;18126:12;18119:19;;17778:366;;;:::o;18150:419::-;18316:4;18354:2;18343:9;18339:18;18331:26;;18403:9;18397:4;18393:20;18389:1;18378:9;18374:17;18367:47;18431:131;18557:4;18431:131;:::i;:::-;18423:139;;18150:419;;;:::o;18575:191::-;18615:3;18634:20;18652:1;18634:20;:::i;:::-;18629:25;;18668:20;18686:1;18668:20;:::i;:::-;18663:25;;18711:1;18708;18704:9;18697:16;;18732:3;18729:1;18726:10;18723:36;;;18739:18;;:::i;:::-;18723:36;18575:191;;;;:::o;18772:237::-;18912:34;18908:1;18900:6;18896:14;18889:58;18981:20;18976:2;18968:6;18964:15;18957:45;18772:237;:::o;19015:366::-;19157:3;19178:67;19242:2;19237:3;19178:67;:::i;:::-;19171:74;;19254:93;19343:3;19254:93;:::i;:::-;19372:2;19367:3;19363:12;19356:19;;19015:366;;;:::o;19387:419::-;19553:4;19591:2;19580:9;19576:18;19568:26;;19640:9;19634:4;19630:20;19626:1;19615:9;19611:17;19604:47;19668:131;19794:4;19668:131;:::i;:::-;19660:139;;19387:419;;;:::o;19812:176::-;19952:28;19948:1;19940:6;19936:14;19929:52;19812:176;:::o;19994:366::-;20136:3;20157:67;20221:2;20216:3;20157:67;:::i;:::-;20150:74;;20233:93;20322:3;20233:93;:::i;:::-;20351:2;20346:3;20342:12;20335:19;;19994:366;;;:::o;20366:419::-;20532:4;20570:2;20559:9;20555:18;20547:26;;20619:9;20613:4;20609:20;20605:1;20594:9;20590:17;20583:47;20647:131;20773:4;20647:131;:::i;:::-;20639:139;;20366:419;;;:::o;20791:224::-;20931:34;20927:1;20919:6;20915:14;20908:58;21000:7;20995:2;20987:6;20983:15;20976:32;20791:224;:::o;21021:366::-;21163:3;21184:67;21248:2;21243:3;21184:67;:::i;:::-;21177:74;;21260:93;21349:3;21260:93;:::i;:::-;21378:2;21373:3;21369:12;21362:19;;21021:366;;;:::o;21393:419::-;21559:4;21597:2;21586:9;21582:18;21574:26;;21646:9;21640:4;21636:20;21632:1;21621:9;21617:17;21610:47;21674:131;21800:4;21674:131;:::i;:::-;21666:139;;21393:419;;;:::o;21818:250::-;21958:34;21954:1;21946:6;21942:14;21935:58;22027:33;22022:2;22014:6;22010:15;22003:58;21818:250;:::o;22074:366::-;22216:3;22237:67;22301:2;22296:3;22237:67;:::i;:::-;22230:74;;22313:93;22402:3;22313:93;:::i;:::-;22431:2;22426:3;22422:12;22415:19;;22074:366;;;:::o;22446:419::-;22612:4;22650:2;22639:9;22635:18;22627:26;;22699:9;22693:4;22689:20;22685:1;22674:9;22670:17;22663:47;22727:131;22853:4;22727:131;:::i;:::-;22719:139;;22446:419;;;:::o;22871:230::-;23011:34;23007:1;22999:6;22995:14;22988:58;23080:13;23075:2;23067:6;23063:15;23056:38;22871:230;:::o;23107:366::-;23249:3;23270:67;23334:2;23329:3;23270:67;:::i;:::-;23263:74;;23346:93;23435:3;23346:93;:::i;:::-;23464:2;23459:3;23455:12;23448:19;;23107:366;;;:::o;23479:419::-;23645:4;23683:2;23672:9;23668:18;23660:26;;23732:9;23726:4;23722:20;23718:1;23707:9;23703:17;23696:47;23760:131;23886:4;23760:131;:::i;:::-;23752:139;;23479:419;;;:::o;23904:229::-;24044:34;24040:1;24032:6;24028:14;24021:58;24113:12;24108:2;24100:6;24096:15;24089:37;23904:229;:::o;24139:366::-;24281:3;24302:67;24366:2;24361:3;24302:67;:::i;:::-;24295:74;;24378:93;24467:3;24378:93;:::i;:::-;24496:2;24491:3;24487:12;24480:19;;24139:366;;;:::o;24511:419::-;24677:4;24715:2;24704:9;24700:18;24692:26;;24764:9;24758:4;24754:20;24750:1;24739:9;24735:17;24728:47;24792:131;24918:4;24792:131;:::i;:::-;24784:139;;24511:419;;;:::o;24936:225::-;25076:34;25072:1;25064:6;25060:14;25053:58;25145:8;25140:2;25132:6;25128:15;25121:33;24936:225;:::o;25167:366::-;25309:3;25330:67;25394:2;25389:3;25330:67;:::i;:::-;25323:74;;25406:93;25495:3;25406:93;:::i;:::-;25524:2;25519:3;25515:12;25508:19;;25167:366;;;:::o;25539:419::-;25705:4;25743:2;25732:9;25728:18;25720:26;;25792:9;25786:4;25782:20;25778:1;25767:9;25763:17;25756:47;25820:131;25946:4;25820:131;:::i;:::-;25812:139;;25539:419;;;:::o;25964:147::-;26065:11;26102:3;26087:18;;25964:147;;;;:::o;26117:114::-;;:::o;26237:398::-;26396:3;26417:83;26498:1;26493:3;26417:83;:::i;:::-;26410:90;;26509:93;26598:3;26509:93;:::i;:::-;26627:1;26622:3;26618:11;26611:18;;26237:398;;;:::o;26641:379::-;26825:3;26847:147;26990:3;26847:147;:::i;:::-;26840:154;;27011:3;27004:10;;26641:379;;;:::o;27026:162::-;27166:14;27162:1;27154:6;27150:14;27143:38;27026:162;:::o;27194:366::-;27336:3;27357:67;27421:2;27416:3;27357:67;:::i;:::-;27350:74;;27433:93;27522:3;27433:93;:::i;:::-;27551:2;27546:3;27542:12;27535:19;;27194:366;;;:::o;27566:419::-;27732:4;27770:2;27759:9;27755:18;27747:26;;27819:9;27813:4;27809:20;27805:1;27794:9;27790:17;27783:47;27847:131;27973:4;27847:131;:::i;:::-;27839:139;;27566:419;;;:::o;27991:143::-;28048:5;28079:6;28073:13;28064:22;;28095:33;28122:5;28095:33;:::i;:::-;27991:143;;;;:::o;28140:351::-;28210:6;28259:2;28247:9;28238:7;28234:23;28230:32;28227:119;;;28265:79;;:::i;:::-;28227:119;28385:1;28410:64;28466:7;28457:6;28446:9;28442:22;28410:64;:::i;:::-;28400:74;;28356:128;28140:351;;;;:::o;28497:332::-;28618:4;28656:2;28645:9;28641:18;28633:26;;28669:71;28737:1;28726:9;28722:17;28713:6;28669:71;:::i;:::-;28750:72;28818:2;28807:9;28803:18;28794:6;28750:72;:::i;:::-;28497:332;;;;;:::o;28835:137::-;28889:5;28920:6;28914:13;28905:22;;28936:30;28960:5;28936:30;:::i;:::-;28835:137;;;;:::o;28978:345::-;29045:6;29094:2;29082:9;29073:7;29069:23;29065:32;29062:119;;;29100:79;;:::i;:::-;29062:119;29220:1;29245:61;29298:7;29289:6;29278:9;29274:22;29245:61;:::i;:::-;29235:71;;29191:125;28978:345;;;;:::o;29329:223::-;29469:34;29465:1;29457:6;29453:14;29446:58;29538:6;29533:2;29525:6;29521:15;29514:31;29329:223;:::o;29558:366::-;29700:3;29721:67;29785:2;29780:3;29721:67;:::i;:::-;29714:74;;29797:93;29886:3;29797:93;:::i;:::-;29915:2;29910:3;29906:12;29899:19;;29558:366;;;:::o;29930:419::-;30096:4;30134:2;30123:9;30119:18;30111:26;;30183:9;30177:4;30173:20;30169:1;30158:9;30154:17;30147:47;30211:131;30337:4;30211:131;:::i;:::-;30203:139;;29930:419;;;:::o;30355:221::-;30495:34;30491:1;30483:6;30479:14;30472:58;30564:4;30559:2;30551:6;30547:15;30540:29;30355:221;:::o;30582:366::-;30724:3;30745:67;30809:2;30804:3;30745:67;:::i;:::-;30738:74;;30821:93;30910:3;30821:93;:::i;:::-;30939:2;30934:3;30930:12;30923:19;;30582:366;;;:::o;30954:419::-;31120:4;31158:2;31147:9;31143:18;31135:26;;31207:9;31201:4;31197:20;31193:1;31182:9;31178:17;31171:47;31235:131;31361:4;31235:131;:::i;:::-;31227:139;;30954:419;;;:::o;31379:224::-;31519:34;31515:1;31507:6;31503:14;31496:58;31588:7;31583:2;31575:6;31571:15;31564:32;31379:224;:::o;31609:366::-;31751:3;31772:67;31836:2;31831:3;31772:67;:::i;:::-;31765:74;;31848:93;31937:3;31848:93;:::i;:::-;31966:2;31961:3;31957:12;31950:19;;31609:366;;;:::o;31981:419::-;32147:4;32185:2;32174:9;32170:18;32162:26;;32234:9;32228:4;32224:20;32220:1;32209:9;32205:17;32198:47;32262:131;32388:4;32262:131;:::i;:::-;32254:139;;31981:419;;;:::o;32406:222::-;32546:34;32542:1;32534:6;32530:14;32523:58;32615:5;32610:2;32602:6;32598:15;32591:30;32406:222;:::o;32634:366::-;32776:3;32797:67;32861:2;32856:3;32797:67;:::i;:::-;32790:74;;32873:93;32962:3;32873:93;:::i;:::-;32991:2;32986:3;32982:12;32975:19;;32634:366;;;:::o;33006:419::-;33172:4;33210:2;33199:9;33195:18;33187:26;;33259:9;33253:4;33249:20;33245:1;33234:9;33230:17;33223:47;33287:131;33413:4;33287:131;:::i;:::-;33279:139;;33006:419;;;:::o;33431:176::-;33571:28;33567:1;33559:6;33555:14;33548:52;33431:176;:::o;33613:366::-;33755:3;33776:67;33840:2;33835:3;33776:67;:::i;:::-;33769:74;;33852:93;33941:3;33852:93;:::i;:::-;33970:2;33965:3;33961:12;33954:19;;33613:366;;;:::o;33985:419::-;34151:4;34189:2;34178:9;34174:18;34166:26;;34238:9;34232:4;34228:20;34224:1;34213:9;34209:17;34202:47;34266:131;34392:4;34266:131;:::i;:::-;34258:139;;33985:419;;;:::o;34410:246::-;34550:34;34546:1;34538:6;34534:14;34527:58;34619:29;34614:2;34606:6;34602:15;34595:54;34410:246;:::o;34662:366::-;34804:3;34825:67;34889:2;34884:3;34825:67;:::i;:::-;34818:74;;34901:93;34990:3;34901:93;:::i;:::-;35019:2;35014:3;35010:12;35003:19;;34662:366;;;:::o;35034:419::-;35200:4;35238:2;35227:9;35223:18;35215:26;;35287:9;35281:4;35277:20;35273:1;35262:9;35258:17;35251:47;35315:131;35441:4;35315:131;:::i;:::-;35307:139;;35034:419;;;:::o;35459:235::-;35599:34;35595:1;35587:6;35583:14;35576:58;35668:18;35663:2;35655:6;35651:15;35644:43;35459:235;:::o;35700:366::-;35842:3;35863:67;35927:2;35922:3;35863:67;:::i;:::-;35856:74;;35939:93;36028:3;35939:93;:::i;:::-;36057:2;36052:3;36048:12;36041:19;;35700:366;;;:::o;36072:419::-;36238:4;36276:2;36265:9;36261:18;36253:26;;36325:9;36319:4;36315:20;36311:1;36300:9;36296:17;36289:47;36353:131;36479:4;36353:131;:::i;:::-;36345:139;;36072:419;;;:::o;36497:225::-;36637:34;36633:1;36625:6;36621:14;36614:58;36706:8;36701:2;36693:6;36689:15;36682:33;36497:225;:::o;36728:366::-;36870:3;36891:67;36955:2;36950:3;36891:67;:::i;:::-;36884:74;;36967:93;37056:3;36967:93;:::i;:::-;37085:2;37080:3;37076:12;37069:19;;36728:366;;;:::o;37100:419::-;37266:4;37304:2;37293:9;37289:18;37281:26;;37353:9;37347:4;37343:20;37339:1;37328:9;37324:17;37317:47;37381:131;37507:4;37381:131;:::i;:::-;37373:139;;37100:419;;;:::o;37525:180::-;37573:77;37570:1;37563:88;37670:4;37667:1;37660:15;37694:4;37691:1;37684:15;37711:180;37759:77;37756:1;37749:88;37856:4;37853:1;37846:15;37880:4;37877:1;37870:15;37897:143;37954:5;37985:6;37979:13;37970:22;;38001:33;38028:5;38001:33;:::i;:::-;37897:143;;;;:::o;38046:351::-;38116:6;38165:2;38153:9;38144:7;38140:23;38136:32;38133:119;;;38171:79;;:::i;:::-;38133:119;38291:1;38316:64;38372:7;38363:6;38352:9;38348:22;38316:64;:::i;:::-;38306:74;;38262:128;38046:351;;;;:::o;38403:85::-;38448:7;38477:5;38466:16;;38403:85;;;:::o;38494:158::-;38552:9;38585:61;38603:42;38612:32;38638:5;38612:32;:::i;:::-;38603:42;:::i;:::-;38585:61;:::i;:::-;38572:74;;38494:158;;;:::o;38658:147::-;38753:45;38792:5;38753:45;:::i;:::-;38748:3;38741:58;38658:147;;:::o;38811:114::-;38878:6;38912:5;38906:12;38896:22;;38811:114;;;:::o;38931:184::-;39030:11;39064:6;39059:3;39052:19;39104:4;39099:3;39095:14;39080:29;;38931:184;;;;:::o;39121:132::-;39188:4;39211:3;39203:11;;39241:4;39236:3;39232:14;39224:22;;39121:132;;;:::o;39259:108::-;39336:24;39354:5;39336:24;:::i;:::-;39331:3;39324:37;39259:108;;:::o;39373:179::-;39442:10;39463:46;39505:3;39497:6;39463:46;:::i;:::-;39541:4;39536:3;39532:14;39518:28;;39373:179;;;;:::o;39558:113::-;39628:4;39660;39655:3;39651:14;39643:22;;39558:113;;;:::o;39707:732::-;39826:3;39855:54;39903:5;39855:54;:::i;:::-;39925:86;40004:6;39999:3;39925:86;:::i;:::-;39918:93;;40035:56;40085:5;40035:56;:::i;:::-;40114:7;40145:1;40130:284;40155:6;40152:1;40149:13;40130:284;;;40231:6;40225:13;40258:63;40317:3;40302:13;40258:63;:::i;:::-;40251:70;;40344:60;40397:6;40344:60;:::i;:::-;40334:70;;40190:224;40177:1;40174;40170:9;40165:14;;40130:284;;;40134:14;40430:3;40423:10;;39831:608;;;39707:732;;;;:::o;40445:831::-;40708:4;40746:3;40735:9;40731:19;40723:27;;40760:71;40828:1;40817:9;40813:17;40804:6;40760:71;:::i;:::-;40841:80;40917:2;40906:9;40902:18;40893:6;40841:80;:::i;:::-;40968:9;40962:4;40958:20;40953:2;40942:9;40938:18;40931:48;40996:108;41099:4;41090:6;40996:108;:::i;:::-;40988:116;;41114:72;41182:2;41171:9;41167:18;41158:6;41114:72;:::i;:::-;41196:73;41264:3;41253:9;41249:19;41240:6;41196:73;:::i;:::-;40445:831;;;;;;;;:::o;41282:332::-;41403:4;41441:2;41430:9;41426:18;41418:26;;41454:71;41522:1;41511:9;41507:17;41498:6;41454:71;:::i;:::-;41535:72;41603:2;41592:9;41588:18;41579:6;41535:72;:::i;:::-;41282:332;;;;;:::o
Swarm Source
ipfs://37805549f5c91ed194dffaef6ecdbdb84fd5261abe30cd590e67a7fae95e6745
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.