ERC-20
Overview
Max Total Supply
1,000,000 Futbol
Holders
33
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,785.712716933362718923 FutbolValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FutbolInu
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-20 */ /* _______ _ _ _ (_______) _ | | | | | | _____ _ _ _| |_| |__ ___ | | | |____ _ _ | ___) | | (_ _) _ \ / _ \| | | | _ \| | | | | | | |_| | | |_| |_) ) |_| | | | | | | | |_| | |_| |____/ \__)____/ \___/ \_) |_|_| |_|____/ _...----.._ ,:':::::. `>. ,' |:::::;' |:::. / `'::' :::::\ / ______ `::;\ : /::::::\ ` : | ,. /:Futbol:\ | |;:::. `::Inu::;' | :::::: `:::;' ,. ; \:::' ,::::/ \ \:::/ `. ,:. :;' `-.::::::.. _.'' ```----''' https://twitter.com/FutbolInu https://t.me/FutbolinuPortal https://medium.com/@futbolinu/f%C3%BAtbol-inu-4b7f0c048a33 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, 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; } contract FutbolInu is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Futbol Inu"; string private _symbol = "Futbol"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0xa257f43Fd6C0448eb04fC8D15bBD2C47A7981983); address payable public DeveloperWallet = payable(0xb8c123A79F6C4C911eAF1F2acC89aDd25A5fc005); address public liquidityReciever; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 1; uint256 public _buyMarketingFee = 88; uint256 public _buyDeveloperFee = 1; uint256 public _sellLiquidityFee = 1; uint256 public _sellMarketingFee = 88; uint256 public _sellDeveloperFee = 1; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100); //0.001% uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); //2% uint256 public _walletMax = _totalSupply.mul(2).div(100); //2% IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); isMarketPair[address(uniswapPair)] = true; liquidityReciever = address(msg.sender); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setLiquidityWalletAddress(address newAddress) external onlyOwner() { liquidityReciever = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function setBlacklist(address _adr, bool _status) external onlyOwner { blacklist[_adr] = _status; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee); uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2); uint256 tokenForSwap = tAmount.sub(tokenForLp); uint256 initialBalance = address(this).balance; swapTokensForEth(tokenForSwap); uint256 recievedBalance = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(liquidityShare.div(2)); uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee); uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) { payable(marketingWallet).transfer(amountETHMarketing); } if(amountETHDeveloper > 0) { payable(DeveloperWallet).transfer(amountETHDeveloper); } if(amountETHLiquidity > 0 && tokenForLp > 0) { addLiquidity(tokenForLp, amountETHLiquidity); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityReciever, block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":[{"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526040518060400160405280600a81526020017f467574626f6c20496e7500000000000000000000000000000000000000000000815250600190805190602001906200005192919062001043565b506040518060400160405280600681526020017f467574626f6c0000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001043565b506012600360006101000a81548160ff021916908360ff16021790555073a257f43fd6c0448eb04fc8d15bbd2c47a7981983600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b8c123a79f6c4c911eaf1f2acc89add25a5fc005600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600d556058600e556001600f55600160105560586011556001601255600360009054906101000a900460ff16600a620002119190620013ab565b620f4240620002219190620014e8565b6015556200025b606462000247600160155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b60165562000295606462000281600260155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b601755620002cf6064620002bb600260155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b6018556001601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff0219169083151502179055503480156200034b57600080fd5b5060006200035e62000f4760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045c57600080fd5b505afa15801562000471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049791906200110a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004fa57600080fd5b505afa1580156200050f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053591906200110a565b6040518363ffffffff1660e01b815260040162000554929190620011ed565b602060405180830381600087803b1580156200056f57600080fd5b505af115801562000584573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005aa91906200110a565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620006e662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200089962000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600062000ac662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c9c600f5462000c88600e54600d5462000f7860201b620033251790919060201c565b62000f7860201b620033251790919060201c565b60138190555062000cdb60125462000cc760115460105462000f7860201b620033251790919060201c565b62000f7860201b620033251790919060201c565b601481905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506015546006600062000db362000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e0162000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60155460405162000e62919062001282565b60405180910390a35062001742565b60008083141562000e86576000905062000eef565b6000828462000e969190620014e8565b905082848262000ea7919062001318565b1462000eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ee19062001260565b60405180910390fd5b809150505b92915050565b600062000f3f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fdb60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000f899190620012bb565b90508381101562000fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fc8906200123e565b60405180910390fd5b8091505092915050565b6000808311829062001025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200101c91906200121a565b60405180910390fd5b506000838562001036919062001318565b9050809150509392505050565b8280546200105190620015ca565b90600052602060002090601f016020900481019282620010755760008555620010c1565b82601f106200109057805160ff1916838001178555620010c1565b82800160010185558215620010c1579182015b82811115620010c0578251825591602001919060010190620010a3565b5b509050620010d09190620010d4565b5090565b5b80821115620010ef576000816000905550600101620010d5565b5090565b600081519050620011048162001728565b92915050565b6000602082840312156200112357620011226200168d565b5b60006200113384828501620010f3565b91505092915050565b620011478162001549565b82525050565b60006200115a826200129f565b620011668185620012aa565b93506200117881856020860162001594565b620011838162001692565b840191505092915050565b60006200119d601b83620012aa565b9150620011aa82620016b0565b602082019050919050565b6000620011c4602183620012aa565b9150620011d182620016d9565b604082019050919050565b620011e7816200157d565b82525050565b60006040820190506200120460008301856200113c565b6200121360208301846200113c565b9392505050565b600060208201905081810360008301526200123681846200114d565b905092915050565b6000602082019050818103600083015262001259816200118e565b9050919050565b600060208201905081810360008301526200127b81620011b5565b9050919050565b6000602082019050620012996000830184620011dc565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620012c8826200157d565b9150620012d5836200157d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200130d576200130c62001600565b5b828201905092915050565b600062001325826200157d565b915062001332836200157d565b9250826200134557620013446200162f565b5b828204905092915050565b6000808291508390505b6001851115620013a2578086048111156200137a576200137962001600565b5b60018516156200138a5780820291505b80810290506200139a85620016a3565b94506200135a565b94509492505050565b6000620013b8826200157d565b9150620013c58362001587565b9250620013f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013fc565b905092915050565b6000826200140e5760019050620014e1565b816200141e5760009050620014e1565b8160018114620014375760028114620014425762001478565b6001915050620014e1565b60ff84111562001457576200145662001600565b5b8360020a91508482111562001471576200147062001600565b5b50620014e1565b5060208310610133831016604e8410600b8410161715620014b25782820a905083811115620014ac57620014ab62001600565b5b620014e1565b620014c1848484600162001350565b92509050818404811115620014db57620014da62001600565b5b81810290505b9392505050565b6000620014f5826200157d565b915062001502836200157d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200153e576200153d62001600565b5b828202905092915050565b600062001556826200155d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620015b457808201518184015260208101905062001597565b83811115620015c4576000848401525b50505050565b60006002820490506001821680620015e357607f821691505b60208210811415620015fa57620015f96200165e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620017338162001549565b81146200173f57600080fd5b50565b60805160601c60a05160601c615adf6200177c6000396000818161106b015261155b01526000818161152f01526115870152615adf6000f3fe6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea9190615066565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614b7b565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e9190614f47565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614a33565b61108d565b60405161047b9190615030565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906149f3565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf919061504b565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa9190615228565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614b7b565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e91906149f3565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b6040516105779190615228565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906149a0565b6113a1565b6040516105b49190615030565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614af4565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b6040516106089190614f47565b60405180910390f35b34801561061d57600080fd5b50610626611551565b6040516106339190615228565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906152cd565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614a33565b6115e6565b60405161069b9190615030565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614b4e565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614906565b611738565b6040516107019190615030565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615030565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614906565b61176b565b005b34801561076a57600080fd5b50610773611844565b6040516107809190615228565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614906565b61184a565b6040516107bd9190615030565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614906565b61186a565b6040516107fa9190614f47565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614a73565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614906565b612129565b6040516108609190615228565b60405180910390f35b34801561087557600080fd5b5061087e612172565b005b34801561088c57600080fd5b506108956122c7565b6040516108a29190614f62565b60405180910390f35b3480156108b757600080fd5b506108c06122ed565b6040516108cd9190615228565b60405180910390f35b3480156108e257600080fd5b506108eb6122f3565b6040516108f89190615228565b60405180910390f35b34801561090d57600080fd5b506109166122f9565b6040516109239190615228565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906149f3565b6122ff565b005b34801561096157600080fd5b5061096a6123ef565b6040516109779190615030565b60405180910390f35b34801561098c57600080fd5b50610995612402565b6040516109a29190615228565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614906565b612408565b6040516109df9190615030565b60405180910390f35b3480156109f457600080fd5b506109fd612428565b604051610a0a9190614f47565b60405180910390f35b348015610a1f57600080fd5b50610a28612451565b604051610a359190615066565b60405180910390f35b348015610a4a57600080fd5b50610a536124e3565b604051610a609190614f47565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614a33565b612509565b604051610a9d9190615030565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614af4565b6125d6565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614a33565b612688565b604051610b039190615030565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614af4565b6126a7565b005b348015610b4157600080fd5b50610b4a612790565b604051610b579190615228565b60405180910390f35b348015610b6c57600080fd5b50610b75612796565b604051610b829190614f47565b60405180910390f35b348015610b9757600080fd5b50610ba06127bc565b604051610bad9190615228565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614906565b6127c2565b604051610bea9190615030565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614906565b6127e2565b005b348015610c2857600080fd5b50610c316128bb565b604051610c3e9190615228565b60405180910390f35b348015610c5357600080fd5b50610c5c6128c1565b604051610c699190615030565b60405180910390f35b348015610c7e57600080fd5b50610c876128d4565b604051610c949190615228565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614960565b6128da565b604051610cd19190615228565b60405180910390f35b348015610ce657600080fd5b50610cef612961565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614b4e565b612a6f565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614af4565b612b0e565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d6591906149f3565b612bc0565b005b348015610d7857600080fd5b50610d81612cb0565b604051610d8e9190615228565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614b4e565b612cb6565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614906565b612d55565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614a33565b612f17565b005b348015610e1e57600080fd5b50610e396004803603810190610e3491906149f3565b61303e565b005b348015610e4757600080fd5b50610e5061312e565b604051610e5d9190615030565b60405180910390f35b348015610e7257600080fd5b50610e7b613141565b604051610e889190614f62565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614906565b613167565b604051610ec59190615030565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614906565b613187565b005b606060018054610f069061553f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f329061553f565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906151c8565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461332590919063ffffffff16565b61332590919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613383565b848461338b565b6001905092915050565b6110b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906151c8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906151c8565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461332590919063ffffffff16565b61332590919063ffffffff16565b601381905550505050565b6112b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906151c8565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae848484613556565b50611470846113bb613383565b61146b85604051806060016040528060288152602001615a5d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b600190509392505050565b611483613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906151c8565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115ca61157f7f0000000000000000000000000000000000000000000000000000000000000000612129565b6115bc6115ab7f0000000000000000000000000000000000000000000000000000000000000000612129565b601554613cd090919063ffffffff16565b613cd090919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613383565b8461168a8560076000611604613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b61338b565b6001905092915050565b6116a1613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906151c8565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906151c8565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906151c8565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614933565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614933565b6040518363ffffffff1660e01b8152600401611a3b929190614f7d565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614933565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614933565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614933565b6040518363ffffffff1660e01b8152600401611bf7929190614f7d565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614933565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906151c8565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906151a8565b60405180910390fd5b600080600090505b84849050811015611e7d57848482818110611e5657611e55615647565b5b9050602002013582611e689190615348565b91508080611e7590615571565b915050611e38565b5080611e8883612129565b1015611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906150a8565b60405180910390fd5b611f1b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561212057611ffe858583818110611f8257611f81615647565b5b90506020020135600660008a8a86818110611fa057611f9f615647565b5b9050602002016020810190611fb59190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b6006600089898581811061201557612014615647565b5b905060200201602081019061202a9190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555086868281811061207b5761207a615647565b5b90506020020160208101906120909190614906565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106120f1576120f0615647565b5b905060200201356040516121059190615228565b60405180910390a3808061211890615571565b915050611f61565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61217a613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906151c8565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b612307613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b906151c8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124609061553f565b80601f016020809104026020016040519081016040528092919081815260200182805461248c9061553f565b80156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006125cc612516613383565b846125c785604051806060016040528060258152602001615a856025913960076000612540613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b6001905092915050565b6125de613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612662906151c8565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b600061269c612695613383565b8484613556565b506001905092915050565b6126af613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906151c8565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127859190615030565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6127ea613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e906151c8565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612969613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ed906151c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a1c90614f32565b60006040518083038185875af1925050503d8060008114612a59576040519150601f19603f3d011682016040523d82523d6000602084013e612a5e565b606091505b5050905080612a6c57600080fd5b50565b612a77613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb906151c8565b60405180910390fd5b8060178190555050565b612b16613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9a906151c8565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612bc8613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4c906151c8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612cbe613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d42906151c8565b60405180910390fd5b8060188190555050565b612d5d613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de1906151c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e51906150c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f1f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906151c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612fe7929190614fa6565b602060405180830381600087803b15801561300157600080fd5b505af1158015613015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130399190614b21565b505050565b613046613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ca906151c8565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61318f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461321c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613213906151c8565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561327357600090506132d5565b6000828461328191906153cf565b9050828482613290919061539e565b146132d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c790615188565b60405180910390fd5b809150505b92915050565b600061331d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613d1a565b905092915050565b60008082846133349190615348565b905083811015613379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337090615108565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f290615208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561346b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613462906150e8565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516135499190615228565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156135c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135be906151e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362e90615088565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136db5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371190615148565b60405180910390fd5b601a60149054906101000a900460ff16156137415761373a848484613d7d565b9050613c65565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137e55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137fd5750601a60189054906101000a900460ff165b1561384857601754821115613847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383e90615168565b60405180910390fd5b5b600061385330612129565b9050600060165482101590508080156138795750601a60149054906101000a900460ff16155b80156138cf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e75750601a60159054906101000a900460ff165b1561391157601a60169054906101000a900460ff16156139075760165491505b61391082613f50565b5b61399a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a805750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a9457613a8f87878761421b565b613a96565b845b9050601a60179054906101000a900460ff168015613afe5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b6357601854613b2182613b1389612129565b61332590919063ffffffff16565b1115613b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5990615128565b60405180910390fd5b5b613bb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c559190615228565b60405180910390a3600193505050505b9392505050565b6000838311158290613cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cab9190615066565b60405180910390fd5b5060008385613cc39190615429565b9050809150509392505050565b6000613d1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c6c565b905092915050565b60008083118290613d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d589190615066565b60405180910390fd5b5060008385613d70919061539e565b9050809150509392505050565b6000613e08826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f3d9190615228565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613f8460145460135461332590919063ffffffff16565b90506000613f9f601054600d5461332590919063ffffffff16565b90506000613fba601154600e5461332590919063ffffffff16565b90506000613ff66002613fe886613fda878a61326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b9050600061400d8287613cd090919063ffffffff16565b9050600047905061401d82614442565b60006140328247613cd090919063ffffffff16565b9050600061405c61404d6002896132db90919063ffffffff16565b89613cd090919063ffffffff16565b90506000614098600261408a8461407c8c8861326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b905060006140c1836140b38a8761326090919063ffffffff16565b6132db90919063ffffffff16565b905060006140ea826140dc8588613cd090919063ffffffff16565b613cd090919063ffffffff16565b9050600082111561415f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561415d573d6000803e3d6000fd5b505b60008111156141d257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141d0573d6000803e3d6000fd5b505b6000831180156141e25750600088115b156141f2576141f188846146cd565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142a35761429c606461428e6013548661326090919063ffffffff16565b6132db90919063ffffffff16565b9050614321565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143205761431d606461430f6014548661326090919063ffffffff16565b6132db90919063ffffffff16565b90505b5b60008111156144255761437c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161441c9190615228565b60405180910390a35b6144388184613cd090919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561445f5761445e615676565b5b60405190808252806020026020018201604052801561448d5781602001602082028036833780820191505090505b50905030816000815181106144a5576144a4615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561454757600080fd5b505afa15801561455b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061457f9190614933565b8160018151811061459357614592615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161465e959493929190615273565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516146c1929190615243565b60405180910390a15050565b6146fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161478396959493929190614fcf565b6060604051808303818588803b15801561479c57600080fd5b505af11580156147b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906147d59190614bce565b5050505050565b6000813590506147eb81615a17565b92915050565b60008151905061480081615a17565b92915050565b60008083601f84011261481c5761481b6156aa565b5b8235905067ffffffffffffffff811115614839576148386156a5565b5b602083019150836020820283011115614855576148546156af565b5b9250929050565b60008083601f840112614872576148716156aa565b5b8235905067ffffffffffffffff81111561488f5761488e6156a5565b5b6020830191508360208202830111156148ab576148aa6156af565b5b9250929050565b6000813590506148c181615a2e565b92915050565b6000815190506148d681615a2e565b92915050565b6000813590506148eb81615a45565b92915050565b60008151905061490081615a45565b92915050565b60006020828403121561491c5761491b6156b9565b5b600061492a848285016147dc565b91505092915050565b600060208284031215614949576149486156b9565b5b6000614957848285016147f1565b91505092915050565b60008060408385031215614977576149766156b9565b5b6000614985858286016147dc565b9250506020614996858286016147dc565b9150509250929050565b6000806000606084860312156149b9576149b86156b9565b5b60006149c7868287016147dc565b93505060206149d8868287016147dc565b92505060406149e9868287016148dc565b9150509250925092565b60008060408385031215614a0a57614a096156b9565b5b6000614a18858286016147dc565b9250506020614a29858286016148b2565b9150509250929050565b60008060408385031215614a4a57614a496156b9565b5b6000614a58858286016147dc565b9250506020614a69858286016148dc565b9150509250929050565b60008060008060408587031215614a8d57614a8c6156b9565b5b600085013567ffffffffffffffff811115614aab57614aaa6156b4565b5b614ab787828801614806565b9450945050602085013567ffffffffffffffff811115614ada57614ad96156b4565b5b614ae68782880161485c565b925092505092959194509250565b600060208284031215614b0a57614b096156b9565b5b6000614b18848285016148b2565b91505092915050565b600060208284031215614b3757614b366156b9565b5b6000614b45848285016148c7565b91505092915050565b600060208284031215614b6457614b636156b9565b5b6000614b72848285016148dc565b91505092915050565b600080600060608486031215614b9457614b936156b9565b5b6000614ba2868287016148dc565b9350506020614bb3868287016148dc565b9250506040614bc4868287016148dc565b9150509250925092565b600080600060608486031215614be757614be66156b9565b5b6000614bf5868287016148f1565b9350506020614c06868287016148f1565b9250506040614c17868287016148f1565b9150509250925092565b6000614c2d8383614c48565b60208301905092915050565b614c428161546f565b82525050565b614c518161545d565b82525050565b614c608161545d565b82525050565b6000614c71826152f8565b614c7b818561531b565b9350614c86836152e8565b8060005b83811015614cb7578151614c9e8882614c21565b9750614ca98361530e565b925050600181019050614c8a565b5085935050505092915050565b614ccd81615481565b82525050565b614cdc816154c4565b82525050565b614ceb816154d6565b82525050565b6000614cfc82615303565b614d068185615337565b9350614d1681856020860161550c565b614d1f816156be565b840191505092915050565b6000614d37602383615337565b9150614d42826156cf565b604082019050919050565b6000614d5a601b83615337565b9150614d658261571e565b602082019050919050565b6000614d7d602683615337565b9150614d8882615747565b604082019050919050565b6000614da0602283615337565b9150614dab82615796565b604082019050919050565b6000614dc3601b83615337565b9150614dce826157e5565b602082019050919050565b6000614de6602583615337565b9150614df18261580e565b604082019050919050565b6000614e09601d83615337565b9150614e148261585d565b602082019050919050565b6000614e2c602883615337565b9150614e3782615886565b604082019050919050565b6000614e4f602183615337565b9150614e5a826158d5565b604082019050919050565b6000614e72601683615337565b9150614e7d82615924565b602082019050919050565b6000614e95602083615337565b9150614ea08261594d565b602082019050919050565b6000614eb8602583615337565b9150614ec382615976565b604082019050919050565b6000614edb60008361532c565b9150614ee6826159c5565b600082019050919050565b6000614efe602483615337565b9150614f09826159c8565b604082019050919050565b614f1d816154ad565b82525050565b614f2c816154b7565b82525050565b6000614f3d82614ece565b9150819050919050565b6000602082019050614f5c6000830184614c57565b92915050565b6000602082019050614f776000830184614c39565b92915050565b6000604082019050614f926000830185614c57565b614f9f6020830184614c57565b9392505050565b6000604082019050614fbb6000830185614c57565b614fc86020830184614f14565b9392505050565b600060c082019050614fe46000830189614c57565b614ff16020830188614f14565b614ffe6040830187614ce2565b61500b6060830186614ce2565b6150186080830185614c57565b61502560a0830184614f14565b979650505050505050565b60006020820190506150456000830184614cc4565b92915050565b60006020820190506150606000830184614cd3565b92915050565b600060208201905081810360008301526150808184614cf1565b905092915050565b600060208201905081810360008301526150a181614d2a565b9050919050565b600060208201905081810360008301526150c181614d4d565b9050919050565b600060208201905081810360008301526150e181614d70565b9050919050565b6000602082019050818103600083015261510181614d93565b9050919050565b6000602082019050818103600083015261512181614db6565b9050919050565b6000602082019050818103600083015261514181614dd9565b9050919050565b6000602082019050818103600083015261516181614dfc565b9050919050565b6000602082019050818103600083015261518181614e1f565b9050919050565b600060208201905081810360008301526151a181614e42565b9050919050565b600060208201905081810360008301526151c181614e65565b9050919050565b600060208201905081810360008301526151e181614e88565b9050919050565b6000602082019050818103600083015261520181614eab565b9050919050565b6000602082019050818103600083015261522181614ef1565b9050919050565b600060208201905061523d6000830184614f14565b92915050565b60006040820190506152586000830185614f14565b818103602083015261526a8184614c66565b90509392505050565b600060a0820190506152886000830188614f14565b6152956020830187614ce2565b81810360408301526152a78186614c66565b90506152b66060830185614c57565b6152c36080830184614f14565b9695505050505050565b60006020820190506152e26000830184614f23565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615353826154ad565b915061535e836154ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615393576153926155ba565b5b828201905092915050565b60006153a9826154ad565b91506153b4836154ad565b9250826153c4576153c36155e9565b5b828204905092915050565b60006153da826154ad565b91506153e5836154ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561541e5761541d6155ba565b5b828202905092915050565b6000615434826154ad565b915061543f836154ad565b925082821015615452576154516155ba565b5b828203905092915050565b60006154688261548d565b9050919050565b600061547a8261548d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154cf826154e8565b9050919050565b60006154e1826154ad565b9050919050565b60006154f3826154fa565b9050919050565b60006155058261548d565b9050919050565b60005b8381101561552a57808201518184015260208101905061550f565b83811115615539576000848401525b50505050565b6000600282049050600182168061555757607f821691505b6020821081141561556b5761556a615618565b5b50919050565b600061557c826154ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155af576155ae6155ba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a208161545d565b8114615a2b57600080fd5b50565b615a3781615481565b8114615a4257600080fd5b50565b615a4e816154ad565b8114615a5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a8044cdbfe18186f9e16f1cb5b198f8b3f0c65d5e893038c38b69f13c4475db464736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea9190615066565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614b7b565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e9190614f47565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614a33565b61108d565b60405161047b9190615030565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906149f3565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf919061504b565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa9190615228565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614b7b565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e91906149f3565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b6040516105779190615228565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906149a0565b6113a1565b6040516105b49190615030565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614af4565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b6040516106089190614f47565b60405180910390f35b34801561061d57600080fd5b50610626611551565b6040516106339190615228565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906152cd565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614a33565b6115e6565b60405161069b9190615030565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614b4e565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614906565b611738565b6040516107019190615030565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615030565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614906565b61176b565b005b34801561076a57600080fd5b50610773611844565b6040516107809190615228565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614906565b61184a565b6040516107bd9190615030565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614906565b61186a565b6040516107fa9190614f47565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614a73565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614906565b612129565b6040516108609190615228565b60405180910390f35b34801561087557600080fd5b5061087e612172565b005b34801561088c57600080fd5b506108956122c7565b6040516108a29190614f62565b60405180910390f35b3480156108b757600080fd5b506108c06122ed565b6040516108cd9190615228565b60405180910390f35b3480156108e257600080fd5b506108eb6122f3565b6040516108f89190615228565b60405180910390f35b34801561090d57600080fd5b506109166122f9565b6040516109239190615228565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906149f3565b6122ff565b005b34801561096157600080fd5b5061096a6123ef565b6040516109779190615030565b60405180910390f35b34801561098c57600080fd5b50610995612402565b6040516109a29190615228565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614906565b612408565b6040516109df9190615030565b60405180910390f35b3480156109f457600080fd5b506109fd612428565b604051610a0a9190614f47565b60405180910390f35b348015610a1f57600080fd5b50610a28612451565b604051610a359190615066565b60405180910390f35b348015610a4a57600080fd5b50610a536124e3565b604051610a609190614f47565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614a33565b612509565b604051610a9d9190615030565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614af4565b6125d6565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614a33565b612688565b604051610b039190615030565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614af4565b6126a7565b005b348015610b4157600080fd5b50610b4a612790565b604051610b579190615228565b60405180910390f35b348015610b6c57600080fd5b50610b75612796565b604051610b829190614f47565b60405180910390f35b348015610b9757600080fd5b50610ba06127bc565b604051610bad9190615228565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614906565b6127c2565b604051610bea9190615030565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614906565b6127e2565b005b348015610c2857600080fd5b50610c316128bb565b604051610c3e9190615228565b60405180910390f35b348015610c5357600080fd5b50610c5c6128c1565b604051610c699190615030565b60405180910390f35b348015610c7e57600080fd5b50610c876128d4565b604051610c949190615228565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614960565b6128da565b604051610cd19190615228565b60405180910390f35b348015610ce657600080fd5b50610cef612961565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614b4e565b612a6f565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614af4565b612b0e565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d6591906149f3565b612bc0565b005b348015610d7857600080fd5b50610d81612cb0565b604051610d8e9190615228565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614b4e565b612cb6565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614906565b612d55565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614a33565b612f17565b005b348015610e1e57600080fd5b50610e396004803603810190610e3491906149f3565b61303e565b005b348015610e4757600080fd5b50610e5061312e565b604051610e5d9190615030565b60405180910390f35b348015610e7257600080fd5b50610e7b613141565b604051610e889190614f62565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614906565b613167565b604051610ec59190615030565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614906565b613187565b005b606060018054610f069061553f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f329061553f565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906151c8565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461332590919063ffffffff16565b61332590919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613383565b848461338b565b6001905092915050565b6110b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906151c8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906151c8565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461332590919063ffffffff16565b61332590919063ffffffff16565b601381905550505050565b6112b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906151c8565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae848484613556565b50611470846113bb613383565b61146b85604051806060016040528060288152602001615a5d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b600190509392505050565b611483613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906151c8565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006115ca61157f7f0000000000000000000000000000000000000000000000000000000000000000612129565b6115bc6115ab7f000000000000000000000000000000000000000000000000000000000000dead612129565b601554613cd090919063ffffffff16565b613cd090919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613383565b8461168a8560076000611604613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b61338b565b6001905092915050565b6116a1613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906151c8565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906151c8565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906151c8565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614933565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614933565b6040518363ffffffff1660e01b8152600401611a3b929190614f7d565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614933565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614933565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614933565b6040518363ffffffff1660e01b8152600401611bf7929190614f7d565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614933565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906151c8565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906151a8565b60405180910390fd5b600080600090505b84849050811015611e7d57848482818110611e5657611e55615647565b5b9050602002013582611e689190615348565b91508080611e7590615571565b915050611e38565b5080611e8883612129565b1015611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906150a8565b60405180910390fd5b611f1b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561212057611ffe858583818110611f8257611f81615647565b5b90506020020135600660008a8a86818110611fa057611f9f615647565b5b9050602002016020810190611fb59190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b6006600089898581811061201557612014615647565b5b905060200201602081019061202a9190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555086868281811061207b5761207a615647565b5b90506020020160208101906120909190614906565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106120f1576120f0615647565b5b905060200201356040516121059190615228565b60405180910390a3808061211890615571565b915050611f61565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61217a613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906151c8565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b612307613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b906151c8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124609061553f565b80601f016020809104026020016040519081016040528092919081815260200182805461248c9061553f565b80156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006125cc612516613383565b846125c785604051806060016040528060258152602001615a856025913960076000612540613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b6001905092915050565b6125de613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612662906151c8565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b600061269c612695613383565b8484613556565b506001905092915050565b6126af613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906151c8565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127859190615030565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6127ea613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e906151c8565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612969613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ed906151c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a1c90614f32565b60006040518083038185875af1925050503d8060008114612a59576040519150601f19603f3d011682016040523d82523d6000602084013e612a5e565b606091505b5050905080612a6c57600080fd5b50565b612a77613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb906151c8565b60405180910390fd5b8060178190555050565b612b16613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9a906151c8565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612bc8613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4c906151c8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612cbe613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d42906151c8565b60405180910390fd5b8060188190555050565b612d5d613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de1906151c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e51906150c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f1f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906151c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612fe7929190614fa6565b602060405180830381600087803b15801561300157600080fd5b505af1158015613015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130399190614b21565b505050565b613046613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ca906151c8565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61318f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461321c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613213906151c8565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561327357600090506132d5565b6000828461328191906153cf565b9050828482613290919061539e565b146132d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c790615188565b60405180910390fd5b809150505b92915050565b600061331d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613d1a565b905092915050565b60008082846133349190615348565b905083811015613379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337090615108565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f290615208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561346b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613462906150e8565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516135499190615228565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156135c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135be906151e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362e90615088565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136db5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371190615148565b60405180910390fd5b601a60149054906101000a900460ff16156137415761373a848484613d7d565b9050613c65565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137e55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137fd5750601a60189054906101000a900460ff165b1561384857601754821115613847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383e90615168565b60405180910390fd5b5b600061385330612129565b9050600060165482101590508080156138795750601a60149054906101000a900460ff16155b80156138cf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e75750601a60159054906101000a900460ff165b1561391157601a60169054906101000a900460ff16156139075760165491505b61391082613f50565b5b61399a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a805750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a9457613a8f87878761421b565b613a96565b845b9050601a60179054906101000a900460ff168015613afe5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b6357601854613b2182613b1389612129565b61332590919063ffffffff16565b1115613b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5990615128565b60405180910390fd5b5b613bb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c559190615228565b60405180910390a3600193505050505b9392505050565b6000838311158290613cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cab9190615066565b60405180910390fd5b5060008385613cc39190615429565b9050809150509392505050565b6000613d1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c6c565b905092915050565b60008083118290613d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d589190615066565b60405180910390fd5b5060008385613d70919061539e565b9050809150509392505050565b6000613e08826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f3d9190615228565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613f8460145460135461332590919063ffffffff16565b90506000613f9f601054600d5461332590919063ffffffff16565b90506000613fba601154600e5461332590919063ffffffff16565b90506000613ff66002613fe886613fda878a61326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b9050600061400d8287613cd090919063ffffffff16565b9050600047905061401d82614442565b60006140328247613cd090919063ffffffff16565b9050600061405c61404d6002896132db90919063ffffffff16565b89613cd090919063ffffffff16565b90506000614098600261408a8461407c8c8861326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b905060006140c1836140b38a8761326090919063ffffffff16565b6132db90919063ffffffff16565b905060006140ea826140dc8588613cd090919063ffffffff16565b613cd090919063ffffffff16565b9050600082111561415f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561415d573d6000803e3d6000fd5b505b60008111156141d257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141d0573d6000803e3d6000fd5b505b6000831180156141e25750600088115b156141f2576141f188846146cd565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142a35761429c606461428e6013548661326090919063ffffffff16565b6132db90919063ffffffff16565b9050614321565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143205761431d606461430f6014548661326090919063ffffffff16565b6132db90919063ffffffff16565b90505b5b60008111156144255761437c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161441c9190615228565b60405180910390a35b6144388184613cd090919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561445f5761445e615676565b5b60405190808252806020026020018201604052801561448d5781602001602082028036833780820191505090505b50905030816000815181106144a5576144a4615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561454757600080fd5b505afa15801561455b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061457f9190614933565b8160018151811061459357614592615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161465e959493929190615273565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516146c1929190615243565b60405180910390a15050565b6146fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161478396959493929190614fcf565b6060604051808303818588803b15801561479c57600080fd5b505af11580156147b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906147d59190614bce565b5050505050565b6000813590506147eb81615a17565b92915050565b60008151905061480081615a17565b92915050565b60008083601f84011261481c5761481b6156aa565b5b8235905067ffffffffffffffff811115614839576148386156a5565b5b602083019150836020820283011115614855576148546156af565b5b9250929050565b60008083601f840112614872576148716156aa565b5b8235905067ffffffffffffffff81111561488f5761488e6156a5565b5b6020830191508360208202830111156148ab576148aa6156af565b5b9250929050565b6000813590506148c181615a2e565b92915050565b6000815190506148d681615a2e565b92915050565b6000813590506148eb81615a45565b92915050565b60008151905061490081615a45565b92915050565b60006020828403121561491c5761491b6156b9565b5b600061492a848285016147dc565b91505092915050565b600060208284031215614949576149486156b9565b5b6000614957848285016147f1565b91505092915050565b60008060408385031215614977576149766156b9565b5b6000614985858286016147dc565b9250506020614996858286016147dc565b9150509250929050565b6000806000606084860312156149b9576149b86156b9565b5b60006149c7868287016147dc565b93505060206149d8868287016147dc565b92505060406149e9868287016148dc565b9150509250925092565b60008060408385031215614a0a57614a096156b9565b5b6000614a18858286016147dc565b9250506020614a29858286016148b2565b9150509250929050565b60008060408385031215614a4a57614a496156b9565b5b6000614a58858286016147dc565b9250506020614a69858286016148dc565b9150509250929050565b60008060008060408587031215614a8d57614a8c6156b9565b5b600085013567ffffffffffffffff811115614aab57614aaa6156b4565b5b614ab787828801614806565b9450945050602085013567ffffffffffffffff811115614ada57614ad96156b4565b5b614ae68782880161485c565b925092505092959194509250565b600060208284031215614b0a57614b096156b9565b5b6000614b18848285016148b2565b91505092915050565b600060208284031215614b3757614b366156b9565b5b6000614b45848285016148c7565b91505092915050565b600060208284031215614b6457614b636156b9565b5b6000614b72848285016148dc565b91505092915050565b600080600060608486031215614b9457614b936156b9565b5b6000614ba2868287016148dc565b9350506020614bb3868287016148dc565b9250506040614bc4868287016148dc565b9150509250925092565b600080600060608486031215614be757614be66156b9565b5b6000614bf5868287016148f1565b9350506020614c06868287016148f1565b9250506040614c17868287016148f1565b9150509250925092565b6000614c2d8383614c48565b60208301905092915050565b614c428161546f565b82525050565b614c518161545d565b82525050565b614c608161545d565b82525050565b6000614c71826152f8565b614c7b818561531b565b9350614c86836152e8565b8060005b83811015614cb7578151614c9e8882614c21565b9750614ca98361530e565b925050600181019050614c8a565b5085935050505092915050565b614ccd81615481565b82525050565b614cdc816154c4565b82525050565b614ceb816154d6565b82525050565b6000614cfc82615303565b614d068185615337565b9350614d1681856020860161550c565b614d1f816156be565b840191505092915050565b6000614d37602383615337565b9150614d42826156cf565b604082019050919050565b6000614d5a601b83615337565b9150614d658261571e565b602082019050919050565b6000614d7d602683615337565b9150614d8882615747565b604082019050919050565b6000614da0602283615337565b9150614dab82615796565b604082019050919050565b6000614dc3601b83615337565b9150614dce826157e5565b602082019050919050565b6000614de6602583615337565b9150614df18261580e565b604082019050919050565b6000614e09601d83615337565b9150614e148261585d565b602082019050919050565b6000614e2c602883615337565b9150614e3782615886565b604082019050919050565b6000614e4f602183615337565b9150614e5a826158d5565b604082019050919050565b6000614e72601683615337565b9150614e7d82615924565b602082019050919050565b6000614e95602083615337565b9150614ea08261594d565b602082019050919050565b6000614eb8602583615337565b9150614ec382615976565b604082019050919050565b6000614edb60008361532c565b9150614ee6826159c5565b600082019050919050565b6000614efe602483615337565b9150614f09826159c8565b604082019050919050565b614f1d816154ad565b82525050565b614f2c816154b7565b82525050565b6000614f3d82614ece565b9150819050919050565b6000602082019050614f5c6000830184614c57565b92915050565b6000602082019050614f776000830184614c39565b92915050565b6000604082019050614f926000830185614c57565b614f9f6020830184614c57565b9392505050565b6000604082019050614fbb6000830185614c57565b614fc86020830184614f14565b9392505050565b600060c082019050614fe46000830189614c57565b614ff16020830188614f14565b614ffe6040830187614ce2565b61500b6060830186614ce2565b6150186080830185614c57565b61502560a0830184614f14565b979650505050505050565b60006020820190506150456000830184614cc4565b92915050565b60006020820190506150606000830184614cd3565b92915050565b600060208201905081810360008301526150808184614cf1565b905092915050565b600060208201905081810360008301526150a181614d2a565b9050919050565b600060208201905081810360008301526150c181614d4d565b9050919050565b600060208201905081810360008301526150e181614d70565b9050919050565b6000602082019050818103600083015261510181614d93565b9050919050565b6000602082019050818103600083015261512181614db6565b9050919050565b6000602082019050818103600083015261514181614dd9565b9050919050565b6000602082019050818103600083015261516181614dfc565b9050919050565b6000602082019050818103600083015261518181614e1f565b9050919050565b600060208201905081810360008301526151a181614e42565b9050919050565b600060208201905081810360008301526151c181614e65565b9050919050565b600060208201905081810360008301526151e181614e88565b9050919050565b6000602082019050818103600083015261520181614eab565b9050919050565b6000602082019050818103600083015261522181614ef1565b9050919050565b600060208201905061523d6000830184614f14565b92915050565b60006040820190506152586000830185614f14565b818103602083015261526a8184614c66565b90509392505050565b600060a0820190506152886000830188614f14565b6152956020830187614ce2565b81810360408301526152a78186614c66565b90506152b66060830185614c57565b6152c36080830184614f14565b9695505050505050565b60006020820190506152e26000830184614f23565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615353826154ad565b915061535e836154ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615393576153926155ba565b5b828201905092915050565b60006153a9826154ad565b91506153b4836154ad565b9250826153c4576153c36155e9565b5b828204905092915050565b60006153da826154ad565b91506153e5836154ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561541e5761541d6155ba565b5b828202905092915050565b6000615434826154ad565b915061543f836154ad565b925082821015615452576154516155ba565b5b828203905092915050565b60006154688261548d565b9050919050565b600061547a8261548d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154cf826154e8565b9050919050565b60006154e1826154ad565b9050919050565b60006154f3826154fa565b9050919050565b60006155058261548d565b9050919050565b60005b8381101561552a57808201518184015260208101905061550f565b83811115615539576000848401525b50505050565b6000600282049050600182168061555757607f821691505b6020821081141561556b5761556a615618565b5b50919050565b600061557c826154ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155af576155ae6155ba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a208161545d565b8114615a2b57600080fd5b50565b615a3781615481565b8114615a4257600080fd5b50565b615a4e816154ad565b8114615a5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a8044cdbfe18186f9e16f1cb5b198f8b3f0c65d5e893038c38b69f13c4475db464736f6c63430008070033
Deployed Bytecode Sourcemap
12306:16574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16318:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21391:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12855:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17484:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20059:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13990:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16595:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21074:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18417:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13431:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21985:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18794:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12767:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19895:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16504:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16981:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19025:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13129:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14105:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19157:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13566:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13072:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20318:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28172:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16703:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3983:230;;;;;;;;;;;;;:::i;:::-;;12524:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13844:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13916:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13650:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17998:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14248:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13479:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13289:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3758:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16409:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12722:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17207:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19758:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21810:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19579:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13388:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14038:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13522:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13230:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19297:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13755:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14152:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13346:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16830:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24347:154;;;;;;;;;;;;;:::i;:::-;;18675:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18560:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18135:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13611:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18915:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4221:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24200:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18278:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14206:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12623:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13181:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19439:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16318:83;16355:13;16388:5;16381:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16318:83;:::o;21391:317::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21513:10:::1;21493:17;:30;;;;21554:10;21534:17;:30;;;;21595:10;21575:17;:30;;;;21637:63;21682:17;;21637:40;21659:17;;21637;;:21;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;21616:18;:84;;;;21391:317:::0;;;:::o;12855:81::-;;;:::o;17484:161::-;17559:4;17576:39;17585:12;:10;:12::i;:::-;17599:7;17608:6;17576:8;:39::i;:::-;17633:4;17626:11;;17484:161;;;;:::o;20059:113::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20157:7:::1;20139:9;:15;20149:4;20139:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20059:113:::0;;:::o;13990:41::-;;;;;;;;;;;;;:::o;16595:100::-;16648:7;16675:12;;16668:19;;16595:100;:::o;21074:309::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21194:10:::1;21175:16;:29;;;;21234:10;21215:16;:29;;;;21274:10;21255:16;:29;;;;21315:60;21358:16;;21315:38;21336:16;;21315;;:20;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;21295:17;:80;;;;21074:309:::0;;;:::o;18417:135::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18538:6:::1;18508:19;:27;18528:6;18508:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18417:135:::0;;:::o;13431:35::-;;;;:::o;21985:313::-;22083:4;22100:36;22110:6;22118:9;22129:6;22100:9;:36::i;:::-;;22147:121;22156:6;22164:12;:10;:12::i;:::-;22178:89;22216:6;22178:89;;;;;;;;;;;;;;;;;:11;:19;22190:6;22178:19;;;;;;;;;;;;;;;:33;22198:12;:10;:12::i;:::-;22178:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22147:8;:121::i;:::-;22286:4;22279:11;;21985:313;;;;;:::o;18794:113::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18891:8:::1;18872:16;;:27;;;;;;;;;;;;;;;;;;18794:113:::0;:::o;12767:81::-;;;:::o;19895:156::-;19948:7;19975:68;20020:22;20030:11;20020:9;:22::i;:::-;19975:40;19992:22;20002:11;19992:9;:22::i;:::-;19975:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;19968:75;;19895:156;:::o;16504:83::-;16545:5;16570:9;;;;;;;;;;;16563:16;;16504:83;:::o;16981:218::-;17069:4;17086:83;17095:12;:10;:12::i;:::-;17109:7;17118:50;17157:10;17118:11;:25;17130:12;:10;:12::i;:::-;17118:25;;;;;;;;;;;;;;;:34;17144:7;17118:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17086:8;:83::i;:::-;17187:4;17180:11;;16981:218;;;;:::o;19025:124::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19133:8:::1;19107:23;:34;;;;19025:124:::0;:::o;13129:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14105:40::-;;;;;;;;;;;;;:::o;19157:132::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19270:10:::1;19244:15;;:37;;;;;;;;;;;;;;;;;;19157:132:::0;:::o;13566:36::-;;;;:::o;13072:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20318:748::-;20398:22;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20435:35:::1;20492:16;20435:74;;20558:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20540:53;;;20602:4;20609:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20540:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20523:110;;20675:1;20649:28;;:14;:28;;;20646:225;;;20763:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20745:74;;;20828:4;20835:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20745:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20728:131;;20646:225;20897:14;20883:11;;:28;;;;;;;;;;;;;;;;;;20963:16;20945:15;;:34;;;;;;;;;;;;;;;;;;21054:4;21017:12;:34;21038:11;;;;;;;;;;;21017:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20422:644;20318:748:::0;;;:::o;28172:697::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28272:15:::1;28290:10;28272:28;;28338:7;;:14;;28319:8;;:15;;:33;28311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28389:15;28419:6:::0;28428:1:::1;28419:10;;28415:92;28435:7;;:14;;28431:1;:18;28415:92;;;28485:7;;28493:1;28485:10;;;;;;;:::i;:::-;;;;;;;;28471:24;;;;;:::i;:::-;;;28451:3;;;;;:::i;:::-;;;;28415:92;;;;28547:10;28525:18;28535:7;28525:9;:18::i;:::-;:32;;28517:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28620:34;28643:10;28620:9;:18;28630:7;28620:18;;;;;;;;;;;;;;;;:22;;:34;;;;:::i;:::-;28599:9;:18;28609:7;28599:18;;;;;;;;;;;;;;;:55;;;;28670:6;28666:194;28686:8;;:15;;28682:1;:19;28666:194;;;28748:38;28775:7;;28783:1;28775:10;;;;;;;:::i;:::-;;;;;;;;28748:9;:22;28758:8;;28767:1;28758:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28748:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;28723:9;:22;28733:8;;28742:1;28733:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28723:22;;;;;;;;;;;;;;;:63;;;;28824:8;;28833:1;28824:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28806:42;;28815:7;28806:42;;;28837:7;;28845:1;28837:10;;;;;;;:::i;:::-;;;;;;;;28806:42;;;;;;:::i;:::-;;;;;;;;28703:3;;;;;:::i;:::-;;;;28666:194;;;;28261:608;;28172:697:::0;;;;:::o;16703:119::-;16769:7;16796:9;:18;16806:7;16796:18;;;;;;;;;;;;;;;;16789:25;;16703:119;;;:::o;3983:230::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4090:42:::1;4053:81;;4074:6;::::0;::::1;;;;;;;;4053:81;;;;;;;;;;;;4162:42;4145:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3983:230::o:0;12524:92::-;;;;;;;;;;;;;:::o;13844:59::-;;;;:::o;13916:58::-;;;;:::o;13650:33::-;;;;:::o;17998:129::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18111:8:::1;18087:12;:21;18100:7;18087:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17998:129:::0;;:::o;14248:41::-;;;;;;;;;;;;;:::o;13479:36::-;;;;:::o;13289:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3758:79::-;3796:7;3823:6;;;;;;;;;;;3816:13;;3758:79;:::o;16409:87::-;16448:13;16481:7;16474:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16409:87;:::o;12722:32::-;;;;;;;;;;;;;:::o;17207:269::-;17300:4;17317:129;17326:12;:10;:12::i;:::-;17340:7;17349:96;17388:15;17349:96;;;;;;;;;;;;;;;;;:11;:25;17361:12;:10;:12::i;:::-;17349:25;;;;;;;;;;;;;;;:34;17375:7;17349:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17317:8;:129::i;:::-;17464:4;17457:11;;17207:269;;;;:::o;19758:125::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19867:8:::1;19839:25;;:36;;;;;;;;;;;;;;;;;;19758:125:::0;:::o;21810:167::-;21888:4;21905:42;21915:12;:10;:12::i;:::-;21929:9;21940:6;21905:9;:42::i;:::-;;21965:4;21958:11;;21810:167;;;;:::o;19579:171::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19680:8:::1;19656:21;;:32;;;;;;;;;;;;;;;;;;19704:38;19733:8;19704:38;;;;;;:::i;:::-;;;;;;;;19579:171:::0;:::o;13388:36::-;;;;:::o;14038:26::-;;;;;;;;;;;;;:::o;13522:37::-;;;;:::o;13230:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;19297:134::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19412:10:::1;19384:17;;:39;;;;;;;;;;;;;;;;;;19297:134:::0;:::o;13755:69::-;;;;:::o;14152:45::-;;;;;;;;;;;;;:::o;13346:35::-;;;;:::o;16830:143::-;16911:7;16938:11;:18;16950:5;16938:18;;;;;;;;;;;;;;;:27;16957:7;16938:27;;;;;;;;;;;;;;;;16931:34;;16830:143;;;;:::o;24347:154::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24401:7:::1;24421:10;24413:24;;24445:21;24413:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24400:71;;;24490:2;24482:11;;;::::0;::::1;;24389:112;24347:154::o:0;18675:111::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18767:11:::1;18752:12;:26;;;;18675:111:::0;:::o;18560:107::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18652:7:::1;18627:22;;:32;;;;;;;;;;;;;;;;;;18560:107:::0;:::o;18135:135::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18254:8:::1;18225:17;:26;18243:7;18225:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18135:135:::0;;:::o;13611:32::-;;;;:::o;18915:102::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19001:8:::1;18987:10;:22;;;;18915:102:::0;:::o;4221:244::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4330:1:::1;4310:22;;:8;:22;;;;4302:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4420:8;4391:38;;4412:6;::::0;::::1;;;;;;;;4391:38;;;;;;;;;;;;4449:8;4440:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4221:244:::0;:::o;24200:139::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24295:6:::1;24288:23;;;24312:10;24323:7;24288:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24200:139:::0;;:::o;18278:127::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18391:6:::1;18365:15;:23;18381:6;18365:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18278:127:::0;;:::o;14206:35::-;;;;;;;;;;;;;:::o;12623:92::-;;;;;;;;;;;;;:::o;13181:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;19439:132::-;3902:12;:10;:12::i;:::-;3892:22;;:6;;;;;;;;;;:22;;;3884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19552:10:::1;19526:15;;:37;;;;;;;;;;;;;;;;;;19439:132:::0;:::o;2443:250::-;2501:7;2530:1;2525;:6;2521:47;;;2555:1;2548:8;;;;2521:47;2580:9;2596:1;2592;:5;;;;:::i;:::-;2580:17;;2625:1;2620;2616;:5;;;;:::i;:::-;:10;2608:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2684:1;2677:8;;;2443:250;;;;;:::o;2701:132::-;2759:7;2786:39;2790:1;2793;2786:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2779:46;;2701:132;;;;:::o;1910:181::-;1968:7;1988:9;2004:1;2000;:5;;;;:::i;:::-;1988:17;;2029:1;2024;:6;;2016:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2082:1;2075:8;;;1910:181;;;;:::o;968:115::-;1021:15;1064:10;1049:26;;968:115;:::o;17653:337::-;17763:1;17746:19;;:5;:19;;;;17738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17844:1;17825:21;;:7;:21;;;;17817:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17928:6;17898:11;:18;17910:5;17898:18;;;;;;;;;;;;;;;:27;17917:7;17898:27;;;;;;;;;;;;;;;:36;;;;17966:7;17950:32;;17959:5;17950:32;;;17975:6;17950:32;;;;;;:::i;:::-;;;;;;;;17653:337;;;:::o;22306:1886::-;22393:4;22438:1;22420:20;;:6;:20;;;;22412:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22522:1;22501:23;;:9;:23;;;;22493:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22584:9;:17;22594:6;22584:17;;;;;;;;;;;;;;;;;;;;;;;;;22583:18;:43;;;;;22606:9;:20;22616:9;22606:20;;;;;;;;;;;;;;;;;;;;;;;;;22605:21;22583:43;22575:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;22676:16;;;;;;;;;;;22673:1502;;;22726:41;22741:6;22749:9;22760:6;22726:14;:41::i;:::-;22719:48;;;;22673:1502;22825:15;:23;22841:6;22825:23;;;;;;;;;;;;;;;;;;;;;;;;;22824:24;:55;;;;;22853:15;:26;22869:9;22853:26;;;;;;;;;;;;;;;;;;;;;;;;;22852:27;22824:55;:81;;;;;22883:22;;;;;;;;;;;22824:81;22821:196;;;22944:12;;22934:6;:22;;22926:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22821:196;23033:28;23064:24;23082:4;23064:9;:24::i;:::-;23033:55;;23103:28;23158:23;;23134:20;:47;;23103:78;;23214:23;:44;;;;;23242:16;;;;;;;;;;;23241:17;23214:44;:69;;;;;23263:12;:20;23276:6;23263:20;;;;;;;;;;;;;;;;;;;;;;;;;23262:21;23214:69;:94;;;;;23287:21;;;;;;;;;;;23214:94;23210:305;;;23346:25;;;;;;;;;;;23343:97;;;23417:23;;23394:46;;23343:97;23459:36;23474:20;23459:14;:36::i;:::-;23210:305;23551:53;23573:6;23551:53;;;;;;;;;;;;;;;;;:9;:17;23561:6;23551:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23531:9;:17;23541:6;23531:17;;;;;;;;;;;;;;;:73;;;;23621:19;23644:17;:25;23662:6;23644:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23673:17;:28;23691:9;23673:28;;;;;;;;;;;;;;;;;;;;;;;;;23644:57;23643:148;;23757:34;23765:6;23773:9;23784:6;23757:7;:34::i;:::-;23643:148;;;23748:6;23643:148;23621:170;;23811:16;;;;;;;;;;;:51;;;;;23832:19;:30;23852:9;23832:30;;;;;;;;;;;;;;;;;;;;;;;;;23831:31;23811:51;23808:191;;;23932:10;;23891:37;23916:11;23891:20;23901:9;23891;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;23883:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;23808:191;24038:37;24063:11;24038:9;:20;24048:9;24038:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;24015:9;:20;24025:9;24015:20;;;;;;;;;;;;;;;:60;;;;24114:9;24097:40;;24106:6;24097:40;;;24125:11;24097:40;;;;;;:::i;:::-;;;;;;;;24159:4;24152:11;;;;;22306:1886;;;;;;:::o;2243:192::-;2329:7;2362:1;2357;:6;;2365:12;2349:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2389:9;2405:1;2401;:5;;;;:::i;:::-;2389:17;;2426:1;2419:8;;;2243:192;;;;;:::o;2099:136::-;2157:7;2184:43;2188:1;2191;2184:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2177:50;;2099:136;;;;:::o;2841:278::-;2927:7;2959:1;2955;:5;2962:12;2947:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2986:9;3002:1;2998;:5;;;;:::i;:::-;2986:17;;3110:1;3103:8;;;2841:278;;;;;:::o;24509:330::-;24602:4;24639:53;24661:6;24639:53;;;;;;;;;;;;;;;;;:9;:17;24649:6;24639:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24619:9;:17;24629:6;24619:17;;;;;;;;;;;;;;;:73;;;;24726:32;24751:6;24726:9;:20;24736:9;24726:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24703:9;:20;24713:9;24703:20;;;;;;;;;;;;;;;:55;;;;24791:9;24774:35;;24783:6;24774:35;;;24802:6;24774:35;;;;;;:::i;:::-;;;;;;;;24827:4;24820:11;;24509:330;;;;;:::o;24847:1449::-;14733:4;14714:16;;:23;;;;;;;;;;;;;;;;;;24921:19:::1;24943:41;24965:18;;24943:17;;:21;;:41;;;;:::i;:::-;24921:63;;24997:22;25022:39;25043:17;;25022:16;;:20;;:39;;;;:::i;:::-;24997:64;;25072:22;25097:39;25118:17;;25097:16;;:20;;:39;;;;:::i;:::-;25072:64;;25235:18;25256:51;25305:1;25256:44;25288:11;25256:27;25268:14;25256:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;25235:72;;25318:20;25341:23;25353:10;25341:7;:11;;:23;;;;:::i;:::-;25318:46;;25377:22;25403:21;25377:47;;25435:30;25452:12;25435:16;:30::i;:::-;25476:23;25503:41;25529:14;25503:21;:25;;:41;;;;:::i;:::-;25476:68;;25557:19;25579:38;25595:21;25614:1;25595:14;:18;;:21;;;;:::i;:::-;25579:11;:15;;:38;;;;:::i;:::-;25557:60;;25630:26;25659:59;25716:1;25659:52;25699:11;25659:35;25679:14;25659:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;25630:88;;25729:26;25758:52;25798:11;25758:35;25778:14;25758:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;25729:81;;25821:26;25850:63;25894:18;25850:39;25870:18;25850:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;25821:92;;25950:1;25929:18;:22;25926:107;;;25976:15;;;;;;;;;;;25968:33;;:53;26002:18;25968:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25926:107;26069:1;26048:18;:22;26045:107;;;26095:15;;;;;;;;;;;26087:33;;:53;26121:18;26087:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;26045:107;26197:1;26176:18;:22;:40;;;;;26215:1;26202:10;:14;26176:40;26173:116;;;26233:44;26246:10;26258:18;26233:12;:44::i;:::-;26173:116;24908:1388;;;;;;;;;;;14779:5:::0;14760:16;;:24;;;;;;;;;;;;;;;;;;24847:1449;:::o;27513:622::-;27599:7;27629:17;27649:1;27629:21;;27674:12;:20;27687:6;27674:20;;;;;;;;;;;;;;;;;;;;;;;;;27671:223;;;27723:38;27757:3;27723:29;27734:17;;27723:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;27711:50;;27671:223;;;27791:12;:23;27804:9;27791:23;;;;;;;;;;;;;;;;;;;;;;;;;27788:106;;;27843:39;27878:3;27843:30;27854:18;;27843:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27831:51;;27788:106;27671:223;27929:1;27917:9;:13;27914:173;;;27974:39;28003:9;27974;:24;27992:4;27974:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27947:9;:24;27965:4;27947:24;;;;;;;;;;;;;;;:66;;;;28058:4;28033:42;;28042:6;28033:42;;;28065:9;28033:42;;;;;;:::i;:::-;;;;;;;;27914:173;28106:21;28117:9;28106:6;:10;;:21;;;;:::i;:::-;28099:28;;;27513:622;;;;;:::o;26308:666::-;26434:21;26472:1;26458:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26434:40;;26503:4;26485;26490:1;26485:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;26529:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26519:4;26524:1;26519:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;26564:62;26581:4;26596:15;;;;;;;;;;;26614:11;26564:8;:62::i;:::-;26665:15;;;;;;;;;;;:66;;;26746:11;26772:1;26816:4;26843;26879:15;26665:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26931:35;26948:11;26961:4;26931:35;;;;;;;:::i;:::-;;;;;;;;26363:611;26308:666;:::o;26982:523::-;27130:62;27147:4;27162:15;;;;;;;;;;;27180:11;27130:8;:62::i;:::-;27235:15;;;;;;;;;;;:31;;;27274:9;27307:4;27327:11;27353:1;27396;27439:17;;;;;;;;;;;27471:15;27235:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26982:523;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:137::-;1676:5;1707:6;1701:13;1692:22;;1723:30;1747:5;1723:30;:::i;:::-;1622:137;;;;:::o;1765:139::-;1811:5;1849:6;1836:20;1827:29;;1865:33;1892:5;1865:33;:::i;:::-;1765:139;;;;:::o;1910:143::-;1967:5;1998:6;1992:13;1983:22;;2014:33;2041:5;2014:33;:::i;:::-;1910:143;;;;:::o;2059:329::-;2118:6;2167:2;2155:9;2146:7;2142:23;2138:32;2135:119;;;2173:79;;:::i;:::-;2135:119;2293:1;2318:53;2363:7;2354:6;2343:9;2339:22;2318:53;:::i;:::-;2308:63;;2264:117;2059:329;;;;:::o;2394:351::-;2464:6;2513:2;2501:9;2492:7;2488:23;2484:32;2481:119;;;2519:79;;:::i;:::-;2481:119;2639:1;2664:64;2720:7;2711:6;2700:9;2696:22;2664:64;:::i;:::-;2654:74;;2610:128;2394:351;;;;:::o;2751:474::-;2819:6;2827;2876:2;2864:9;2855:7;2851:23;2847:32;2844:119;;;2882:79;;:::i;:::-;2844:119;3002:1;3027:53;3072:7;3063:6;3052:9;3048:22;3027:53;:::i;:::-;3017:63;;2973:117;3129:2;3155:53;3200:7;3191:6;3180:9;3176:22;3155:53;:::i;:::-;3145:63;;3100:118;2751:474;;;;;:::o;3231:619::-;3308:6;3316;3324;3373:2;3361:9;3352:7;3348:23;3344:32;3341:119;;;3379:79;;:::i;:::-;3341:119;3499:1;3524:53;3569:7;3560:6;3549:9;3545:22;3524:53;:::i;:::-;3514:63;;3470:117;3626:2;3652:53;3697:7;3688:6;3677:9;3673:22;3652:53;:::i;:::-;3642:63;;3597:118;3754:2;3780:53;3825:7;3816:6;3805:9;3801:22;3780:53;:::i;:::-;3770:63;;3725:118;3231:619;;;;;:::o;3856:468::-;3921:6;3929;3978:2;3966:9;3957:7;3953:23;3949:32;3946:119;;;3984:79;;:::i;:::-;3946:119;4104:1;4129:53;4174:7;4165:6;4154:9;4150:22;4129:53;:::i;:::-;4119:63;;4075:117;4231:2;4257:50;4299:7;4290:6;4279:9;4275:22;4257:50;:::i;:::-;4247:60;;4202:115;3856:468;;;;;:::o;4330:474::-;4398:6;4406;4455:2;4443:9;4434:7;4430:23;4426:32;4423:119;;;4461:79;;:::i;:::-;4423:119;4581:1;4606:53;4651:7;4642:6;4631:9;4627:22;4606:53;:::i;:::-;4596:63;;4552:117;4708:2;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4679:118;4330:474;;;;;:::o;4810:934::-;4932:6;4940;4948;4956;5005:2;4993:9;4984:7;4980:23;4976:32;4973:119;;;5011:79;;:::i;:::-;4973:119;5159:1;5148:9;5144:17;5131:31;5189:18;5181:6;5178:30;5175:117;;;5211:79;;:::i;:::-;5175:117;5324:80;5396:7;5387:6;5376:9;5372:22;5324:80;:::i;:::-;5306:98;;;;5102:312;5481:2;5470:9;5466:18;5453:32;5512:18;5504:6;5501:30;5498:117;;;5534:79;;:::i;:::-;5498:117;5647:80;5719:7;5710:6;5699:9;5695:22;5647:80;:::i;:::-;5629:98;;;;5424:313;4810:934;;;;;;;:::o;5750:323::-;5806:6;5855:2;5843:9;5834:7;5830:23;5826:32;5823:119;;;5861:79;;:::i;:::-;5823:119;5981:1;6006:50;6048:7;6039:6;6028:9;6024:22;6006:50;:::i;:::-;5996:60;;5952:114;5750:323;;;;:::o;6079:345::-;6146:6;6195:2;6183:9;6174:7;6170:23;6166:32;6163:119;;;6201:79;;:::i;:::-;6163:119;6321:1;6346:61;6399:7;6390:6;6379:9;6375:22;6346:61;:::i;:::-;6336:71;;6292:125;6079:345;;;;:::o;6430:329::-;6489:6;6538:2;6526:9;6517:7;6513:23;6509:32;6506:119;;;6544:79;;:::i;:::-;6506:119;6664:1;6689:53;6734:7;6725:6;6714:9;6710:22;6689:53;:::i;:::-;6679:63;;6635:117;6430:329;;;;:::o;6765:619::-;6842:6;6850;6858;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:53;7103:7;7094:6;7083:9;7079:22;7058:53;:::i;:::-;7048:63;;7004:117;7160:2;7186:53;7231:7;7222:6;7211:9;7207:22;7186:53;:::i;:::-;7176:63;;7131:118;7288:2;7314:53;7359:7;7350:6;7339:9;7335:22;7314:53;:::i;:::-;7304:63;;7259:118;6765:619;;;;;:::o;7390:663::-;7478:6;7486;7494;7543:2;7531:9;7522:7;7518:23;7514:32;7511:119;;;7549:79;;:::i;:::-;7511:119;7669:1;7694:64;7750:7;7741:6;7730:9;7726:22;7694:64;:::i;:::-;7684:74;;7640:128;7807:2;7833:64;7889:7;7880:6;7869:9;7865:22;7833:64;:::i;:::-;7823:74;;7778:129;7946:2;7972:64;8028:7;8019:6;8008:9;8004:22;7972:64;:::i;:::-;7962:74;;7917:129;7390:663;;;;;:::o;8059:179::-;8128:10;8149:46;8191:3;8183:6;8149:46;:::i;:::-;8227:4;8222:3;8218:14;8204:28;;8059:179;;;;:::o;8244:142::-;8347:32;8373:5;8347:32;:::i;:::-;8342:3;8335:45;8244:142;;:::o;8392:108::-;8469:24;8487:5;8469:24;:::i;:::-;8464:3;8457:37;8392:108;;:::o;8506:118::-;8593:24;8611:5;8593:24;:::i;:::-;8588:3;8581:37;8506:118;;:::o;8660:732::-;8779:3;8808:54;8856:5;8808:54;:::i;:::-;8878:86;8957:6;8952:3;8878:86;:::i;:::-;8871:93;;8988:56;9038:5;8988:56;:::i;:::-;9067:7;9098:1;9083:284;9108:6;9105:1;9102:13;9083:284;;;9184:6;9178:13;9211:63;9270:3;9255:13;9211:63;:::i;:::-;9204:70;;9297:60;9350:6;9297:60;:::i;:::-;9287:70;;9143:224;9130:1;9127;9123:9;9118:14;;9083:284;;;9087:14;9383:3;9376:10;;8784:608;;;8660:732;;;;:::o;9398:109::-;9479:21;9494:5;9479:21;:::i;:::-;9474:3;9467:34;9398:109;;:::o;9513:185::-;9627:64;9685:5;9627:64;:::i;:::-;9622:3;9615:77;9513:185;;:::o;9704:147::-;9799:45;9838:5;9799:45;:::i;:::-;9794:3;9787:58;9704:147;;:::o;9857:364::-;9945:3;9973:39;10006:5;9973:39;:::i;:::-;10028:71;10092:6;10087:3;10028:71;:::i;:::-;10021:78;;10108:52;10153:6;10148:3;10141:4;10134:5;10130:16;10108:52;:::i;:::-;10185:29;10207:6;10185:29;:::i;:::-;10180:3;10176:39;10169:46;;9949:272;9857:364;;;;:::o;10227:366::-;10369:3;10390:67;10454:2;10449:3;10390:67;:::i;:::-;10383:74;;10466:93;10555:3;10466:93;:::i;:::-;10584:2;10579:3;10575:12;10568:19;;10227:366;;;:::o;10599:::-;10741:3;10762:67;10826:2;10821:3;10762:67;:::i;:::-;10755:74;;10838:93;10927:3;10838:93;:::i;:::-;10956:2;10951:3;10947:12;10940:19;;10599:366;;;:::o;10971:::-;11113:3;11134:67;11198:2;11193:3;11134:67;:::i;:::-;11127:74;;11210:93;11299:3;11210:93;:::i;:::-;11328:2;11323:3;11319:12;11312:19;;10971:366;;;:::o;11343:::-;11485:3;11506:67;11570:2;11565:3;11506:67;:::i;:::-;11499:74;;11582:93;11671:3;11582:93;:::i;:::-;11700:2;11695:3;11691:12;11684:19;;11343:366;;;:::o;11715:::-;11857:3;11878:67;11942:2;11937:3;11878:67;:::i;:::-;11871:74;;11954:93;12043:3;11954:93;:::i;:::-;12072:2;12067:3;12063:12;12056:19;;11715:366;;;:::o;12087:::-;12229:3;12250:67;12314:2;12309:3;12250:67;:::i;:::-;12243:74;;12326:93;12415:3;12326:93;:::i;:::-;12444:2;12439:3;12435:12;12428:19;;12087:366;;;:::o;12459:::-;12601:3;12622:67;12686:2;12681:3;12622:67;:::i;:::-;12615:74;;12698:93;12787:3;12698:93;:::i;:::-;12816:2;12811:3;12807:12;12800:19;;12459:366;;;:::o;12831:::-;12973:3;12994:67;13058:2;13053:3;12994:67;:::i;:::-;12987:74;;13070:93;13159:3;13070:93;:::i;:::-;13188:2;13183:3;13179:12;13172:19;;12831:366;;;:::o;13203:::-;13345:3;13366:67;13430:2;13425:3;13366:67;:::i;:::-;13359:74;;13442:93;13531:3;13442:93;:::i;:::-;13560:2;13555:3;13551:12;13544:19;;13203:366;;;:::o;13575:::-;13717:3;13738:67;13802:2;13797:3;13738:67;:::i;:::-;13731:74;;13814:93;13903:3;13814:93;:::i;:::-;13932:2;13927:3;13923:12;13916:19;;13575:366;;;:::o;13947:::-;14089:3;14110:67;14174:2;14169:3;14110:67;:::i;:::-;14103:74;;14186:93;14275:3;14186:93;:::i;:::-;14304:2;14299:3;14295:12;14288:19;;13947:366;;;:::o;14319:::-;14461:3;14482:67;14546:2;14541:3;14482:67;:::i;:::-;14475:74;;14558:93;14647:3;14558:93;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14319:366;;;:::o;14691:398::-;14850:3;14871:83;14952:1;14947:3;14871:83;:::i;:::-;14864:90;;14963:93;15052:3;14963:93;:::i;:::-;15081:1;15076:3;15072:11;15065:18;;14691:398;;;:::o;15095:366::-;15237:3;15258:67;15322:2;15317:3;15258:67;:::i;:::-;15251:74;;15334:93;15423:3;15334:93;:::i;:::-;15452:2;15447:3;15443:12;15436:19;;15095:366;;;:::o;15467:118::-;15554:24;15572:5;15554:24;:::i;:::-;15549:3;15542:37;15467:118;;:::o;15591:112::-;15674:22;15690:5;15674:22;:::i;:::-;15669:3;15662:35;15591:112;;:::o;15709:379::-;15893:3;15915:147;16058:3;15915:147;:::i;:::-;15908:154;;16079:3;16072:10;;15709:379;;;:::o;16094:222::-;16187:4;16225:2;16214:9;16210:18;16202:26;;16238:71;16306:1;16295:9;16291:17;16282:6;16238:71;:::i;:::-;16094:222;;;;:::o;16322:254::-;16431:4;16469:2;16458:9;16454:18;16446:26;;16482:87;16566:1;16555:9;16551:17;16542:6;16482:87;:::i;:::-;16322:254;;;;:::o;16582:332::-;16703:4;16741:2;16730:9;16726:18;16718:26;;16754:71;16822:1;16811:9;16807:17;16798:6;16754:71;:::i;:::-;16835:72;16903:2;16892:9;16888:18;16879:6;16835:72;:::i;:::-;16582:332;;;;;:::o;16920:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17092:71;17160:1;17149:9;17145:17;17136:6;17092:71;:::i;:::-;17173:72;17241:2;17230:9;17226:18;17217:6;17173:72;:::i;:::-;16920:332;;;;;:::o;17258:807::-;17507:4;17545:3;17534:9;17530:19;17522:27;;17559:71;17627:1;17616:9;17612:17;17603:6;17559:71;:::i;:::-;17640:72;17708:2;17697:9;17693:18;17684:6;17640:72;:::i;:::-;17722:80;17798:2;17787:9;17783:18;17774:6;17722:80;:::i;:::-;17812;17888:2;17877:9;17873:18;17864:6;17812:80;:::i;:::-;17902:73;17970:3;17959:9;17955:19;17946:6;17902:73;:::i;:::-;17985;18053:3;18042:9;18038:19;18029:6;17985:73;:::i;:::-;17258:807;;;;;;;;;:::o;18071:210::-;18158:4;18196:2;18185:9;18181:18;18173:26;;18209:65;18271:1;18260:9;18256:17;18247:6;18209:65;:::i;:::-;18071:210;;;;:::o;18287:276::-;18407:4;18445:2;18434:9;18430:18;18422:26;;18458:98;18553:1;18542:9;18538:17;18529:6;18458:98;:::i;:::-;18287:276;;;;:::o;18569:313::-;18682:4;18720:2;18709:9;18705:18;18697:26;;18769:9;18763:4;18759:20;18755:1;18744:9;18740:17;18733:47;18797:78;18870:4;18861:6;18797:78;:::i;:::-;18789:86;;18569:313;;;;:::o;18888:419::-;19054:4;19092:2;19081:9;19077:18;19069:26;;19141:9;19135:4;19131:20;19127:1;19116:9;19112:17;19105:47;19169:131;19295:4;19169:131;:::i;:::-;19161:139;;18888:419;;;:::o;19313:::-;19479:4;19517:2;19506:9;19502:18;19494:26;;19566:9;19560:4;19556:20;19552:1;19541:9;19537:17;19530:47;19594:131;19720:4;19594:131;:::i;:::-;19586:139;;19313:419;;;:::o;19738:::-;19904:4;19942:2;19931:9;19927:18;19919:26;;19991:9;19985:4;19981:20;19977:1;19966:9;19962:17;19955:47;20019:131;20145:4;20019:131;:::i;:::-;20011:139;;19738:419;;;:::o;20163:::-;20329:4;20367:2;20356:9;20352:18;20344:26;;20416:9;20410:4;20406:20;20402:1;20391:9;20387:17;20380:47;20444:131;20570:4;20444:131;:::i;:::-;20436:139;;20163:419;;;:::o;20588:::-;20754:4;20792:2;20781:9;20777:18;20769:26;;20841:9;20835:4;20831:20;20827:1;20816:9;20812:17;20805:47;20869:131;20995:4;20869:131;:::i;:::-;20861:139;;20588:419;;;:::o;21013:::-;21179:4;21217:2;21206:9;21202:18;21194:26;;21266:9;21260:4;21256:20;21252:1;21241:9;21237:17;21230:47;21294:131;21420:4;21294:131;:::i;:::-;21286:139;;21013:419;;;:::o;21438:::-;21604:4;21642:2;21631:9;21627:18;21619:26;;21691:9;21685:4;21681:20;21677:1;21666:9;21662:17;21655:47;21719:131;21845:4;21719:131;:::i;:::-;21711:139;;21438:419;;;:::o;21863:::-;22029:4;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;21863:419;;;:::o;22288:::-;22454:4;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22288:419;;;:::o;22713:::-;22879:4;22917:2;22906:9;22902:18;22894:26;;22966:9;22960:4;22956:20;22952:1;22941:9;22937:17;22930:47;22994:131;23120:4;22994:131;:::i;:::-;22986:139;;22713:419;;;:::o;23138:::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23138:419;;;:::o;23563:::-;23729:4;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23563:419;;;:::o;23988:::-;24154:4;24192:2;24181:9;24177:18;24169:26;;24241:9;24235:4;24231:20;24227:1;24216:9;24212:17;24205:47;24269:131;24395:4;24269:131;:::i;:::-;24261:139;;23988:419;;;:::o;24413:222::-;24506:4;24544:2;24533:9;24529:18;24521:26;;24557:71;24625:1;24614:9;24610:17;24601:6;24557:71;:::i;:::-;24413:222;;;;:::o;24641:483::-;24812:4;24850:2;24839:9;24835:18;24827:26;;24863:71;24931:1;24920:9;24916:17;24907:6;24863:71;:::i;:::-;24981:9;24975:4;24971:20;24966:2;24955:9;24951:18;24944:48;25009:108;25112:4;25103:6;25009:108;:::i;:::-;25001:116;;24641:483;;;;;:::o;25130:831::-;25393:4;25431:3;25420:9;25416:19;25408:27;;25445:71;25513:1;25502:9;25498:17;25489:6;25445:71;:::i;:::-;25526:80;25602:2;25591:9;25587:18;25578:6;25526:80;:::i;:::-;25653:9;25647:4;25643:20;25638:2;25627:9;25623:18;25616:48;25681:108;25784:4;25775:6;25681:108;:::i;:::-;25673:116;;25799:72;25867:2;25856:9;25852:18;25843:6;25799:72;:::i;:::-;25881:73;25949:3;25938:9;25934:19;25925:6;25881:73;:::i;:::-;25130:831;;;;;;;;:::o;25967:214::-;26056:4;26094:2;26083:9;26079:18;26071:26;;26107:67;26171:1;26160:9;26156:17;26147:6;26107:67;:::i;:::-;25967:214;;;;:::o;26268:132::-;26335:4;26358:3;26350:11;;26388:4;26383:3;26379:14;26371:22;;26268:132;;;:::o;26406:114::-;26473:6;26507:5;26501:12;26491:22;;26406:114;;;:::o;26526:99::-;26578:6;26612:5;26606:12;26596:22;;26526:99;;;:::o;26631:113::-;26701:4;26733;26728:3;26724:14;26716:22;;26631:113;;;:::o;26750:184::-;26849:11;26883:6;26878:3;26871:19;26923:4;26918:3;26914:14;26899:29;;26750:184;;;;:::o;26940:147::-;27041:11;27078:3;27063:18;;26940:147;;;;:::o;27093:169::-;27177:11;27211:6;27206:3;27199:19;27251:4;27246:3;27242:14;27227:29;;27093:169;;;;:::o;27268:305::-;27308:3;27327:20;27345:1;27327:20;:::i;:::-;27322:25;;27361:20;27379:1;27361:20;:::i;:::-;27356:25;;27515:1;27447:66;27443:74;27440:1;27437:81;27434:107;;;27521:18;;:::i;:::-;27434:107;27565:1;27562;27558:9;27551:16;;27268:305;;;;:::o;27579:185::-;27619:1;27636:20;27654:1;27636:20;:::i;:::-;27631:25;;27670:20;27688:1;27670:20;:::i;:::-;27665:25;;27709:1;27699:35;;27714:18;;:::i;:::-;27699:35;27756:1;27753;27749:9;27744:14;;27579:185;;;;:::o;27770:348::-;27810:7;27833:20;27851:1;27833:20;:::i;:::-;27828:25;;27867:20;27885:1;27867:20;:::i;:::-;27862:25;;28055:1;27987:66;27983:74;27980:1;27977:81;27972:1;27965:9;27958:17;27954:105;27951:131;;;28062:18;;:::i;:::-;27951:131;28110:1;28107;28103:9;28092:20;;27770:348;;;;:::o;28124:191::-;28164:4;28184:20;28202:1;28184:20;:::i;:::-;28179:25;;28218:20;28236:1;28218:20;:::i;:::-;28213:25;;28257:1;28254;28251:8;28248:34;;;28262:18;;:::i;:::-;28248:34;28307:1;28304;28300:9;28292:17;;28124:191;;;;:::o;28321:96::-;28358:7;28387:24;28405:5;28387:24;:::i;:::-;28376:35;;28321:96;;;:::o;28423:104::-;28468:7;28497:24;28515:5;28497:24;:::i;:::-;28486:35;;28423:104;;;:::o;28533:90::-;28567:7;28610:5;28603:13;28596:21;28585:32;;28533:90;;;:::o;28629:126::-;28666:7;28706:42;28699:5;28695:54;28684:65;;28629:126;;;:::o;28761:77::-;28798:7;28827:5;28816:16;;28761:77;;;:::o;28844:86::-;28879:7;28919:4;28912:5;28908:16;28897:27;;28844:86;;;:::o;28936:153::-;29013:9;29046:37;29077:5;29046:37;:::i;:::-;29033:50;;28936:153;;;:::o;29095:121::-;29153:9;29186:24;29204:5;29186:24;:::i;:::-;29173:37;;29095:121;;;:::o;29222:126::-;29272:9;29305:37;29336:5;29305:37;:::i;:::-;29292:50;;29222:126;;;:::o;29354:113::-;29404:9;29437:24;29455:5;29437:24;:::i;:::-;29424:37;;29354:113;;;:::o;29473:307::-;29541:1;29551:113;29565:6;29562:1;29559:13;29551:113;;;29650:1;29645:3;29641:11;29635:18;29631:1;29626:3;29622:11;29615:39;29587:2;29584:1;29580:10;29575:15;;29551:113;;;29682:6;29679:1;29676:13;29673:101;;;29762:1;29753:6;29748:3;29744:16;29737:27;29673:101;29522:258;29473:307;;;:::o;29786:320::-;29830:6;29867:1;29861:4;29857:12;29847:22;;29914:1;29908:4;29904:12;29935:18;29925:81;;29991:4;29983:6;29979:17;29969:27;;29925:81;30053:2;30045:6;30042:14;30022:18;30019:38;30016:84;;;30072:18;;:::i;:::-;30016:84;29837:269;29786:320;;;:::o;30112:233::-;30151:3;30174:24;30192:5;30174:24;:::i;:::-;30165:33;;30220:66;30213:5;30210:77;30207:103;;;30290:18;;:::i;:::-;30207:103;30337:1;30330:5;30326:13;30319:20;;30112:233;;;:::o;30351:180::-;30399:77;30396:1;30389:88;30496:4;30493:1;30486:15;30520:4;30517:1;30510:15;30537:180;30585:77;30582:1;30575:88;30682:4;30679:1;30672:15;30706:4;30703:1;30696:15;30723:180;30771:77;30768:1;30761:88;30868:4;30865:1;30858:15;30892:4;30889:1;30882:15;30909:180;30957:77;30954:1;30947:88;31054:4;31051:1;31044:15;31078:4;31075:1;31068:15;31095:180;31143:77;31140:1;31133:88;31240:4;31237:1;31230:15;31264:4;31261:1;31254:15;31281:117;31390:1;31387;31380:12;31404:117;31513:1;31510;31503:12;31527:117;31636:1;31633;31626:12;31650:117;31759:1;31756;31749:12;31773:117;31882:1;31879;31872:12;31896:102;31937:6;31988:2;31984:7;31979:2;31972:5;31968:14;31964:28;31954:38;;31896:102;;;:::o;32004:222::-;32144:34;32140:1;32132:6;32128:14;32121:58;32213:5;32208:2;32200:6;32196:15;32189:30;32004:222;:::o;32232:177::-;32372:29;32368:1;32360:6;32356:14;32349:53;32232:177;:::o;32415:225::-;32555:34;32551:1;32543:6;32539:14;32532:58;32624:8;32619:2;32611:6;32607:15;32600:33;32415:225;:::o;32646:221::-;32786:34;32782:1;32774:6;32770:14;32763:58;32855:4;32850:2;32842:6;32838:15;32831:29;32646:221;:::o;32873:177::-;33013:29;33009:1;33001:6;32997:14;32990:53;32873:177;:::o;33056:224::-;33196:34;33192:1;33184:6;33180:14;33173:58;33265:7;33260:2;33252:6;33248:15;33241:32;33056:224;:::o;33286:179::-;33426:31;33422:1;33414:6;33410:14;33403:55;33286:179;:::o;33471:227::-;33611:34;33607:1;33599:6;33595:14;33588:58;33680:10;33675:2;33667:6;33663:15;33656:35;33471:227;:::o;33704:220::-;33844:34;33840:1;33832:6;33828:14;33821:58;33913:3;33908:2;33900:6;33896:15;33889:28;33704:220;:::o;33930:172::-;34070:24;34066:1;34058:6;34054:14;34047:48;33930:172;:::o;34108:182::-;34248:34;34244:1;34236:6;34232:14;34225:58;34108:182;:::o;34296:224::-;34436:34;34432:1;34424:6;34420:14;34413:58;34505:7;34500:2;34492:6;34488:15;34481:32;34296:224;:::o;34526:114::-;;:::o;34646:223::-;34786:34;34782:1;34774:6;34770:14;34763:58;34855:6;34850:2;34842:6;34838:15;34831:31;34646:223;:::o;34875:122::-;34948:24;34966:5;34948:24;:::i;:::-;34941:5;34938:35;34928:63;;34987:1;34984;34977:12;34928:63;34875:122;:::o;35003:116::-;35073:21;35088:5;35073:21;:::i;:::-;35066:5;35063:32;35053:60;;35109:1;35106;35099:12;35053:60;35003:116;:::o;35125:122::-;35198:24;35216:5;35198:24;:::i;:::-;35191:5;35188:35;35178:63;;35237:1;35234;35227:12;35178:63;35125:122;:::o
Swarm Source
ipfs://a8044cdbfe18186f9e16f1cb5b198f8b3f0c65d5e893038c38b69f13c4475db4
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.