More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 93 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19781611 | 355 days ago | IN | 0 ETH | 0.00043095 | ||||
Approve | 19476623 | 398 days ago | IN | 0 ETH | 0.00183989 | ||||
Approve | 19461585 | 400 days ago | IN | 0 ETH | 0.00370713 | ||||
Set Swap And Liq... | 19457206 | 401 days ago | IN | 0 ETH | 0.00090354 | ||||
Set Swap And Liq... | 19457178 | 401 days ago | IN | 0 ETH | 0.00097872 | ||||
Approve | 19457166 | 401 days ago | IN | 0 ETH | 0.00181781 | ||||
Approve | 19457128 | 401 days ago | IN | 0 ETH | 0.0051566 | ||||
Approve | 19457128 | 401 days ago | IN | 0 ETH | 0.0051566 | ||||
Approve | 19457128 | 401 days ago | IN | 0 ETH | 0.0051566 | ||||
Approve | 19457128 | 401 days ago | IN | 0 ETH | 0.0051566 | ||||
Approve | 19457128 | 401 days ago | IN | 0 ETH | 0.0051566 | ||||
Transfer | 19457127 | 401 days ago | IN | 0 ETH | 0.01194114 | ||||
Transfer | 19457127 | 401 days ago | IN | 0 ETH | 0.01194114 | ||||
Transfer | 19457127 | 401 days ago | IN | 0 ETH | 0.01194114 | ||||
Transfer | 19457127 | 401 days ago | IN | 0 ETH | 0.01194114 | ||||
Transfer | 19457127 | 401 days ago | IN | 0 ETH | 0.01194114 | ||||
Approve | 19457090 | 401 days ago | IN | 0 ETH | 0.00173835 | ||||
Approve | 19457087 | 401 days ago | IN | 0 ETH | 0.00180022 | ||||
Set Sell Fee | 19457075 | 401 days ago | IN | 0 ETH | 0.00303862 | ||||
Set Buy Fee | 19457074 | 401 days ago | IN | 0 ETH | 0.00136369 | ||||
Set Buy Fee | 19457073 | 401 days ago | IN | 0 ETH | 0.00321993 | ||||
Approve | 19457059 | 401 days ago | IN | 0 ETH | 0.00191276 | ||||
Set Buy Fee | 19457048 | 401 days ago | IN | 0 ETH | 0.00094464 | ||||
Set Sell Fee | 19457047 | 401 days ago | IN | 0 ETH | 0.00083964 | ||||
Approve | 19457047 | 401 days ago | IN | 0 ETH | 0.00155968 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AiLabsContract
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-16 */ /** AI Labs pioneers AI solutions uniquely designed for blockchain projects, optimizing performance and revolutionizing the digital ecosystem. https://t.me/Official_AiLabs https://www.ai-labs.today/ https://twitter.com/official_ailabs */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; contract Context { constructor () { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } library SafeMath { function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint a, uint b) internal pure returns (uint) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b <= a, errorMessage); uint c = a - b; return c; } function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint a, uint b) internal pure returns (uint) { return div(a, b, "SafeMath: division by zero"); } function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint c = a / b; return c; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { _owner = msg.sender ; emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender() , "Ownable: caller is not the owner"); _; } modifier authorized() { require(_owner == _msgSender() , "!AUTHORIZED"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20Detailed { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory tname, string memory tsymbol, uint8 tdecimals) { _name = tname; _symbol = tsymbol; _decimals = tdecimals; } 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using SafeMath for uint; using Address for address; function safeTransfer(IERC20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } 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 Mint(address indexed sender, uint amount0, uint amount1); 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 mint(address to) external returns (uint liquidity); 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 AiLabsContract is Context, Ownable, IERC20, ERC20Detailed { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; mapping (address => uint) internal _balances; mapping (address => mapping (address => uint)) internal _allowances; mapping (address => bool) private _isExcludedFromFee; uint256 internal _totalSupply; uint256 private marketingFee; uint256 private liquidityFee; uint256 private totalFee; uint256 public BUYmarketingFee = 15; uint256 public BUYliquidityFee = 0; uint256 public BUYtotalFee = BUYliquidityFee.add(BUYmarketingFee); uint256 public SELLmarketingFee = 15; uint256 public SELLliquidityFee = 0; uint256 public SELLtotalFee = SELLliquidityFee.add(SELLmarketingFee); bool start = false; address payable public marketingaddress = payable(0x56B8E916fa2C16f6A208407b72852c4C0A660215); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public numTokensSellToAddToLiquidity = 100000 * 10**18; uint256 public maxTxAmount = 222222222 * 10**18; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); bool private swapping; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } address public _owner; constructor () ERC20Detailed("AI Labs", "AiLabs", 18) { _owner = msg.sender ; _totalSupply = 100000000 * (10**18); _balances[_owner] = _totalSupply; //uniswapv3 router = 0xE592427A0AEce92De3Edee1F18E0157C05861564 IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingaddress] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function totalSupply() public view override returns (uint) { return _totalSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address towner, address spender) public view override returns (uint) { return _allowances[towner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint amount) public override returns (bool) { require(start == true,"Trading not started yet"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function setMarketingAddress(address payable wallet) external onlyOwner { marketingaddress = wallet; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function changeNumTokensSellToAddToLiquidity(uint256 _numTokensSellToAddToLiquidity) external onlyOwner { numTokensSellToAddToLiquidity = _numTokensSellToAddToLiquidity; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function changeMaxTxLimit(uint256 _number) external onlyOwner { maxTxAmount = _number; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _transfer(address sender, address recipient, uint amount) internal{ require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(sender != owner() && recipient != owner()) { require(amount <= maxTxAmount, "Transaction size limit reached"); } // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !swapping && sender != uniswapV2Pair && swapAndLiquifyEnabled ) { swapping = true; uint256 walletTokens = contractTokenBalance.mul(SELLmarketingFee).div(SELLtotalFee); uint256 contractBalance = address(this).balance; swapTokensForEth(walletTokens); uint256 newBalance = address(this).balance.sub(contractBalance); uint256 marketingShare = newBalance.mul(SELLmarketingFee).div((SELLmarketingFee)); //uint256 rewardShare = newBalance.sub(marketingShare); payable(marketingaddress).transfer(marketingShare); uint256 swapTokens = contractTokenBalance.mul(SELLliquidityFee).div(SELLtotalFee); swapAndLiquify(swapTokens); swapping = false; } //indicates if fee should be deducted from transfer bool takeFee = !swapping; //if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } if(sender != uniswapV2Pair && recipient != uniswapV2Pair) { takeFee = false; } if(takeFee){ if(sender == uniswapV2Pair) { marketingFee = BUYmarketingFee; liquidityFee = BUYliquidityFee; totalFee = BUYtotalFee; } if(recipient == uniswapV2Pair) { marketingFee = SELLmarketingFee; liquidityFee = SELLliquidityFee; totalFee = SELLtotalFee; } } if(takeFee) { uint256 taxAmount = amount.mul(totalFee).div(100); uint256 TotalSent = amount.sub(taxAmount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(TotalSent); _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(sender, recipient, TotalSent); emit Transfer(sender, address(this), taxAmount); } else { _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } function startTrading() external authorized { start = true; } function pauseTrading() external authorized { start = false; } function setSellFee(uint256 _onSellliquidityFee, uint256 _onSellMarketingFee) public onlyOwner { SELLmarketingFee = _onSellMarketingFee; SELLliquidityFee = _onSellliquidityFee; SELLtotalFee = SELLliquidityFee.add(SELLmarketingFee); uint256 onSelltotalFees; onSelltotalFees = SELLmarketingFee.add(SELLliquidityFee); require(onSelltotalFees <= 19, "Sell Fee should be 19% or less"); } function setBuyFee(uint256 _onBuyliquidityFee, uint256 _onBuyMarketingFee) public onlyOwner { BUYmarketingFee = _onBuyMarketingFee; BUYliquidityFee = _onBuyliquidityFee; BUYtotalFee = BUYliquidityFee.add(BUYmarketingFee); uint256 onBuytotalFees; onBuytotalFees = BUYmarketingFee.add(BUYliquidityFee); require(onBuytotalFees <= 19, "Buy Fee should be 19% or less"); } function swapAndLiquify(uint256 tokens) private lockTheSwap { // split the contract balance into halves uint256 half = tokens.div(2); uint256 otherHalf = tokens.sub(half); // capture the contract's current ETH balance. // this is so that we can capture exactly the amount of ETH that the // swap creates, and not make the liquidity event include any ETH that // has been manually sent to the contract uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); // add liquidity to uniswap addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } 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 owner(), block.timestamp ); } 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), block.timestamp ); } function _approve(address towner, address spender, uint amount) internal { require(towner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[towner][spender] = amount; emit Approval(towner, spender, amount); } function withdrawStuckETh() external onlyOwner{ require (address(this).balance > 0, "Can't withdraw negative or zero"); payable(owner()).transfer(address(this).balance); } function removeStuckToken(address _address) external onlyOwner { require(_address != address(this), "Can't withdraw tokens destined for liquidity"); require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0"); IERC20(_address).transfer(owner(), IERC20(_address).balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":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":"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":"BUYtotalFee","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":"SELLtotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"towner","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":"uint256","name":"_number","type":"uint256"}],"name":"changeMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numTokensSellToAddToLiquidity","type":"uint256"}],"name":"changeNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingaddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_onBuyliquidityFee","type":"uint256"},{"internalType":"uint256","name":"_onBuyMarketingFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_onSellliquidityFee","type":"uint256"},{"internalType":"uint256","name":"_onSellMarketingFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600f600b556000600c556200002c600b54600c54620006d460201b62001e701790919060201c565b600d55600f600e556000600f5562000057600e54600f54620006d460201b62001e701790919060201c565b6010556000601160006101000a81548160ff0219169083151502179055507356b8e916fa2c16f6a208407b72852c4c0a660215601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160166101000a81548160ff02191690831515021790555069152d02c7e14af68000006012556ab7d162cb18d773d57800006013553480156200010f57600080fd5b506040518060400160405280600781526020017f4149204c616273000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f41694c61627300000000000000000000000000000000000000000000000000008152506012336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600190816200024a9190620009e2565b5081600290816200025c9190620009e2565b5080600360006101000a81548160ff021916908360ff16021790555050505033601460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e400000060078190555060075460046000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000b33565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000b33565b6040518363ffffffff1660e01b81526004016200046e92919062000b76565b6020604051808303816000875af11580156200048e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b4919062000b33565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600160066000620005316200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006646200076060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620006c5919062000bb4565b60405180910390a35062000cbe565b6000808284620006e5919062000c00565b9050838110156200072d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007249062000c9c565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007ea57607f821691505b6020821081036200080057620007ff620007a2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200086a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200082b565b6200087686836200082b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008c3620008bd620008b7846200088e565b62000898565b6200088e565b9050919050565b6000819050919050565b620008df83620008a2565b620008f7620008ee82620008ca565b84845462000838565b825550505050565b600090565b6200090e620008ff565b6200091b818484620008d4565b505050565b5b8181101562000943576200093760008262000904565b60018101905062000921565b5050565b601f82111562000992576200095c8162000806565b62000967846200081b565b8101602085101562000977578190505b6200098f62000986856200081b565b83018262000920565b50505b505050565b600082821c905092915050565b6000620009b76000198460080262000997565b1980831691505092915050565b6000620009d28383620009a4565b9150826002028217905092915050565b620009ed8262000768565b67ffffffffffffffff81111562000a095762000a0862000773565b5b62000a158254620007d1565b62000a2282828562000947565b600060209050601f83116001811462000a5a576000841562000a45578287015190505b62000a518582620009c4565b86555062000ac1565b601f19841662000a6a8662000806565b60005b8281101562000a945784890151825560018201915060208501945060208101905062000a6d565b8683101562000ab4578489015162000ab0601f891682620009a4565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000afb8262000ace565b9050919050565b62000b0d8162000aee565b811462000b1957600080fd5b50565b60008151905062000b2d8162000b02565b92915050565b60006020828403121562000b4c5762000b4b62000ac9565b5b600062000b5c8482850162000b1c565b91505092915050565b62000b708162000aee565b82525050565b600060408201905062000b8d600083018562000b65565b62000b9c602083018462000b65565b9392505050565b62000bae816200088e565b82525050565b600060208201905062000bcb600083018462000ba3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c0d826200088e565b915062000c1a836200088e565b925082820190508082111562000c355762000c3462000bd1565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000c84601b8362000c3b565b915062000c918262000c4c565b602082019050919050565b6000602082019050818103600083015262000cb78162000c75565b9050919050565b60805160a05161437b62000d2a60003960008181610f4e015281816122780152818161250001528181612557015281816125b80152612627015260008181610b7f01528181612d0101528181612de201528181612e0901528181613028015261304f015261437b6000f3fe6080604052600436106102345760003560e01c8063715018a61161012e578063c57a6c44116100ab578063e745b2541161006f578063e745b25414610816578063ea2f0b3714610841578063f2fde38b1461086a578063fa716d1314610893578063fb0ecfa4146108be5761023b565b8063c57a6c4414610731578063d12a76881461075a578063dd62ed3e14610785578063e083e922146107c2578063e0f07e3a146107eb5761023b565b806395d89b41116100f257806395d89b4114610638578063a457c2d714610663578063a9059cbb146106a0578063b2bdfa7b146106dd578063c49b9a80146107085761023b565b8063715018a614610577578063889b408c1461058e5780638c0b5e22146105b95780638da5cb5b146105e4578063906e9dd01461060f5761023b565b8063293230b8116101bc57806349bd5a5e1161018057806349bd5a5e146104925780634a74bb02146104bd5780635eb04347146104e85780636ac9a8701461051157806370a082311461053a5761023b565b8063293230b8146103bf578063313ce567146103d657806333759dfb14610401578063395093511461042c578063437823ec146104695761023b565b80630b4ae420116102035780630b4ae420146102fe5780631031e36e146103155780631694505e1461032c57806318160ddd1461035757806323b872dd146103825761023b565b8063043a28ee1461024057806306e8781a1461026b57806306fdde0314610296578063095ea7b3146102c15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108e7565b604051610262919061311c565b60405180910390f35b34801561027757600080fd5b506102806108ed565b60405161028d919061311c565b60405180910390f35b3480156102a257600080fd5b506102ab6108f3565b6040516102b891906131c7565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190613278565b610985565b6040516102f591906132d3565b60405180910390f35b34801561030a57600080fd5b506103136109a3565b005b34801561032157600080fd5b5061032a610acb565b005b34801561033857600080fd5b50610341610b7d565b60405161034e919061334d565b60405180910390f35b34801561036357600080fd5b5061036c610ba1565b604051610379919061311c565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190613368565b610bab565b6040516103b691906132d3565b60405180910390f35b3480156103cb57600080fd5b506103d4610cda565b005b3480156103e257600080fd5b506103eb610d8c565b6040516103f891906133d7565b60405180910390f35b34801561040d57600080fd5b50610416610da3565b604051610423919061311c565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613278565b610da9565b60405161046091906132d3565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906133f2565b610e5c565b005b34801561049e57600080fd5b506104a7610f4c565b6040516104b4919061342e565b60405180910390f35b3480156104c957600080fd5b506104d2610f70565b6040516104df91906132d3565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613449565b610f83565b005b34801561051d57600080fd5b5061053860048036038101906105339190613476565b611022565b005b34801561054657600080fd5b50610561600480360381019061055c91906133f2565b611146565b60405161056e919061311c565b60405180910390f35b34801561058357600080fd5b5061058c61118f565b005b34801561059a57600080fd5b506105a36112e2565b6040516105b0919061311c565b60405180910390f35b3480156105c557600080fd5b506105ce6112e8565b6040516105db919061311c565b60405180910390f35b3480156105f057600080fd5b506105f96112ee565b604051610606919061342e565b60405180910390f35b34801561061b57600080fd5b50610636600480360381019061063191906134f4565b611317565b005b34801561064457600080fd5b5061064d6113f0565b60405161065a91906131c7565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190613278565b611482565b60405161069791906132d3565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190613278565b61154f565b6040516106d491906132d3565b60405180910390f35b3480156106e957600080fd5b506106f261156d565b6040516106ff919061342e565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a919061354d565b611593565b005b34801561073d57600080fd5b5061075860048036038101906107539190613449565b61167c565b005b34801561076657600080fd5b5061076f61171b565b60405161077c919061311c565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a7919061357a565b611721565b6040516107b9919061311c565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e491906133f2565b6117a8565b005b3480156107f757600080fd5b50610800611a69565b60405161080d91906135c9565b60405180910390f35b34801561082257600080fd5b5061082b611a8f565b604051610838919061311c565b60405180910390f35b34801561084d57600080fd5b50610868600480360381019061086391906133f2565b611a95565b005b34801561087657600080fd5b50610891600480360381019061088c91906133f2565b611b85565b005b34801561089f57600080fd5b506108a8611d46565b6040516108b5919061311c565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e09190613476565b611d4c565b005b600d5481565b600b5481565b60606001805461090290613613565b80601f016020809104026020016040519081016040528092919081815260200182805461092e90613613565b801561097b5780601f106109505761010080835404028352916020019161097b565b820191906000526020600020905b81548152906001019060200180831161095e57829003601f168201915b5050505050905090565b6000610999610992611ece565b8484611ed6565b6001905092915050565b6109ab611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613690565b60405180910390fd5b60004711610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a72906136fc565b60405180910390fd5b610a836112ee565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610ac8573d6000803e3d6000fd5b50565b610ad3611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613768565b60405180910390fd5b6000601160006101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600754905090565b600060011515601160009054906101000a900460ff16151514610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906137d4565b60405180910390fd5b610c0e84848461209f565b610ccf84610c1a611ece565b610cca856040518060600160405280602881526020016142f960289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c80611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b611ed6565b600190509392505050565b610ce2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690613768565b60405180910390fd5b6001601160006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff16905090565b60105481565b6000610e52610db6611ece565b84610e4d8560056000610dc7611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b611ed6565b6001905092915050565b610e64611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890613690565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601160169054906101000a900460ff1681565b610f8b611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613690565b60405180910390fd5b8060138190555050565b61102a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613690565b60405180910390fd5b80600e8190555081600f819055506110dc600e54600f54611e7090919063ffffffff16565b60108190555060006110fb600f54600e54611e7090919063ffffffff16565b90506013811115611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613840565b60405180910390fd5b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611197611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90613690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61131f611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390613690565b60405180910390fd5b80601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546113ff90613613565b80601f016020809104026020016040519081016040528092919081815260200182805461142b90613613565b80156114785780601f1061144d57610100808354040283529160200191611478565b820191906000526020600020905b81548152906001019060200180831161145b57829003601f168201915b5050505050905090565b600061154561148f611ece565b846115408560405180606001604052806025815260200161432160259139600560006114b9611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b611ed6565b6001905092915050565b600061156361155c611ece565b848461209f565b6001905092915050565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61159b611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90613690565b60405180910390fd5b80601160166101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161167191906132d3565b60405180910390a150565b611684611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613690565b60405180910390fd5b8060128190555050565b60125481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117b0611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183490613690565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906138d2565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118e6919061342e565b602060405180830381865afa158015611903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119279190613907565b11611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613980565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61198b6112ee565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119c4919061342e565b602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190613907565b6040518363ffffffff1660e01b8152600401611a229291906139a0565b6020604051808303816000875af1158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906139de565b5050565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b611a9d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190613690565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b8d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1190613690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8090613a7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b611d54611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613690565b60405180910390fd5b80600b8190555081600c81905550611e06600b54600c54611e7090919063ffffffff16565b600d819055506000611e25600c54600b54611e7090919063ffffffff16565b90506013811115611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290613ae9565b60405180910390fd5b505050565b6000808284611e7f9190613b38565b905083811015611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613bb8565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613c4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613cdc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612092919061311c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210590613d6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361217d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217490613e00565b60405180910390fd5b6121856112ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121f357506121c36112ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561223e5760135481111561223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613e6c565b60405180910390fd5b5b600061224930611146565b90506000601254821015905080801561226f5750601460009054906101000a900460ff16155b80156122c757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122df5750601160169054906101000a900460ff165b1561243e576001601460006101000a81548160ff021916908315150217905550600061232a60105461231c600e5486612b9e90919063ffffffff16565b612c1890919063ffffffff16565b9050600047905061233a82612c62565b600061234f8247612e9f90919063ffffffff16565b9050600061237c600e5461236e600e5485612b9e90919063ffffffff16565b612c1890919063ffffffff16565b9050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123e6573d6000803e3d6000fd5b506000612412601054612404600f548a612b9e90919063ffffffff16565b612c1890919063ffffffff16565b905061241d81612ee9565b6000601460006101000a81548160ff02191690831515021790555050505050505b6000601460009054906101000a900460ff16159050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f45750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124fe57600090505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156125a657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156125b057600090505b8015612695577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361262557600b54600881905550600c54600981905550600d54600a819055505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361269457600e54600881905550600f54600981905550601054600a819055505b5b80156129885760006126c560646126b7600a5488612b9e90919063ffffffff16565b612c1890919063ffffffff16565b905060006126dc8287612e9f90919063ffffffff16565b905061274a866040518060600160405280602681526020016142d360269139600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127df81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287482600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612914919061311c565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612979919061311c565b60405180910390a35050612b32565b6129f4846040518060600160405280602681526020016142d360269139600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8984600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b29919061311c565b60405180910390a35b505050505050565b6000838311158290612b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7991906131c7565b60405180910390fd5b5060008385612b919190613e8c565b9050809150509392505050565b6000808303612bb05760009050612c12565b60008284612bbe9190613ec0565b9050828482612bcd9190613f31565b14612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0490613fd4565b60405180910390fd5b809150505b92915050565b6000612c5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbf565b905092915050565b6000600267ffffffffffffffff811115612c7f57612c7e613ff4565b5b604051908082528060200260200182016040528015612cad5781602001602082028036833780820191505090505b5090503081600081518110612cc557612cc4614023565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190614067565b81600181518110612da257612da1614023565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e07307f000000000000000000000000000000000000000000000000000000000000000084611ed6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e6995949392919061418d565b600060405180830381600087803b158015612e8357600080fd5b505af1158015612e97573d6000803e3d6000fd5b505050505050565b6000612ee183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b3a565b905092915050565b6001601160156101000a81548160ff0219169083151502179055506000612f1a600283612c1890919063ffffffff16565b90506000612f318284612e9f90919063ffffffff16565b90506000479050612f4183612c62565b6000612f568247612e9f90919063ffffffff16565b9050612f628382613022565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612f95939291906141e7565b60405180910390a1505050506000601160156101000a81548160ff02191690831515021790555050565b60008083118290613006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffd91906131c7565b60405180910390fd5b50600083856130159190613f31565b9050809150509392505050565b61304d307f000000000000000000000000000000000000000000000000000000000000000084611ed6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806130976112ee565b426040518863ffffffff1660e01b81526004016130b99695949392919061421e565b60606040518083038185885af11580156130d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130fc919061427f565b5050505050565b6000819050919050565b61311681613103565b82525050565b6000602082019050613131600083018461310d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613171578082015181840152602081019050613156565b60008484015250505050565b6000601f19601f8301169050919050565b600061319982613137565b6131a38185613142565b93506131b3818560208601613153565b6131bc8161317d565b840191505092915050565b600060208201905081810360008301526131e1818461318e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613219826131ee565b9050919050565b6132298161320e565b811461323457600080fd5b50565b60008135905061324681613220565b92915050565b61325581613103565b811461326057600080fd5b50565b6000813590506132728161324c565b92915050565b6000806040838503121561328f5761328e6131e9565b5b600061329d85828601613237565b92505060206132ae85828601613263565b9150509250929050565b60008115159050919050565b6132cd816132b8565b82525050565b60006020820190506132e860008301846132c4565b92915050565b6000819050919050565b600061331361330e613309846131ee565b6132ee565b6131ee565b9050919050565b6000613325826132f8565b9050919050565b60006133378261331a565b9050919050565b6133478161332c565b82525050565b6000602082019050613362600083018461333e565b92915050565b600080600060608486031215613381576133806131e9565b5b600061338f86828701613237565b93505060206133a086828701613237565b92505060406133b186828701613263565b9150509250925092565b600060ff82169050919050565b6133d1816133bb565b82525050565b60006020820190506133ec60008301846133c8565b92915050565b600060208284031215613408576134076131e9565b5b600061341684828501613237565b91505092915050565b6134288161320e565b82525050565b6000602082019050613443600083018461341f565b92915050565b60006020828403121561345f5761345e6131e9565b5b600061346d84828501613263565b91505092915050565b6000806040838503121561348d5761348c6131e9565b5b600061349b85828601613263565b92505060206134ac85828601613263565b9150509250929050565b60006134c1826131ee565b9050919050565b6134d1816134b6565b81146134dc57600080fd5b50565b6000813590506134ee816134c8565b92915050565b60006020828403121561350a576135096131e9565b5b6000613518848285016134df565b91505092915050565b61352a816132b8565b811461353557600080fd5b50565b60008135905061354781613521565b92915050565b600060208284031215613563576135626131e9565b5b600061357184828501613538565b91505092915050565b60008060408385031215613591576135906131e9565b5b600061359f85828601613237565b92505060206135b085828601613237565b9150509250929050565b6135c3816134b6565b82525050565b60006020820190506135de60008301846135ba565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061362b57607f821691505b60208210810361363e5761363d6135e4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061367a602083613142565b915061368582613644565b602082019050919050565b600060208201905081810360008301526136a98161366d565b9050919050565b7f43616e2774207769746864726177206e65676174697665206f72207a65726f00600082015250565b60006136e6601f83613142565b91506136f1826136b0565b602082019050919050565b60006020820190508181036000830152613715816136d9565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000613752600b83613142565b915061375d8261371c565b602082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b60006137be601783613142565b91506137c982613788565b602082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f53656c6c204665652073686f756c6420626520313925206f72206c6573730000600082015250565b600061382a601e83613142565b9150613835826137f4565b602082019050919050565b600060208201905081810360008301526138598161381d565b9050919050565b7f43616e277420776974686472617720746f6b656e732064657374696e6564206660008201527f6f72206c69717569646974790000000000000000000000000000000000000000602082015250565b60006138bc602c83613142565b91506138c782613860565b604082019050919050565b600060208201905081810360008301526138eb816138af565b9050919050565b6000815190506139018161324c565b92915050565b60006020828403121561391d5761391c6131e9565b5b600061392b848285016138f2565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b600061396a601083613142565b915061397582613934565b602082019050919050565b600060208201905081810360008301526139998161395d565b9050919050565b60006040820190506139b5600083018561341f565b6139c2602083018461310d565b9392505050565b6000815190506139d881613521565b92915050565b6000602082840312156139f4576139f36131e9565b5b6000613a02848285016139c9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a67602683613142565b9150613a7282613a0b565b604082019050919050565b60006020820190508181036000830152613a9681613a5a565b9050919050565b7f427579204665652073686f756c6420626520313925206f72206c657373000000600082015250565b6000613ad3601d83613142565b9150613ade82613a9d565b602082019050919050565b60006020820190508181036000830152613b0281613ac6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b4382613103565b9150613b4e83613103565b9250828201905080821115613b6657613b65613b09565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ba2601b83613142565b9150613bad82613b6c565b602082019050919050565b60006020820190508181036000830152613bd181613b95565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c34602483613142565b9150613c3f82613bd8565b604082019050919050565b60006020820190508181036000830152613c6381613c27565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc6602283613142565b9150613cd182613c6a565b604082019050919050565b60006020820190508181036000830152613cf581613cb9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d58602583613142565b9150613d6382613cfc565b604082019050919050565b60006020820190508181036000830152613d8781613d4b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613dea602383613142565b9150613df582613d8e565b604082019050919050565b60006020820190508181036000830152613e1981613ddd565b9050919050565b7f5472616e73616374696f6e2073697a65206c696d697420726561636865640000600082015250565b6000613e56601e83613142565b9150613e6182613e20565b602082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b6000613e9782613103565b9150613ea283613103565b9250828203905081811115613eba57613eb9613b09565b5b92915050565b6000613ecb82613103565b9150613ed683613103565b9250828202613ee481613103565b91508282048414831517613efb57613efa613b09565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f3c82613103565b9150613f4783613103565b925082613f5757613f56613f02565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbe602183613142565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061406181613220565b92915050565b60006020828403121561407d5761407c6131e9565b5b600061408b84828501614052565b91505092915050565b6000819050919050565b60006140b96140b46140af84614094565b6132ee565b613103565b9050919050565b6140c98161409e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141048161320e565b82525050565b600061411683836140fb565b60208301905092915050565b6000602082019050919050565b600061413a826140cf565b61414481856140da565b935061414f836140eb565b8060005b83811015614180578151614167888261410a565b975061417283614122565b925050600181019050614153565b5085935050505092915050565b600060a0820190506141a2600083018861310d565b6141af60208301876140c0565b81810360408301526141c1818661412f565b90506141d0606083018561341f565b6141dd608083018461310d565b9695505050505050565b60006060820190506141fc600083018661310d565b614209602083018561310d565b614216604083018461310d565b949350505050565b600060c082019050614233600083018961341f565b614240602083018861310d565b61424d60408301876140c0565b61425a60608301866140c0565b614267608083018561341f565b61427460a083018461310d565b979650505050505050565b600080600060608486031215614298576142976131e9565b5b60006142a6868287016138f2565b93505060206142b7868287016138f2565b92505060406142c8868287016138f2565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220488fe28cf86639ad8e32b4f30157e842f3323529aebc68ce528b817abbdd2e8464736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102345760003560e01c8063715018a61161012e578063c57a6c44116100ab578063e745b2541161006f578063e745b25414610816578063ea2f0b3714610841578063f2fde38b1461086a578063fa716d1314610893578063fb0ecfa4146108be5761023b565b8063c57a6c4414610731578063d12a76881461075a578063dd62ed3e14610785578063e083e922146107c2578063e0f07e3a146107eb5761023b565b806395d89b41116100f257806395d89b4114610638578063a457c2d714610663578063a9059cbb146106a0578063b2bdfa7b146106dd578063c49b9a80146107085761023b565b8063715018a614610577578063889b408c1461058e5780638c0b5e22146105b95780638da5cb5b146105e4578063906e9dd01461060f5761023b565b8063293230b8116101bc57806349bd5a5e1161018057806349bd5a5e146104925780634a74bb02146104bd5780635eb04347146104e85780636ac9a8701461051157806370a082311461053a5761023b565b8063293230b8146103bf578063313ce567146103d657806333759dfb14610401578063395093511461042c578063437823ec146104695761023b565b80630b4ae420116102035780630b4ae420146102fe5780631031e36e146103155780631694505e1461032c57806318160ddd1461035757806323b872dd146103825761023b565b8063043a28ee1461024057806306e8781a1461026b57806306fdde0314610296578063095ea7b3146102c15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108e7565b604051610262919061311c565b60405180910390f35b34801561027757600080fd5b506102806108ed565b60405161028d919061311c565b60405180910390f35b3480156102a257600080fd5b506102ab6108f3565b6040516102b891906131c7565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190613278565b610985565b6040516102f591906132d3565b60405180910390f35b34801561030a57600080fd5b506103136109a3565b005b34801561032157600080fd5b5061032a610acb565b005b34801561033857600080fd5b50610341610b7d565b60405161034e919061334d565b60405180910390f35b34801561036357600080fd5b5061036c610ba1565b604051610379919061311c565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190613368565b610bab565b6040516103b691906132d3565b60405180910390f35b3480156103cb57600080fd5b506103d4610cda565b005b3480156103e257600080fd5b506103eb610d8c565b6040516103f891906133d7565b60405180910390f35b34801561040d57600080fd5b50610416610da3565b604051610423919061311c565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613278565b610da9565b60405161046091906132d3565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906133f2565b610e5c565b005b34801561049e57600080fd5b506104a7610f4c565b6040516104b4919061342e565b60405180910390f35b3480156104c957600080fd5b506104d2610f70565b6040516104df91906132d3565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613449565b610f83565b005b34801561051d57600080fd5b5061053860048036038101906105339190613476565b611022565b005b34801561054657600080fd5b50610561600480360381019061055c91906133f2565b611146565b60405161056e919061311c565b60405180910390f35b34801561058357600080fd5b5061058c61118f565b005b34801561059a57600080fd5b506105a36112e2565b6040516105b0919061311c565b60405180910390f35b3480156105c557600080fd5b506105ce6112e8565b6040516105db919061311c565b60405180910390f35b3480156105f057600080fd5b506105f96112ee565b604051610606919061342e565b60405180910390f35b34801561061b57600080fd5b50610636600480360381019061063191906134f4565b611317565b005b34801561064457600080fd5b5061064d6113f0565b60405161065a91906131c7565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190613278565b611482565b60405161069791906132d3565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190613278565b61154f565b6040516106d491906132d3565b60405180910390f35b3480156106e957600080fd5b506106f261156d565b6040516106ff919061342e565b60405180910390f35b34801561071457600080fd5b5061072f600480360381019061072a919061354d565b611593565b005b34801561073d57600080fd5b5061075860048036038101906107539190613449565b61167c565b005b34801561076657600080fd5b5061076f61171b565b60405161077c919061311c565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a7919061357a565b611721565b6040516107b9919061311c565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e491906133f2565b6117a8565b005b3480156107f757600080fd5b50610800611a69565b60405161080d91906135c9565b60405180910390f35b34801561082257600080fd5b5061082b611a8f565b604051610838919061311c565b60405180910390f35b34801561084d57600080fd5b50610868600480360381019061086391906133f2565b611a95565b005b34801561087657600080fd5b50610891600480360381019061088c91906133f2565b611b85565b005b34801561089f57600080fd5b506108a8611d46565b6040516108b5919061311c565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e09190613476565b611d4c565b005b600d5481565b600b5481565b60606001805461090290613613565b80601f016020809104026020016040519081016040528092919081815260200182805461092e90613613565b801561097b5780601f106109505761010080835404028352916020019161097b565b820191906000526020600020905b81548152906001019060200180831161095e57829003601f168201915b5050505050905090565b6000610999610992611ece565b8484611ed6565b6001905092915050565b6109ab611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90613690565b60405180910390fd5b60004711610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a72906136fc565b60405180910390fd5b610a836112ee565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610ac8573d6000803e3d6000fd5b50565b610ad3611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613768565b60405180910390fd5b6000601160006101000a81548160ff021916908315150217905550565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600754905090565b600060011515601160009054906101000a900460ff16151514610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906137d4565b60405180910390fd5b610c0e84848461209f565b610ccf84610c1a611ece565b610cca856040518060600160405280602881526020016142f960289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c80611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b611ed6565b600190509392505050565b610ce2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690613768565b60405180910390fd5b6001601160006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff16905090565b60105481565b6000610e52610db6611ece565b84610e4d8560056000610dc7611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b611ed6565b6001905092915050565b610e64611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890613690565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d281565b601160169054906101000a900460ff1681565b610f8b611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613690565b60405180910390fd5b8060138190555050565b61102a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613690565b60405180910390fd5b80600e8190555081600f819055506110dc600e54600f54611e7090919063ffffffff16565b60108190555060006110fb600f54600e54611e7090919063ffffffff16565b90506013811115611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613840565b60405180910390fd5b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611197611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90613690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61131f611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390613690565b60405180910390fd5b80601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546113ff90613613565b80601f016020809104026020016040519081016040528092919081815260200182805461142b90613613565b80156114785780601f1061144d57610100808354040283529160200191611478565b820191906000526020600020905b81548152906001019060200180831161145b57829003601f168201915b5050505050905090565b600061154561148f611ece565b846115408560405180606001604052806025815260200161432160259139600560006114b9611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b611ed6565b6001905092915050565b600061156361155c611ece565b848461209f565b6001905092915050565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61159b611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90613690565b60405180910390fd5b80601160166101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161167191906132d3565b60405180910390a150565b611684611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613690565b60405180910390fd5b8060128190555050565b60125481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117b0611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183490613690565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906138d2565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118e6919061342e565b602060405180830381865afa158015611903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119279190613907565b11611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613980565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61198b6112ee565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119c4919061342e565b602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190613907565b6040518363ffffffff1660e01b8152600401611a229291906139a0565b6020604051808303816000875af1158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906139de565b5050565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b611a9d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190613690565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b8d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1190613690565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8090613a7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b611d54611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613690565b60405180910390fd5b80600b8190555081600c81905550611e06600b54600c54611e7090919063ffffffff16565b600d819055506000611e25600c54600b54611e7090919063ffffffff16565b90506013811115611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290613ae9565b60405180910390fd5b505050565b6000808284611e7f9190613b38565b905083811015611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613bb8565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3c90613c4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613cdc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612092919061311c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210590613d6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361217d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217490613e00565b60405180910390fd5b6121856112ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121f357506121c36112ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561223e5760135481111561223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613e6c565b60405180910390fd5b5b600061224930611146565b90506000601254821015905080801561226f5750601460009054906101000a900460ff16155b80156122c757507f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122df5750601160169054906101000a900460ff165b1561243e576001601460006101000a81548160ff021916908315150217905550600061232a60105461231c600e5486612b9e90919063ffffffff16565b612c1890919063ffffffff16565b9050600047905061233a82612c62565b600061234f8247612e9f90919063ffffffff16565b9050600061237c600e5461236e600e5485612b9e90919063ffffffff16565b612c1890919063ffffffff16565b9050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123e6573d6000803e3d6000fd5b506000612412601054612404600f548a612b9e90919063ffffffff16565b612c1890919063ffffffff16565b905061241d81612ee9565b6000601460006101000a81548160ff02191690831515021790555050505050505b6000601460009054906101000a900460ff16159050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f45750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124fe57600090505b7f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156125a657507f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156125b057600090505b8015612695577f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361262557600b54600881905550600c54600981905550600d54600a819055505b7f0000000000000000000000003bda9aa9ac2db8a56f6948110506596e5dd631d273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361269457600e54600881905550600f54600981905550601054600a819055505b5b80156129885760006126c560646126b7600a5488612b9e90919063ffffffff16565b612c1890919063ffffffff16565b905060006126dc8287612e9f90919063ffffffff16565b905061274a866040518060600160405280602681526020016142d360269139600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127df81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287482600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612914919061311c565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612979919061311c565b60405180910390a35050612b32565b6129f4846040518060600160405280602681526020016142d360269139600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b3a9092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8984600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b29919061311c565b60405180910390a35b505050505050565b6000838311158290612b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7991906131c7565b60405180910390fd5b5060008385612b919190613e8c565b9050809150509392505050565b6000808303612bb05760009050612c12565b60008284612bbe9190613ec0565b9050828482612bcd9190613f31565b14612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0490613fd4565b60405180910390fd5b809150505b92915050565b6000612c5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbf565b905092915050565b6000600267ffffffffffffffff811115612c7f57612c7e613ff4565b5b604051908082528060200260200182016040528015612cad5781602001602082028036833780820191505090505b5090503081600081518110612cc557612cc4614023565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190614067565b81600181518110612da257612da1614023565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e07307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ed6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e6995949392919061418d565b600060405180830381600087803b158015612e8357600080fd5b505af1158015612e97573d6000803e3d6000fd5b505050505050565b6000612ee183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b3a565b905092915050565b6001601160156101000a81548160ff0219169083151502179055506000612f1a600283612c1890919063ffffffff16565b90506000612f318284612e9f90919063ffffffff16565b90506000479050612f4183612c62565b6000612f568247612e9f90919063ffffffff16565b9050612f628382613022565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612f95939291906141e7565b60405180910390a1505050506000601160156101000a81548160ff02191690831515021790555050565b60008083118290613006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffd91906131c7565b60405180910390fd5b50600083856130159190613f31565b9050809150509392505050565b61304d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ed6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806130976112ee565b426040518863ffffffff1660e01b81526004016130b99695949392919061421e565b60606040518083038185885af11580156130d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130fc919061427f565b5050505050565b6000819050919050565b61311681613103565b82525050565b6000602082019050613131600083018461310d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613171578082015181840152602081019050613156565b60008484015250505050565b6000601f19601f8301169050919050565b600061319982613137565b6131a38185613142565b93506131b3818560208601613153565b6131bc8161317d565b840191505092915050565b600060208201905081810360008301526131e1818461318e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613219826131ee565b9050919050565b6132298161320e565b811461323457600080fd5b50565b60008135905061324681613220565b92915050565b61325581613103565b811461326057600080fd5b50565b6000813590506132728161324c565b92915050565b6000806040838503121561328f5761328e6131e9565b5b600061329d85828601613237565b92505060206132ae85828601613263565b9150509250929050565b60008115159050919050565b6132cd816132b8565b82525050565b60006020820190506132e860008301846132c4565b92915050565b6000819050919050565b600061331361330e613309846131ee565b6132ee565b6131ee565b9050919050565b6000613325826132f8565b9050919050565b60006133378261331a565b9050919050565b6133478161332c565b82525050565b6000602082019050613362600083018461333e565b92915050565b600080600060608486031215613381576133806131e9565b5b600061338f86828701613237565b93505060206133a086828701613237565b92505060406133b186828701613263565b9150509250925092565b600060ff82169050919050565b6133d1816133bb565b82525050565b60006020820190506133ec60008301846133c8565b92915050565b600060208284031215613408576134076131e9565b5b600061341684828501613237565b91505092915050565b6134288161320e565b82525050565b6000602082019050613443600083018461341f565b92915050565b60006020828403121561345f5761345e6131e9565b5b600061346d84828501613263565b91505092915050565b6000806040838503121561348d5761348c6131e9565b5b600061349b85828601613263565b92505060206134ac85828601613263565b9150509250929050565b60006134c1826131ee565b9050919050565b6134d1816134b6565b81146134dc57600080fd5b50565b6000813590506134ee816134c8565b92915050565b60006020828403121561350a576135096131e9565b5b6000613518848285016134df565b91505092915050565b61352a816132b8565b811461353557600080fd5b50565b60008135905061354781613521565b92915050565b600060208284031215613563576135626131e9565b5b600061357184828501613538565b91505092915050565b60008060408385031215613591576135906131e9565b5b600061359f85828601613237565b92505060206135b085828601613237565b9150509250929050565b6135c3816134b6565b82525050565b60006020820190506135de60008301846135ba565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061362b57607f821691505b60208210810361363e5761363d6135e4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061367a602083613142565b915061368582613644565b602082019050919050565b600060208201905081810360008301526136a98161366d565b9050919050565b7f43616e2774207769746864726177206e65676174697665206f72207a65726f00600082015250565b60006136e6601f83613142565b91506136f1826136b0565b602082019050919050565b60006020820190508181036000830152613715816136d9565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000613752600b83613142565b915061375d8261371c565b602082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b60006137be601783613142565b91506137c982613788565b602082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f53656c6c204665652073686f756c6420626520313925206f72206c6573730000600082015250565b600061382a601e83613142565b9150613835826137f4565b602082019050919050565b600060208201905081810360008301526138598161381d565b9050919050565b7f43616e277420776974686472617720746f6b656e732064657374696e6564206660008201527f6f72206c69717569646974790000000000000000000000000000000000000000602082015250565b60006138bc602c83613142565b91506138c782613860565b604082019050919050565b600060208201905081810360008301526138eb816138af565b9050919050565b6000815190506139018161324c565b92915050565b60006020828403121561391d5761391c6131e9565b5b600061392b848285016138f2565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b600061396a601083613142565b915061397582613934565b602082019050919050565b600060208201905081810360008301526139998161395d565b9050919050565b60006040820190506139b5600083018561341f565b6139c2602083018461310d565b9392505050565b6000815190506139d881613521565b92915050565b6000602082840312156139f4576139f36131e9565b5b6000613a02848285016139c9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a67602683613142565b9150613a7282613a0b565b604082019050919050565b60006020820190508181036000830152613a9681613a5a565b9050919050565b7f427579204665652073686f756c6420626520313925206f72206c657373000000600082015250565b6000613ad3601d83613142565b9150613ade82613a9d565b602082019050919050565b60006020820190508181036000830152613b0281613ac6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b4382613103565b9150613b4e83613103565b9250828201905080821115613b6657613b65613b09565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ba2601b83613142565b9150613bad82613b6c565b602082019050919050565b60006020820190508181036000830152613bd181613b95565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c34602483613142565b9150613c3f82613bd8565b604082019050919050565b60006020820190508181036000830152613c6381613c27565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc6602283613142565b9150613cd182613c6a565b604082019050919050565b60006020820190508181036000830152613cf581613cb9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d58602583613142565b9150613d6382613cfc565b604082019050919050565b60006020820190508181036000830152613d8781613d4b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613dea602383613142565b9150613df582613d8e565b604082019050919050565b60006020820190508181036000830152613e1981613ddd565b9050919050565b7f5472616e73616374696f6e2073697a65206c696d697420726561636865640000600082015250565b6000613e56601e83613142565b9150613e6182613e20565b602082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b6000613e9782613103565b9150613ea283613103565b9250828203905081811115613eba57613eb9613b09565b5b92915050565b6000613ecb82613103565b9150613ed683613103565b9250828202613ee481613103565b91508282048414831517613efb57613efa613b09565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f3c82613103565b9150613f4783613103565b925082613f5757613f56613f02565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbe602183613142565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061406181613220565b92915050565b60006020828403121561407d5761407c6131e9565b5b600061408b84828501614052565b91505092915050565b6000819050919050565b60006140b96140b46140af84614094565b6132ee565b613103565b9050919050565b6140c98161409e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141048161320e565b82525050565b600061411683836140fb565b60208301905092915050565b6000602082019050919050565b600061413a826140cf565b61414481856140da565b935061414f836140eb565b8060005b83811015614180578151614167888261410a565b975061417283614122565b925050600181019050614153565b5085935050505092915050565b600060a0820190506141a2600083018861310d565b6141af60208301876140c0565b81810360408301526141c1818661412f565b90506141d0606083018561341f565b6141dd608083018461310d565b9695505050505050565b60006060820190506141fc600083018661310d565b614209602083018561310d565b614216604083018461310d565b949350505050565b600060c082019050614233600083018961341f565b614240602083018861310d565b61424d60408301876140c0565b61425a60608301866140c0565b614267608083018561341f565b61427460a083018461310d565b979650505050505050565b600080600060608486031215614298576142976131e9565b5b60006142a6868287016138f2565b93505060206142b7868287016138f2565b92505060406142c8868287016138f2565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220488fe28cf86639ad8e32b4f30157e842f3323529aebc68ce528b817abbdd2e8464736f6c63430008110033
Deployed Bytecode Sourcemap
14465:12670:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15163:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15080:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4378:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17651:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26584:194;;;;;;;;;;;;;:::i;:::-;;23187:76;;;;;;;;;;;;;:::i;:::-;;14635:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17107:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17815:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23100:75;;;;;;;;;;;;;:::i;:::-;;4560:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15322:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18188:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19175:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14693:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15558:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19422:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23271:444;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17210:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3522:148;;;;;;;;;;;;;:::i;:::-;;15280:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15681:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2780:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18667:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4467:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18401:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17332:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16161:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18800:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18979:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15612:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17503:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26790:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15424:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15237:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19298:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3825:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15122:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23723:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15163:65;;;;:::o;15080:35::-;;;;:::o;4378:83::-;4415:13;4448:5;4441:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4378:83;:::o;17651:158::-;17723:4;17740:39;17749:12;:10;:12::i;:::-;17763:7;17772:6;17740:8;:39::i;:::-;17797:4;17790:11;;17651:158;;;;:::o;26584:194::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26674:1:::1;26650:21;:25;26641:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;26730:7;:5;:7::i;:::-;26722:25;;:48;26748:21;26722:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;26584:194::o:0;23187:76::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;23250:5:::1;23242;;:13;;;;;;;;;;;;;;;;;;23187:76::o:0;14635:51::-;;;:::o;17107:97::-;17160:4;17184:12;;17177:19;;17107:97;:::o;17815:367::-;17910:4;17942;17933:13;;:5;;;;;;;;;;;:13;;;17925:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17984:36;17994:6;18002:9;18013:6;17984:9;:36::i;:::-;18031:121;18040:6;18048:12;:10;:12::i;:::-;18062:89;18100:6;18062:89;;;;;;;;;;;;;;;;;:11;:19;18074:6;18062:19;;;;;;;;;;;;;;;:33;18082:12;:10;:12::i;:::-;18062:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18031:8;:121::i;:::-;18170:4;18163:11;;17815:367;;;;;:::o;23100:75::-;3131:12;:10;:12::i;:::-;3121:22;;:6;;;;;;;;;;:22;;;3113:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;23163:4:::1;23155:5;;:12;;;;;;;;;;;;;;;;;;23100:75::o:0;4560:83::-;4601:5;4626:9;;;;;;;;;;;4619:16;;4560:83;:::o;15322:68::-;;;;:::o;18188:207::-;18265:4;18282:83;18291:12;:10;:12::i;:::-;18305:7;18314:50;18353:10;18314:11;:25;18326:12;:10;:12::i;:::-;18314:25;;;;;;;;;;;;;;;:34;18340:7;18314:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18282:8;:83::i;:::-;18383:4;18376:11;;18188:207;;;;:::o;19175:111::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19274:4:::1;19244:18;:27;19263:7;19244:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19175:111:::0;:::o;14693:38::-;;;:::o;15558:40::-;;;;;;;;;;;;;:::o;19422:107::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19514:7:::1;19500:11;:21;;;;19422:107:::0;:::o;23271:444::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23398:19:::1;23379:16;:38;;;;23447:19;23428:16;:38;;;;23492;23513:16;;23492;;:20;;:38;;;;:::i;:::-;23477:12;:53;;;;23541:24;23594:38;23615:16;;23594;;:20;;:38;;;;:::i;:::-;23576:56;;23670:2;23651:15;:21;;23643:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23366:349;23271:444:::0;;:::o;17210:116::-;17276:4;17300:9;:18;17310:7;17300:18;;;;;;;;;;;;;;;;17293:25;;17210:116;;;:::o;3522:148::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3629:1:::1;3592:40;;3613:6;::::0;::::1;;;;;;;;3592:40;;;;;;;;;;;;3660:1;3643:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3522:148::o:0;15280:35::-;;;;:::o;15681:49::-;;;;:::o;2780:79::-;2818:7;2845:6;;;;;;;;;;;2838:13;;2780:79;:::o;18667:121::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18774:6:::1;18755:16;;:25;;;;;;;;;;;;;;;;;;18667:121:::0;:::o;4467:87::-;4506:13;4539:7;4532:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4467:87;:::o;18401:258::-;18483:4;18500:129;18509:12;:10;:12::i;:::-;18523:7;18532:96;18571:15;18532:96;;;;;;;;;;;;;;;;;:11;:25;18544:12;:10;:12::i;:::-;18532:25;;;;;;;;;;;;;;;:34;18558:7;18532:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18500:8;:129::i;:::-;18647:4;18640:11;;18401:258;;;;:::o;17332:165::-;17408:4;17425:42;17435:12;:10;:12::i;:::-;17449:9;17460:6;17425:9;:42::i;:::-;17485:4;17478:11;;17332:165;;;;:::o;16161:21::-;;;;;;;;;;;;;:::o;18800:171::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18901:8:::1;18877:21;;:32;;;;;;;;;;;;;;;;;;18925:38;18954:8;18925:38;;;;;;:::i;:::-;;;;;;;;18800:171:::0;:::o;18979:190::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19131:30:::1;19099:29;:62;;;;18979:190:::0;:::o;15612:62::-;;;;:::o;17503:142::-;17585:4;17609:11;:19;17621:6;17609:19;;;;;;;;;;;;;;;:28;17629:7;17609:28;;;;;;;;;;;;;;;;17602:35;;17503:142;;;;:::o;26790:339::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26892:4:::1;26872:25;;:8;:25;;::::0;26864:82:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;27009:1;26972:8;26965:26;;;27000:4;26965:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;26957:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;27051:8;27044:25;;;27070:7;:5;:7::i;:::-;27086:8;27079:26;;;27114:4;27079:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27044:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26790:339:::0;:::o;15424:93::-;;;;;;;;;;;;;:::o;15237:36::-;;;;:::o;19298:110::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19395:5:::1;19365:18;:27;19384:7;19365:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19298:110:::0;:::o;3825:244::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3934:1:::1;3914:22;;:8;:22;;::::0;3906:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4024:8;3995:38;;4016:6;::::0;::::1;;;;;;;;3995:38;;;;;;;;;;;;4053:8;4044:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3825:244:::0;:::o;15122:34::-;;;;:::o;23723:428::-;3002:12;:10;:12::i;:::-;2992:22;;:6;;;;;;;;;;:22;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23846:18:::1;23828:15;:36;;;;23893:18;23875:15;:36;;;;23936;23956:15;;23936;;:19;;:36;;;;:::i;:::-;23922:11;:50;;;;23983:23;24034:36;24054:15;;24034;;:19;;:36;;;;:::i;:::-;24017:53;;24107:2;24089:14;:20;;24081:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23815:336;23723:428:::0;;:::o;1196:169::-;1248:4;1265:6;1278:1;1274;:5;;;;:::i;:::-;1265:14;;1303:1;1298;:6;;1290:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1356:1;1349:8;;;1196:169;;;;:::o;424:90::-;469:7;496:10;489:17;;424:90;:::o;26237:339::-;26347:1;26329:20;;:6;:20;;;26321:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;26428:1;26409:21;;:7;:21;;;26401:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26513:6;26482:11;:19;26494:6;26482:19;;;;;;;;;;;;;;;:28;26502:7;26482:28;;;;;;;;;;;;;;;:37;;;;26552:7;26535:33;;26544:6;26535:33;;;26561:6;26535:33;;;;;;:::i;:::-;;;;;;;;26237:339;;;:::o;19632:3454::-;19746:1;19728:20;;:6;:20;;;19720:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19830:1;19809:23;;:9;:23;;;19801:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19896:7;:5;:7::i;:::-;19886:17;;:6;:17;;;;:41;;;;;19920:7;:5;:7::i;:::-;19907:20;;:9;:20;;;;19886:41;19883:146;;;19971:11;;19961:6;:21;;19953:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19883:146;20323:28;20354:24;20372:4;20354:9;:24::i;:::-;20323:55;;20401:24;20452:29;;20428:20;:53;;20401:80;;20510:19;:45;;;;;20547:8;;;;;;;;;;;20546:9;20510:45;:85;;;;;20582:13;20572:23;;:6;:23;;;;20510:85;:123;;;;;20612:21;;;;;;;;;;;20510:123;20492:895;;;20671:4;20660:8;;:15;;;;;;;;;;;;;;;;;;20703:20;20726:60;20773:12;;20726:42;20751:16;;20726:20;:24;;:42;;;;:::i;:::-;:46;;:60;;;;:::i;:::-;20703:83;;20801:23;20827:21;20801:47;;20863:30;20880:12;20863:16;:30::i;:::-;20908:18;20929:42;20955:15;20929:21;:25;;:42;;;;:::i;:::-;20908:63;;20986:22;21011:56;21049:16;;21011:32;21026:16;;21011:10;:14;;:32;;;;:::i;:::-;:36;;:56;;;;:::i;:::-;20986:81;;21159:16;;;;;;;;;;;21151:34;;:50;21186:14;21151:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21218:18;21239:60;21286:12;;21239:42;21264:16;;21239:20;:24;;:42;;;;:::i;:::-;:46;;:60;;;;:::i;:::-;21218:81;;21314:26;21329:10;21314:14;:26::i;:::-;21368:5;21357:8;;:16;;;;;;;;;;;;;;;;;;20645:742;;;;;20492:895;21469:12;21485:8;;;;;;;;;;;21484:9;21469:24;;21601:18;:26;21620:6;21601:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;21631:18;:29;21650:9;21631:29;;;;;;;;;;;;;;;;;;;;;;;;;21601:59;21598:105;;;21686:5;21676:15;;21598:105;21728:13;21718:23;;:6;:23;;;;:53;;;;;21758:13;21745:26;;:9;:26;;;;21718:53;21715:109;;;21807:5;21797:15;;21715:109;21837:7;21834:416;;;21869:13;21859:23;;:6;:23;;;21856:189;;21923:15;;21908:12;:30;;;;21968:15;;21953:12;:30;;;;22009:11;;21998:8;:22;;;;21856:189;22071:13;22058:26;;:9;:26;;;22055:184;;22125:16;;22110:12;:31;;;;22171:16;;22156:12;:31;;;;22213:12;;22202:8;:23;;;;22055:184;21834:416;22272:7;22269:800;;;22305:17;22325:29;22350:3;22325:20;22336:8;;22325:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22305:49;;22369:17;22389:21;22400:9;22389:6;:10;;:21;;;;:::i;:::-;22369:41;;22445:71;22467:6;22445:71;;;;;;;;;;;;;;;;;:9;:17;22455:6;22445:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22425:9;:17;22435:6;22425:17;;;;;;;;;;;;;;;:91;;;;22554:35;22579:9;22554;:20;22564:9;22554:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;22531:9;:20;22541:9;22531:20;;;;;;;;;;;;;;;:58;;;;22631:39;22660:9;22631;:24;22649:4;22631:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;22604:9;:24;22622:4;22604:24;;;;;;;;;;;;;;;:66;;;;22707:9;22690:38;;22699:6;22690:38;;;22718:9;22690:38;;;;;;:::i;:::-;;;;;;;;22773:4;22748:42;;22757:6;22748:42;;;22780:9;22748:42;;;;;;:::i;:::-;;;;;;;;22290:512;;22269:800;;;22861:71;22883:6;22861:71;;;;;;;;;;;;;;;;;:9;:17;22871:6;22861:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22841:9;:17;22851:6;22841:17;;;;;;;;;;;;;;;:91;;;;22970:32;22995:6;22970:9;:20;22980:9;22970:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22947:9;:20;22957:9;22947:20;;;;;;;;;;;;;;;:55;;;;23039:9;23022:35;;23031:6;23022:35;;;23050:6;23022:35;;;;;;:::i;:::-;;;;;;;;22269:800;19707:3379;;;19632:3454;;;:::o;1504:180::-;1584:4;1614:1;1609;:6;;1617:12;1601:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1641:6;1654:1;1650;:5;;;;:::i;:::-;1641:14;;1675:1;1668:8;;;1504:180;;;;;:::o;1690:238::-;1742:4;1768:1;1763;:6;1759:47;;1793:1;1786:8;;;;1759:47;1818:6;1831:1;1827;:5;;;;:::i;:::-;1818:14;;1860:1;1855;1851;:5;;;;:::i;:::-;:10;1843:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1919:1;1912:8;;;1690:238;;;;;:::o;1934:123::-;1986:4;2010:39;2014:1;2017;2010:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2003:46;;1934:123;;;;:::o;25640:589::-;25766:21;25804:1;25790:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25766:40;;25835:4;25817;25822:1;25817:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25861:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25851:4;25856:1;25851:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25896:62;25913:4;25928:15;25946:11;25896:8;:62::i;:::-;25997:15;:66;;;26078:11;26104:1;26148:4;26175;26195:15;25997:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25695:534;25640:589;:::o;1371:127::-;1423:4;1447:43;1451:1;1454;1447:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1440:50;;1371:127;;;;:::o;24162:943::-;16092:4;16073:16;;:23;;;;;;;;;;;;;;;;;;24292:12:::1;24307:13;24318:1;24307:6;:10;;:13;;;;:::i;:::-;24292:28;;24331:17;24351:16;24362:4;24351:6;:10;;:16;;;;:::i;:::-;24331:36;;24645:22;24670:21;24645:46;;24736:22;24753:4;24736:16;:22::i;:::-;24889:18;24910:41;24936:14;24910:21;:25;;:41;;;;:::i;:::-;24889:62;;25001:35;25014:9;25025:10;25001:12;:35::i;:::-;25054:43;25069:4;25075:10;25087:9;25054:43;;;;;;;;:::i;:::-;;;;;;;;24222:883;;;;16138:5:::0;16119:16;;:24;;;;;;;;;;;;;;;;;;24162:943;:::o;2063:246::-;2143:4;2239:1;2235;:5;2242:12;2227:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2266:6;2279:1;2275;:5;;;;:::i;:::-;2266:14;;2300:1;2293:8;;;2063:246;;;;;:::o;25115:517::-;25265:62;25282:4;25297:15;25315:11;25265:8;:62::i;:::-;25370:15;:31;;;25409:9;25442:4;25462:11;25488:1;25531;25574:7;:5;:7::i;:::-;25596:15;25370:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25115:517;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:329::-;5890:6;5939:2;5927:9;5918:7;5914:23;5910:32;5907:119;;;5945:79;;:::i;:::-;5907:119;6065:1;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6036:117;5831:329;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:329::-;6577:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:119;;;6632:79;;:::i;:::-;6594:119;6752:1;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6723:117;6518:329;;;;:::o;6853:474::-;6921:6;6929;6978:2;6966:9;6957:7;6953:23;6949:32;6946:119;;;6984:79;;:::i;:::-;6946:119;7104:1;7129:53;7174:7;7165:6;7154:9;7150:22;7129:53;:::i;:::-;7119:63;;7075:117;7231:2;7257:53;7302:7;7293:6;7282:9;7278:22;7257:53;:::i;:::-;7247:63;;7202:118;6853:474;;;;;:::o;7333:104::-;7378:7;7407:24;7425:5;7407:24;:::i;:::-;7396:35;;7333:104;;;:::o;7443:138::-;7524:32;7550:5;7524:32;:::i;:::-;7517:5;7514:43;7504:71;;7571:1;7568;7561:12;7504:71;7443:138;:::o;7587:155::-;7641:5;7679:6;7666:20;7657:29;;7695:41;7730:5;7695:41;:::i;:::-;7587:155;;;;:::o;7748:345::-;7815:6;7864:2;7852:9;7843:7;7839:23;7835:32;7832:119;;;7870:79;;:::i;:::-;7832:119;7990:1;8015:61;8068:7;8059:6;8048:9;8044:22;8015:61;:::i;:::-;8005:71;;7961:125;7748:345;;;;:::o;8099:116::-;8169:21;8184:5;8169:21;:::i;:::-;8162:5;8159:32;8149:60;;8205:1;8202;8195:12;8149:60;8099:116;:::o;8221:133::-;8264:5;8302:6;8289:20;8280:29;;8318:30;8342:5;8318:30;:::i;:::-;8221:133;;;;:::o;8360:323::-;8416:6;8465:2;8453:9;8444:7;8440:23;8436:32;8433:119;;;8471:79;;:::i;:::-;8433:119;8591:1;8616:50;8658:7;8649:6;8638:9;8634:22;8616:50;:::i;:::-;8606:60;;8562:114;8360:323;;;;:::o;8689:474::-;8757:6;8765;8814:2;8802:9;8793:7;8789:23;8785:32;8782:119;;;8820:79;;:::i;:::-;8782:119;8940:1;8965:53;9010:7;9001:6;8990:9;8986:22;8965:53;:::i;:::-;8955:63;;8911:117;9067:2;9093:53;9138:7;9129:6;9118:9;9114:22;9093:53;:::i;:::-;9083:63;;9038:118;8689:474;;;;;:::o;9169:142::-;9272:32;9298:5;9272:32;:::i;:::-;9267:3;9260:45;9169:142;;:::o;9317:254::-;9426:4;9464:2;9453:9;9449:18;9441:26;;9477:87;9561:1;9550:9;9546:17;9537:6;9477:87;:::i;:::-;9317:254;;;;:::o;9577:180::-;9625:77;9622:1;9615:88;9722:4;9719:1;9712:15;9746:4;9743:1;9736:15;9763:320;9807:6;9844:1;9838:4;9834:12;9824:22;;9891:1;9885:4;9881:12;9912:18;9902:81;;9968:4;9960:6;9956:17;9946:27;;9902:81;10030:2;10022:6;10019:14;9999:18;9996:38;9993:84;;10049:18;;:::i;:::-;9993:84;9814:269;9763:320;;;:::o;10089:182::-;10229:34;10225:1;10217:6;10213:14;10206:58;10089:182;:::o;10277:366::-;10419:3;10440:67;10504:2;10499:3;10440:67;:::i;:::-;10433:74;;10516:93;10605:3;10516:93;:::i;:::-;10634:2;10629:3;10625:12;10618:19;;10277:366;;;:::o;10649:419::-;10815:4;10853:2;10842:9;10838:18;10830:26;;10902:9;10896:4;10892:20;10888:1;10877:9;10873:17;10866:47;10930:131;11056:4;10930:131;:::i;:::-;10922:139;;10649:419;;;:::o;11074:181::-;11214:33;11210:1;11202:6;11198:14;11191:57;11074:181;:::o;11261:366::-;11403:3;11424:67;11488:2;11483:3;11424:67;:::i;:::-;11417:74;;11500:93;11589:3;11500:93;:::i;:::-;11618:2;11613:3;11609:12;11602:19;;11261:366;;;:::o;11633:419::-;11799:4;11837:2;11826:9;11822:18;11814:26;;11886:9;11880:4;11876:20;11872:1;11861:9;11857:17;11850:47;11914:131;12040:4;11914:131;:::i;:::-;11906:139;;11633:419;;;:::o;12058:161::-;12198:13;12194:1;12186:6;12182:14;12175:37;12058:161;:::o;12225:366::-;12367:3;12388:67;12452:2;12447:3;12388:67;:::i;:::-;12381:74;;12464:93;12553:3;12464:93;:::i;:::-;12582:2;12577:3;12573:12;12566:19;;12225:366;;;:::o;12597:419::-;12763:4;12801:2;12790:9;12786:18;12778:26;;12850:9;12844:4;12840:20;12836:1;12825:9;12821:17;12814:47;12878:131;13004:4;12878:131;:::i;:::-;12870:139;;12597:419;;;:::o;13022:173::-;13162:25;13158:1;13150:6;13146:14;13139:49;13022:173;:::o;13201:366::-;13343:3;13364:67;13428:2;13423:3;13364:67;:::i;:::-;13357:74;;13440:93;13529:3;13440:93;:::i;:::-;13558:2;13553:3;13549:12;13542:19;;13201:366;;;:::o;13573:419::-;13739:4;13777:2;13766:9;13762:18;13754:26;;13826:9;13820:4;13816:20;13812:1;13801:9;13797:17;13790:47;13854:131;13980:4;13854:131;:::i;:::-;13846:139;;13573:419;;;:::o;13998:180::-;14138:32;14134:1;14126:6;14122:14;14115:56;13998:180;:::o;14184:366::-;14326:3;14347:67;14411:2;14406:3;14347:67;:::i;:::-;14340:74;;14423:93;14512:3;14423:93;:::i;:::-;14541:2;14536:3;14532:12;14525:19;;14184:366;;;:::o;14556:419::-;14722:4;14760:2;14749:9;14745:18;14737:26;;14809:9;14803:4;14799:20;14795:1;14784:9;14780:17;14773:47;14837:131;14963:4;14837:131;:::i;:::-;14829:139;;14556:419;;;:::o;14981:231::-;15121:34;15117:1;15109:6;15105:14;15098:58;15190:14;15185:2;15177:6;15173:15;15166:39;14981:231;:::o;15218:366::-;15360:3;15381:67;15445:2;15440:3;15381:67;:::i;:::-;15374:74;;15457:93;15546:3;15457:93;:::i;:::-;15575:2;15570:3;15566:12;15559:19;;15218:366;;;:::o;15590:419::-;15756:4;15794:2;15783:9;15779:18;15771:26;;15843:9;15837:4;15833:20;15829:1;15818:9;15814:17;15807:47;15871:131;15997:4;15871:131;:::i;:::-;15863:139;;15590:419;;;:::o;16015:143::-;16072:5;16103:6;16097:13;16088:22;;16119:33;16146:5;16119:33;:::i;:::-;16015:143;;;;:::o;16164:351::-;16234:6;16283:2;16271:9;16262:7;16258:23;16254:32;16251:119;;;16289:79;;:::i;:::-;16251:119;16409:1;16434:64;16490:7;16481:6;16470:9;16466:22;16434:64;:::i;:::-;16424:74;;16380:128;16164:351;;;;:::o;16521:166::-;16661:18;16657:1;16649:6;16645:14;16638:42;16521:166;:::o;16693:366::-;16835:3;16856:67;16920:2;16915:3;16856:67;:::i;:::-;16849:74;;16932:93;17021:3;16932:93;:::i;:::-;17050:2;17045:3;17041:12;17034:19;;16693:366;;;:::o;17065:419::-;17231:4;17269:2;17258:9;17254:18;17246:26;;17318:9;17312:4;17308:20;17304:1;17293:9;17289:17;17282:47;17346:131;17472:4;17346:131;:::i;:::-;17338:139;;17065:419;;;:::o;17490:332::-;17611:4;17649:2;17638:9;17634:18;17626:26;;17662:71;17730:1;17719:9;17715:17;17706:6;17662:71;:::i;:::-;17743:72;17811:2;17800:9;17796:18;17787:6;17743:72;:::i;:::-;17490:332;;;;;:::o;17828:137::-;17882:5;17913:6;17907:13;17898:22;;17929:30;17953:5;17929:30;:::i;:::-;17828:137;;;;:::o;17971:345::-;18038:6;18087:2;18075:9;18066:7;18062:23;18058:32;18055:119;;;18093:79;;:::i;:::-;18055:119;18213:1;18238:61;18291:7;18282:6;18271:9;18267:22;18238:61;:::i;:::-;18228:71;;18184:125;17971:345;;;;:::o;18322:225::-;18462:34;18458:1;18450:6;18446:14;18439:58;18531:8;18526:2;18518:6;18514:15;18507:33;18322:225;:::o;18553:366::-;18695:3;18716:67;18780:2;18775:3;18716:67;:::i;:::-;18709:74;;18792:93;18881:3;18792:93;:::i;:::-;18910:2;18905:3;18901:12;18894:19;;18553:366;;;:::o;18925:419::-;19091:4;19129:2;19118:9;19114:18;19106:26;;19178:9;19172:4;19168:20;19164:1;19153:9;19149:17;19142:47;19206:131;19332:4;19206:131;:::i;:::-;19198:139;;18925:419;;;:::o;19350:179::-;19490:31;19486:1;19478:6;19474:14;19467:55;19350:179;:::o;19535:366::-;19677:3;19698:67;19762:2;19757:3;19698:67;:::i;:::-;19691:74;;19774:93;19863:3;19774:93;:::i;:::-;19892:2;19887:3;19883:12;19876:19;;19535:366;;;:::o;19907:419::-;20073:4;20111:2;20100:9;20096:18;20088:26;;20160:9;20154:4;20150:20;20146:1;20135:9;20131:17;20124:47;20188:131;20314:4;20188:131;:::i;:::-;20180:139;;19907:419;;;:::o;20332:180::-;20380:77;20377:1;20370:88;20477:4;20474:1;20467:15;20501:4;20498:1;20491:15;20518:191;20558:3;20577:20;20595:1;20577:20;:::i;:::-;20572:25;;20611:20;20629:1;20611:20;:::i;:::-;20606:25;;20654:1;20651;20647:9;20640:16;;20675:3;20672:1;20669:10;20666:36;;;20682:18;;:::i;:::-;20666:36;20518:191;;;;:::o;20715:177::-;20855:29;20851:1;20843:6;20839:14;20832:53;20715:177;:::o;20898:366::-;21040:3;21061:67;21125:2;21120:3;21061:67;:::i;:::-;21054:74;;21137:93;21226:3;21137:93;:::i;:::-;21255:2;21250:3;21246:12;21239:19;;20898:366;;;:::o;21270:419::-;21436:4;21474:2;21463:9;21459:18;21451:26;;21523:9;21517:4;21513:20;21509:1;21498:9;21494:17;21487:47;21551:131;21677:4;21551:131;:::i;:::-;21543:139;;21270:419;;;:::o;21695:223::-;21835:34;21831:1;21823:6;21819:14;21812:58;21904:6;21899:2;21891:6;21887:15;21880:31;21695:223;:::o;21924:366::-;22066:3;22087:67;22151:2;22146:3;22087:67;:::i;:::-;22080:74;;22163:93;22252:3;22163:93;:::i;:::-;22281:2;22276:3;22272:12;22265:19;;21924:366;;;:::o;22296:419::-;22462:4;22500:2;22489:9;22485:18;22477:26;;22549:9;22543:4;22539:20;22535:1;22524:9;22520:17;22513:47;22577:131;22703:4;22577:131;:::i;:::-;22569:139;;22296:419;;;:::o;22721:221::-;22861:34;22857:1;22849:6;22845:14;22838:58;22930:4;22925:2;22917:6;22913:15;22906:29;22721:221;:::o;22948:366::-;23090:3;23111:67;23175:2;23170:3;23111:67;:::i;:::-;23104:74;;23187:93;23276:3;23187:93;:::i;:::-;23305:2;23300:3;23296:12;23289:19;;22948:366;;;:::o;23320:419::-;23486:4;23524:2;23513:9;23509:18;23501:26;;23573:9;23567:4;23563:20;23559:1;23548:9;23544:17;23537:47;23601:131;23727:4;23601:131;:::i;:::-;23593:139;;23320:419;;;:::o;23745:224::-;23885:34;23881:1;23873:6;23869:14;23862:58;23954:7;23949:2;23941:6;23937:15;23930:32;23745:224;:::o;23975:366::-;24117:3;24138:67;24202:2;24197:3;24138:67;:::i;:::-;24131:74;;24214:93;24303:3;24214:93;:::i;:::-;24332:2;24327:3;24323:12;24316:19;;23975:366;;;:::o;24347:419::-;24513:4;24551:2;24540:9;24536:18;24528:26;;24600:9;24594:4;24590:20;24586:1;24575:9;24571:17;24564:47;24628:131;24754:4;24628:131;:::i;:::-;24620:139;;24347:419;;;:::o;24772:222::-;24912:34;24908:1;24900:6;24896:14;24889:58;24981:5;24976:2;24968:6;24964:15;24957:30;24772:222;:::o;25000:366::-;25142:3;25163:67;25227:2;25222:3;25163:67;:::i;:::-;25156:74;;25239:93;25328:3;25239:93;:::i;:::-;25357:2;25352:3;25348:12;25341:19;;25000:366;;;:::o;25372:419::-;25538:4;25576:2;25565:9;25561:18;25553:26;;25625:9;25619:4;25615:20;25611:1;25600:9;25596:17;25589:47;25653:131;25779:4;25653:131;:::i;:::-;25645:139;;25372:419;;;:::o;25797:180::-;25937:32;25933:1;25925:6;25921:14;25914:56;25797:180;:::o;25983:366::-;26125:3;26146:67;26210:2;26205:3;26146:67;:::i;:::-;26139:74;;26222:93;26311:3;26222:93;:::i;:::-;26340:2;26335:3;26331:12;26324:19;;25983:366;;;:::o;26355:419::-;26521:4;26559:2;26548:9;26544:18;26536:26;;26608:9;26602:4;26598:20;26594:1;26583:9;26579:17;26572:47;26636:131;26762:4;26636:131;:::i;:::-;26628:139;;26355:419;;;:::o;26780:194::-;26820:4;26840:20;26858:1;26840:20;:::i;:::-;26835:25;;26874:20;26892:1;26874:20;:::i;:::-;26869:25;;26918:1;26915;26911:9;26903:17;;26942:1;26936:4;26933:11;26930:37;;;26947:18;;:::i;:::-;26930:37;26780:194;;;;:::o;26980:410::-;27020:7;27043:20;27061:1;27043:20;:::i;:::-;27038:25;;27077:20;27095:1;27077:20;:::i;:::-;27072:25;;27132:1;27129;27125:9;27154:30;27172:11;27154:30;:::i;:::-;27143:41;;27333:1;27324:7;27320:15;27317:1;27314:22;27294:1;27287:9;27267:83;27244:139;;27363:18;;:::i;:::-;27244:139;27028:362;26980:410;;;;:::o;27396:180::-;27444:77;27441:1;27434:88;27541:4;27538:1;27531:15;27565:4;27562:1;27555:15;27582:185;27622:1;27639:20;27657:1;27639:20;:::i;:::-;27634:25;;27673:20;27691:1;27673:20;:::i;:::-;27668:25;;27712:1;27702:35;;27717:18;;:::i;:::-;27702:35;27759:1;27756;27752:9;27747:14;;27582:185;;;;:::o;27773:220::-;27913:34;27909:1;27901:6;27897:14;27890:58;27982:3;27977:2;27969:6;27965:15;27958:28;27773:220;:::o;27999:366::-;28141:3;28162:67;28226:2;28221:3;28162:67;:::i;:::-;28155:74;;28238:93;28327:3;28238:93;:::i;:::-;28356:2;28351:3;28347:12;28340:19;;27999:366;;;:::o;28371:419::-;28537:4;28575:2;28564:9;28560:18;28552:26;;28624:9;28618:4;28614:20;28610:1;28599:9;28595:17;28588:47;28652:131;28778:4;28652:131;:::i;:::-;28644:139;;28371:419;;;:::o;28796:180::-;28844:77;28841:1;28834:88;28941:4;28938:1;28931:15;28965:4;28962:1;28955:15;28982:180;29030:77;29027:1;29020:88;29127:4;29124:1;29117:15;29151:4;29148:1;29141:15;29168:143;29225:5;29256:6;29250:13;29241:22;;29272:33;29299:5;29272:33;:::i;:::-;29168:143;;;;:::o;29317:351::-;29387:6;29436:2;29424:9;29415:7;29411:23;29407:32;29404:119;;;29442:79;;:::i;:::-;29404:119;29562:1;29587:64;29643:7;29634:6;29623:9;29619:22;29587:64;:::i;:::-;29577:74;;29533:128;29317:351;;;;:::o;29674:85::-;29719:7;29748:5;29737:16;;29674:85;;;:::o;29765:158::-;29823:9;29856:61;29874:42;29883:32;29909:5;29883:32;:::i;:::-;29874:42;:::i;:::-;29856:61;:::i;:::-;29843:74;;29765:158;;;:::o;29929:147::-;30024:45;30063:5;30024:45;:::i;:::-;30019:3;30012:58;29929:147;;:::o;30082:114::-;30149:6;30183:5;30177:12;30167:22;;30082:114;;;:::o;30202:184::-;30301:11;30335:6;30330:3;30323:19;30375:4;30370:3;30366:14;30351:29;;30202:184;;;;:::o;30392:132::-;30459:4;30482:3;30474:11;;30512:4;30507:3;30503:14;30495:22;;30392:132;;;:::o;30530:108::-;30607:24;30625:5;30607:24;:::i;:::-;30602:3;30595:37;30530:108;;:::o;30644:179::-;30713:10;30734:46;30776:3;30768:6;30734:46;:::i;:::-;30812:4;30807:3;30803:14;30789:28;;30644:179;;;;:::o;30829:113::-;30899:4;30931;30926:3;30922:14;30914:22;;30829:113;;;:::o;30978:732::-;31097:3;31126:54;31174:5;31126:54;:::i;:::-;31196:86;31275:6;31270:3;31196:86;:::i;:::-;31189:93;;31306:56;31356:5;31306:56;:::i;:::-;31385:7;31416:1;31401:284;31426:6;31423:1;31420:13;31401:284;;;31502:6;31496:13;31529:63;31588:3;31573:13;31529:63;:::i;:::-;31522:70;;31615:60;31668:6;31615:60;:::i;:::-;31605:70;;31461:224;31448:1;31445;31441:9;31436:14;;31401:284;;;31405:14;31701:3;31694:10;;31102:608;;;30978:732;;;;:::o;31716:831::-;31979:4;32017:3;32006:9;32002:19;31994:27;;32031:71;32099:1;32088:9;32084:17;32075:6;32031:71;:::i;:::-;32112:80;32188:2;32177:9;32173:18;32164:6;32112:80;:::i;:::-;32239:9;32233:4;32229:20;32224:2;32213:9;32209:18;32202:48;32267:108;32370:4;32361:6;32267:108;:::i;:::-;32259:116;;32385:72;32453:2;32442:9;32438:18;32429:6;32385:72;:::i;:::-;32467:73;32535:3;32524:9;32520:19;32511:6;32467:73;:::i;:::-;31716:831;;;;;;;;:::o;32553:442::-;32702:4;32740:2;32729:9;32725:18;32717:26;;32753:71;32821:1;32810:9;32806:17;32797:6;32753:71;:::i;:::-;32834:72;32902:2;32891:9;32887:18;32878:6;32834:72;:::i;:::-;32916;32984:2;32973:9;32969:18;32960:6;32916:72;:::i;:::-;32553:442;;;;;;:::o;33001:807::-;33250:4;33288:3;33277:9;33273:19;33265:27;;33302:71;33370:1;33359:9;33355:17;33346:6;33302:71;:::i;:::-;33383:72;33451:2;33440:9;33436:18;33427:6;33383:72;:::i;:::-;33465:80;33541:2;33530:9;33526:18;33517:6;33465:80;:::i;:::-;33555;33631:2;33620:9;33616:18;33607:6;33555:80;:::i;:::-;33645:73;33713:3;33702:9;33698:19;33689:6;33645:73;:::i;:::-;33728;33796:3;33785:9;33781:19;33772:6;33728:73;:::i;:::-;33001:807;;;;;;;;;:::o;33814:663::-;33902:6;33910;33918;33967:2;33955:9;33946:7;33942:23;33938:32;33935:119;;;33973:79;;:::i;:::-;33935:119;34093:1;34118:64;34174:7;34165:6;34154:9;34150:22;34118:64;:::i;:::-;34108:74;;34064:128;34231:2;34257:64;34313:7;34304:6;34293:9;34289:22;34257:64;:::i;:::-;34247:74;;34202:129;34370:2;34396:64;34452:7;34443:6;34432:9;34428:22;34396:64;:::i;:::-;34386:74;;34341:129;33814:663;;;;;:::o
Swarm Source
ipfs://488fe28cf86639ad8e32b4f30157e842f3323529aebc68ce528b817abbdd2e84
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.