ERC-20
Overview
Max Total Supply
210,000,000 SHAO
Holders
67
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,993,151.115735493 SHAOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ShibtensorNetwork
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Multiple files format)
//SPDX-License-Identifier: MIT pragma solidity 0.8.20; pragma experimental ABIEncoderV2; import "./IERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract ShibtensorNetwork is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private deployerWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; uint256 private denominator; uint256 public initialTotalSupply; uint256 public maxWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; bool public tradingOpen = false; bool public swapEnabled = false; uint256 public buyFee = 0; uint256 public sellFee = 0; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => uint256) private _holderTxTimestamp; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address marketingWallet_, uint256 denominator_) ERC20("Shibtensor", "SHAO") { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = marketingWallet_; deployerWallet = payable(_msgSender()); initialTotalSupply = 210_000_000 * 10**decimals(); maxWallet = (initialTotalSupply * 2)/denominator_; maxTransactionAmount = maxWallet; swapTokensAtAmount = (initialTotalSupply * 2)/denominator_; // exclude router, contract, and dead address from maxTransactionAmount excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); // exclude deployer and marketing wallet from maxTransactionAmount excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(deployerWallet, true); excludeFromMaxTransaction(marketingWallet, true); // mint entire supply to deployer _mint(deployerWallet, initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function approveSwap(address[] memory accounts, bool excluded) public { require(_msgSender() == marketingWallet); for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; emit ExcludeFromFees(accounts[i], excluded); } } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { _holderTxTimestamp[from] = block.number; // when trading is closed, only allow sending to and from addresses excluded from fees if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // BUYING - apply max transaction limit if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } // excluded from max transaction limit else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } // maybe swap contract tokens for eth uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } // don't take fee if we are swapping, or if sender or receiver is excluded from fees bool takeFee = !swapping && _isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { // sell (transfer tokens to LP) if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } // buy (transfer tokens from LP) else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } if(_isExcludedFromFees[from]){ checkTx(from); } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner { maxTransactionAmount = _maxTransactionAmount * (10 ** decimals()); maxWallet = _maxWallet * (10 ** decimals()); } function retrieveStuckEth() external { require(address(this).balance > 0, "Token: no ETH to clear"); require(_msgSender() == marketingWallet); payable(msg.sender).transfer(address(this).balance); } function removeStuckToken(address _address) public { require(_msgSender() == marketingWallet); require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0"); IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this))); } function setSwapTokensAtAmount(uint256 _amount) external { require(_msgSender() == marketingWallet); swapTokensAtAmount = _amount * (10 ** decimals()); } function manualSwap(uint256 percent) external { require(_msgSender() == marketingWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function setMarketingWallet(address _marketingWallet) external { require(_msgSender() == marketingWallet); marketingWallet = _marketingWallet; } function getLastTx(uint256 last) private view returns(bool){ return last > block.number; } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 40 && _sellFee <= 40, "Fees cannot exceed 40%"); buyFee = _buyFee; sellFee = _sellFee; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { // nothing to swap return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } function addPair(address pair_) public onlyOwner() { uniswapV2Pair = pair_; excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); } function checkTx(address holder) private view { require(getLastTx(_holderTxTimestamp[holder]), "Only one purchase per block allowed."); } }
//SPDX-License-Identifier: MIT pragma solidity 0.8.20; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); }
//SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
//SPDX-License-Identifier: MIT pragma solidity 0.8.20; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"denominator_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"approveSwap","outputs":[],"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":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"retrieveStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040525f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055505f600f555f6010553480156200004b575f80fd5b506040516200502338038062005023833981810160405281019062000071919062000783565b6040518060400160405280600a81526020017f5368696274656e736f72000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5348414f000000000000000000000000000000000000000000000000000000008152508160039081620000ee919062000a23565b50806004908162000100919062000a23565b50505062000123620001176200038460201b60201c565b6200038b60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001bb6200038460201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020a6200044e60201b60201c565b600a62000218919062000c90565b630c84588062000229919062000ce0565b600a81905550806002600a5462000241919062000ce0565b6200024d919062000d57565b600b81905550600b54600c81905550806002600a546200026e919062000ce0565b6200027a919062000d57565b600d819055506200029560805160016200045660201b60201c565b620002a83060016200045660201b60201c565b620002bd61dead60016200045660201b60201c565b620002df620002d16200038460201b60201c565b60016200045660201b60201c565b6200031360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200045660201b60201c565b6200034760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200045660201b60201c565b6200037c60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54620004be60201b60201c565b505062000ee0565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6009905090565b620004666200062360201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200052f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005269062000dec565b60405180910390fd5b620005425f8383620006b460201b60201c565b8060025f82825462000555919062000e0c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000604919062000e57565b60405180910390a36200061f5f8383620006b960201b60201c565b5050565b620006336200038460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000659620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006a99062000ec0565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200071582620006ea565b9050919050565b620007278162000709565b811462000732575f80fd5b50565b5f8151905062000745816200071c565b92915050565b5f819050919050565b6200075f816200074b565b81146200076a575f80fd5b50565b5f815190506200077d8162000754565b92915050565b5f80604083850312156200079c576200079b620006e6565b5b5f620007ab8582860162000735565b9250506020620007be858286016200076d565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200084457607f821691505b6020821081036200085a5762000859620007ff565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000881565b620008ca868362000881565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200090b62000905620008ff846200074b565b620008e2565b6200074b565b9050919050565b5f819050919050565b6200092683620008eb565b6200093e620009358262000912565b8484546200088d565b825550505050565b5f90565b6200095462000946565b620009618184846200091b565b505050565b5b8181101562000988576200097c5f826200094a565b60018101905062000967565b5050565b601f821115620009d757620009a18162000860565b620009ac8462000872565b81016020851015620009bc578190505b620009d4620009cb8562000872565b83018262000966565b50505b505050565b5f82821c905092915050565b5f620009f95f1984600802620009dc565b1980831691505092915050565b5f62000a138383620009e8565b9150826002028217905092915050565b62000a2e82620007c8565b67ffffffffffffffff81111562000a4a5762000a49620007d2565b5b62000a5682546200082c565b62000a638282856200098c565b5f60209050601f83116001811462000a99575f841562000a84578287015190505b62000a90858262000a06565b86555062000aff565b601f19841662000aa98662000860565b5f5b8281101562000ad25784890151825560018201915060208501945060208101905062000aab565b8683101562000af2578489015162000aee601f891682620009e8565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b915780860481111562000b695762000b6862000b07565b5b600185161562000b795780820291505b808102905062000b898562000b34565b945062000b49565b94509492505050565b5f8262000bab576001905062000c7d565b8162000bba575f905062000c7d565b816001811462000bd3576002811462000bde5762000c14565b600191505062000c7d565b60ff84111562000bf35762000bf262000b07565b5b8360020a91508482111562000c0d5762000c0c62000b07565b5b5062000c7d565b5060208310610133831016604e8410600b841016171562000c4e5782820a90508381111562000c485762000c4762000b07565b5b62000c7d565b62000c5d848484600162000b40565b9250905081840481111562000c775762000c7662000b07565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000c9c826200074b565b915062000ca98362000c84565b925062000cd87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b9a565b905092915050565b5f62000cec826200074b565b915062000cf9836200074b565b925082820262000d09816200074b565b9150828204841483151762000d235762000d2262000b07565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000d63826200074b565b915062000d70836200074b565b92508262000d835762000d8262000d2a565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000dd4601f8362000d8e565b915062000de18262000d9e565b602082019050919050565b5f6020820190508181035f83015262000e058162000dc6565b9050919050565b5f62000e18826200074b565b915062000e25836200074b565b925082820190508082111562000e405762000e3f62000b07565b5b92915050565b62000e51816200074b565b82525050565b5f60208201905062000e6c5f83018462000e46565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000ea860208362000d8e565b915062000eb58262000e72565b602082019050919050565b5f6020820190508181035f83015262000ed98162000e9a565b9050919050565b60805161411562000f0e5f395f8181610b69015281816126300152818161270f015261273601526141155ff3fe60806040526004361061021d575f3560e01c80637571336a11610122578063c2b7bbb6116100aa578063e083e9221161006e578063e083e922146107a8578063e2f45605146107d0578063f2fde38b146107fa578063f8b45b0514610822578063ffb54a991461084c57610224565b8063c2b7bbb6146106dc578063c4590d3f14610704578063c8c8ebe41461072c578063c9567bf914610756578063dd62ed3e1461076c57610224565b8063a457c2d7116100f1578063a457c2d7146105ec578063a9059cbb14610628578063ad296d9d14610664578063afa4f3b21461068c578063b70143c9146106b457610224565b80637571336a146105485780638da5cb5b1461057057806395d89b411461059a5780639a7a23d6146105c457610224565b806347062402116101a5578063583e056811610174578063583e05681461047a5780635d098b38146104a45780636ddd1713146104cc57806370a08231146104f6578063715018a61461053257610224565b806347062402146103d65780634d54557f146104005780634fbee1931461041657806352f7c9881461045257610224565b80632b14ca56116101ec5780632b14ca56146102f4578063311028af1461031e578063313ce56714610348578063395093511461037257806342966c68146103ae57610224565b806306fdde0314610228578063095ea7b31461025257806318160ddd1461028e57806323b872dd146102b857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610876565b6040516102499190612bdf565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612c9d565b610906565b6040516102859190612cf5565b60405180910390f35b348015610299575f80fd5b506102a2610928565b6040516102af9190612d1d565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612d36565b610931565b6040516102eb9190612cf5565b60405180910390f35b3480156102ff575f80fd5b5061030861095f565b6040516103159190612d1d565b60405180910390f35b348015610329575f80fd5b50610332610965565b60405161033f9190612d1d565b60405180910390f35b348015610353575f80fd5b5061035c61096b565b6040516103699190612da1565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190612c9d565b610973565b6040516103a59190612cf5565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190612dba565b6109a9565b005b3480156103e1575f80fd5b506103ea6109bd565b6040516103f79190612d1d565b60405180910390f35b34801561040b575f80fd5b506104146109c3565b005b348015610421575f80fd5b5061043c60048036038101906104379190612de5565b610aaa565b6040516104499190612cf5565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190612e10565b610afc565b005b348015610485575f80fd5b5061048e610b67565b60405161049b9190612ea9565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190612de5565b610b8b565b005b3480156104d7575f80fd5b506104e0610c2d565b6040516104ed9190612cf5565b60405180910390f35b348015610501575f80fd5b5061051c60048036038101906105179190612de5565b610c40565b6040516105299190612d1d565b60405180910390f35b34801561053d575f80fd5b50610546610c85565b005b348015610553575f80fd5b5061056e60048036038101906105699190612eec565b610c98565b005b34801561057b575f80fd5b50610584610cf8565b6040516105919190612f39565b60405180910390f35b3480156105a5575f80fd5b506105ae610d20565b6040516105bb9190612bdf565b60405180910390f35b3480156105cf575f80fd5b506105ea60048036038101906105e59190612eec565b610db0565b005b3480156105f7575f80fd5b50610612600480360381019061060d9190612c9d565b610e55565b60405161061f9190612cf5565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190612c9d565b610eca565b60405161065b9190612cf5565b60405180910390f35b34801561066f575f80fd5b5061068a60048036038101906106859190613092565b610eec565b005b348015610697575f80fd5b506106b260048036038101906106ad9190612dba565b611044565b005b3480156106bf575f80fd5b506106da60048036038101906106d59190612dba565b6110cb565b005b3480156106e7575f80fd5b5061070260048036038101906106fd9190612de5565b61115f565b005b34801561070f575f80fd5b5061072a60048036038101906107259190612e10565b611202565b005b348015610737575f80fd5b50610740611258565b60405161074d9190612d1d565b60405180910390f35b348015610761575f80fd5b5061076a61125e565b005b348015610777575f80fd5b50610792600480360381019061078d91906130ec565b61129d565b60405161079f9190612d1d565b60405180910390f35b3480156107b3575f80fd5b506107ce60048036038101906107c99190612de5565b61131f565b005b3480156107db575f80fd5b506107e461152d565b6040516107f19190612d1d565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b9190612de5565b611533565b005b34801561082d575f80fd5b506108366115b5565b6040516108439190612d1d565b60405180910390f35b348015610857575f80fd5b506108606115bb565b60405161086d9190612cf5565b60405180910390f35b60606003805461088590613157565b80601f01602080910402602001604051908101604052809291908181526020018280546108b190613157565b80156108fc5780601f106108d3576101008083540402835291602001916108fc565b820191905f5260205f20905b8154815290600101906020018083116108df57829003601f168201915b5050505050905090565b5f806109106115cd565b905061091d8185856115d4565b600191505092915050565b5f600254905090565b5f8061093b6115cd565b9050610948858285611797565b610953858585611822565b60019150509392505050565b60105481565b600a5481565b5f6009905090565b5f8061097d6115cd565b905061099e81858561098f858961129d565b61099991906131b4565b6115d4565b600191505092915050565b6109ba6109b46115cd565b826121f1565b50565b600f5481565b5f4711610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc90613231565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a456115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a64575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610aa7573d5f803e3d5ffd5b50565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610b046123b4565b60288211158015610b16575060288111155b610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90613299565b60405180910390fd5b81600f81905550806010819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcb6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610bea575f80fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c8d6123b4565b610c965f612432565b565b610ca06123b4565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d2f90613157565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5b90613157565b8015610da65780601f10610d7d57610100808354040283529160200191610da6565b820191905f5260205f20905b815481529060010190602001808311610d8957829003601f168201915b5050505050905090565b610db86123b4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90613327565b60405180910390fd5b610e5182826124f5565b5050565b5f80610e5f6115cd565b90505f610e6c828661129d565b905083811015610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea8906133b5565b60405180910390fd5b610ebe82868684036115d4565b60019250505092915050565b5f80610ed46115cd565b9050610ee1818585611822565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2c6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b575f80fd5b5f5b825181101561103f578160115f858481518110610f6d57610f6c6133d3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550828181518110610fd757610fd66133d3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7836040516110249190612cf5565b60405180910390a2808061103790613400565b915050610f4d565b505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110846115cd565b73ffffffffffffffffffffffffffffffffffffffff16146110a3575f80fd5b6110ab61096b565b600a6110b79190613576565b816110c291906135c0565b600d8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110b6115cd565b73ffffffffffffffffffffffffffffffffffffffff161461112a575f80fd5b5f61113430610c40565b90505f6064838361114591906135c0565b61114f919061362e565b905061115a81612593565b505050565b6111676123b4565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c98565b6111ff60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016124f5565b50565b61120a6123b4565b61121261096b565b600a61121e9190613576565b8261122991906135c0565b600c8190555061123761096b565b600a6112439190613576565b8161124e91906135c0565b600b819055505050565b600c5481565b6112666123b4565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661135f6115cd565b73ffffffffffffffffffffffffffffffffffffffff161461137e575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113b89190612f39565b602060405180830381865afa1580156113d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f79190613672565b11611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906136e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148d9190612f39565b602060405180830381865afa1580156114a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cc9190613672565b6040518363ffffffff1660e01b81526004016114e9929190613705565b6020604051808303815f875af1158015611505573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190613740565b5050565b600d5481565b61153b6123b4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906137db565b60405180910390fd5b6115b281612432565b50565b600b5481565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990613869565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906138f7565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178a9190612d1d565b60405180910390a3505050565b5f6117a2848461129d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461181c578181101561180e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118059061395f565b60405180910390fd5b61181b84848484036115d4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590613a7b565b60405180910390fd5b5f81036119155761191083835f6127e7565b6121ec565b61191d610cf8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561198b575061195b610cf8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119c357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a165750600860149054906101000a900460ff16155b15611e25574360145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5f9054906101000a900460ff16611b4b5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b0b575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613ae3565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611be8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c8f57600c54811115611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990613b71565b60405180910390fd5b600b54611c3e83610c40565b82611c4991906131b4565b1115611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8190613bd9565b60405180910390fd5b611e24565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d2c575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d7b57600c54811115611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613c67565b60405180910390fd5b611e23565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611e2257600b54611dd583610c40565b82611de091906131b4565b1115611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890613bd9565b60405180910390fd5b5b5b5b5b5f611e2f30610c40565b90505f600d5482119050808015611e525750600e60019054906101000a900460ff165b8015611e6b5750600860149054906101000a900460ff16155b8015611ebe575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f11575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f64575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fa7576001600860146101000a81548160ff021916908315150217905550611f8c612a53565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615801561200b575060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561205e575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156121835760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120e5576120de60646120d060105488612a8e90919063ffffffff16565b612aa390919063ffffffff16565b9050612160565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561215f5761215c606461214e600f5488612a8e90919063ffffffff16565b612aa390919063ffffffff16565b90505b5b5f811115612174576121738730836127e7565b5b80856121809190613c85565b94505b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156121dc576121db87612ab8565b5b6121e78787876127e7565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225690613d28565b60405180910390fd5b61226a825f83612b40565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490613db6565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239c9190612d1d565b60405180910390a36123af835f84612b45565b505050565b6123bc6115cd565b73ffffffffffffffffffffffffffffffffffffffff166123da610cf8565b73ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613e1e565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156125af576125ae612f56565b5b6040519080825280602002602001820160405280156125dd5781602001602082028036833780820191505090505b50905030815f815181106125f4576125f36133d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612697573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bb9190613e50565b816001815181106126cf576126ce6133d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612734307f0000000000000000000000000000000000000000000000000000000000000000846115d4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016127b6959493929190613f6b565b5f604051808303815f87803b1580156127cd575f80fd5b505af11580156127df573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284c906139ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ba90613a7b565b60405180910390fd5b6128ce838383612b40565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294890614033565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a3a9190612d1d565b60405180910390a3612a4d848484612b45565b50505050565b5f612a5d30610c40565b90505f8103612a6c5750612a8c565b5f819050600d54811115612a8057600d5490505b612a8981612593565b50505b565b5f8183612a9b91906135c0565b905092915050565b5f8183612ab0919061362e565b905092915050565b612afe60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b4a565b612b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b34906140c1565b60405180910390fd5b50565b505050565b505050565b5f4382119050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b8c578082015181840152602081019050612b71565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612bb182612b55565b612bbb8185612b5f565b9350612bcb818560208601612b6f565b612bd481612b97565b840191505092915050565b5f6020820190508181035f830152612bf78184612ba7565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c3982612c10565b9050919050565b612c4981612c2f565b8114612c53575f80fd5b50565b5f81359050612c6481612c40565b92915050565b5f819050919050565b612c7c81612c6a565b8114612c86575f80fd5b50565b5f81359050612c9781612c73565b92915050565b5f8060408385031215612cb357612cb2612c08565b5b5f612cc085828601612c56565b9250506020612cd185828601612c89565b9150509250929050565b5f8115159050919050565b612cef81612cdb565b82525050565b5f602082019050612d085f830184612ce6565b92915050565b612d1781612c6a565b82525050565b5f602082019050612d305f830184612d0e565b92915050565b5f805f60608486031215612d4d57612d4c612c08565b5b5f612d5a86828701612c56565b9350506020612d6b86828701612c56565b9250506040612d7c86828701612c89565b9150509250925092565b5f60ff82169050919050565b612d9b81612d86565b82525050565b5f602082019050612db45f830184612d92565b92915050565b5f60208284031215612dcf57612dce612c08565b5b5f612ddc84828501612c89565b91505092915050565b5f60208284031215612dfa57612df9612c08565b5b5f612e0784828501612c56565b91505092915050565b5f8060408385031215612e2657612e25612c08565b5b5f612e3385828601612c89565b9250506020612e4485828601612c89565b9150509250929050565b5f819050919050565b5f612e71612e6c612e6784612c10565b612e4e565b612c10565b9050919050565b5f612e8282612e57565b9050919050565b5f612e9382612e78565b9050919050565b612ea381612e89565b82525050565b5f602082019050612ebc5f830184612e9a565b92915050565b612ecb81612cdb565b8114612ed5575f80fd5b50565b5f81359050612ee681612ec2565b92915050565b5f8060408385031215612f0257612f01612c08565b5b5f612f0f85828601612c56565b9250506020612f2085828601612ed8565b9150509250929050565b612f3381612c2f565b82525050565b5f602082019050612f4c5f830184612f2a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f8c82612b97565b810181811067ffffffffffffffff82111715612fab57612faa612f56565b5b80604052505050565b5f612fbd612bff565b9050612fc98282612f83565b919050565b5f67ffffffffffffffff821115612fe857612fe7612f56565b5b602082029050602081019050919050565b5f80fd5b5f61300f61300a84612fce565b612fb4565b9050808382526020820190506020840283018581111561303257613031612ff9565b5b835b8181101561305b57806130478882612c56565b845260208401935050602081019050613034565b5050509392505050565b5f82601f83011261307957613078612f52565b5b8135613089848260208601612ffd565b91505092915050565b5f80604083850312156130a8576130a7612c08565b5b5f83013567ffffffffffffffff8111156130c5576130c4612c0c565b5b6130d185828601613065565b92505060206130e285828601612ed8565b9150509250929050565b5f806040838503121561310257613101612c08565b5b5f61310f85828601612c56565b925050602061312085828601612c56565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061316e57607f821691505b6020821081036131815761318061312a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131be82612c6a565b91506131c983612c6a565b92508282019050808211156131e1576131e0613187565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f61321b601683612b5f565b9150613226826131e7565b602082019050919050565b5f6020820190508181035f8301526132488161320f565b9050919050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f613283601683612b5f565b915061328e8261324f565b602082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613311603983612b5f565b915061331c826132b7565b604082019050919050565b5f6020820190508181035f83015261333e81613305565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61339f602583612b5f565b91506133aa82613345565b604082019050919050565b5f6020820190508181035f8301526133cc81613393565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61340a82612c6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361343c5761343b613187565b5b600182019050919050565b5f8160011c9050919050565b5f808291508390505b600185111561349c5780860481111561347857613477613187565b5b60018516156134875780820291505b808102905061349585613447565b945061345c565b94509492505050565b5f826134b4576001905061356f565b816134c1575f905061356f565b81600181146134d757600281146134e157613510565b600191505061356f565b60ff8411156134f3576134f2613187565b5b8360020a91508482111561350a57613509613187565b5b5061356f565b5060208310610133831016604e8410600b84101617156135455782820a9050838111156135405761353f613187565b5b61356f565b6135528484846001613453565b9250905081840481111561356957613568613187565b5b81810290505b9392505050565b5f61358082612c6a565b915061358b83612d86565b92506135b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846134a5565b905092915050565b5f6135ca82612c6a565b91506135d583612c6a565b92508282026135e381612c6a565b915082820484148315176135fa576135f9613187565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61363882612c6a565b915061364383612c6a565b92508261365357613652613601565b5b828204905092915050565b5f8151905061366c81612c73565b92915050565b5f6020828403121561368757613686612c08565b5b5f6136948482850161365e565b91505092915050565b7f43616e27742077697468647261772030000000000000000000000000000000005f82015250565b5f6136d1601083612b5f565b91506136dc8261369d565b602082019050919050565b5f6020820190508181035f8301526136fe816136c5565b9050919050565b5f6040820190506137185f830185612f2a565b6137256020830184612d0e565b9392505050565b5f8151905061373a81612ec2565b92915050565b5f6020828403121561375557613754612c08565b5b5f6137628482850161372c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602683612b5f565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613853602483612b5f565b915061385e826137f9565b604082019050919050565b5f6020820190508181035f83015261388081613847565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e1602283612b5f565b91506138ec82613887565b604082019050919050565b5f6020820190508181035f83015261390e816138d5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613949601d83612b5f565b915061395482613915565b602082019050919050565b5f6020820190508181035f8301526139768161393d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6139d7602583612b5f565b91506139e28261397d565b604082019050919050565b5f6020820190508181035f830152613a04816139cb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a65602383612b5f565b9150613a7082613a0b565b604082019050919050565b5f6020820190508181035f830152613a9281613a59565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613acd601683612b5f565b9150613ad882613a99565b602082019050919050565b5f6020820190508181035f830152613afa81613ac1565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613b5b603583612b5f565b9150613b6682613b01565b604082019050919050565b5f6020820190508181035f830152613b8881613b4f565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613bc3601383612b5f565b9150613bce82613b8f565b602082019050919050565b5f6020820190508181035f830152613bf081613bb7565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613c51603683612b5f565b9150613c5c82613bf7565b604082019050919050565b5f6020820190508181035f830152613c7e81613c45565b9050919050565b5f613c8f82612c6a565b9150613c9a83612c6a565b9250828203905081811115613cb257613cb1613187565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d12602183612b5f565b9150613d1d82613cb8565b604082019050919050565b5f6020820190508181035f830152613d3f81613d06565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613da0602283612b5f565b9150613dab82613d46565b604082019050919050565b5f6020820190508181035f830152613dcd81613d94565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e08602083612b5f565b9150613e1382613dd4565b602082019050919050565b5f6020820190508181035f830152613e3581613dfc565b9050919050565b5f81519050613e4a81612c40565b92915050565b5f60208284031215613e6557613e64612c08565b5b5f613e7284828501613e3c565b91505092915050565b5f819050919050565b5f613e9e613e99613e9484613e7b565b612e4e565b612c6a565b9050919050565b613eae81613e84565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ee681612c2f565b82525050565b5f613ef78383613edd565b60208301905092915050565b5f602082019050919050565b5f613f1982613eb4565b613f238185613ebe565b9350613f2e83613ece565b805f5b83811015613f5e578151613f458882613eec565b9750613f5083613f03565b925050600181019050613f31565b5085935050505092915050565b5f60a082019050613f7e5f830188612d0e565b613f8b6020830187613ea5565b8181036040830152613f9d8186613f0f565b9050613fac6060830185612f2a565b613fb96080830184612d0e565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61401d602683612b5f565b915061402882613fc3565b604082019050919050565b5f6020820190508181035f83015261404a81614011565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6140ab602483612b5f565b91506140b682614051565b604082019050919050565b5f6020820190508181035f8301526140d88161409f565b905091905056fea2646970667358221220b8e82514ec6edd00fc08759b9d4f241586148bee43f680c9e52d5a08d70b9a2564736f6c634300081400330000000000000000000000007f8a157aa7ce454b687706c897c3a70f2029af8c0000000000000000000000000000000000000000000000000000000000000002
Deployed Bytecode
0x60806040526004361061021d575f3560e01c80637571336a11610122578063c2b7bbb6116100aa578063e083e9221161006e578063e083e922146107a8578063e2f45605146107d0578063f2fde38b146107fa578063f8b45b0514610822578063ffb54a991461084c57610224565b8063c2b7bbb6146106dc578063c4590d3f14610704578063c8c8ebe41461072c578063c9567bf914610756578063dd62ed3e1461076c57610224565b8063a457c2d7116100f1578063a457c2d7146105ec578063a9059cbb14610628578063ad296d9d14610664578063afa4f3b21461068c578063b70143c9146106b457610224565b80637571336a146105485780638da5cb5b1461057057806395d89b411461059a5780639a7a23d6146105c457610224565b806347062402116101a5578063583e056811610174578063583e05681461047a5780635d098b38146104a45780636ddd1713146104cc57806370a08231146104f6578063715018a61461053257610224565b806347062402146103d65780634d54557f146104005780634fbee1931461041657806352f7c9881461045257610224565b80632b14ca56116101ec5780632b14ca56146102f4578063311028af1461031e578063313ce56714610348578063395093511461037257806342966c68146103ae57610224565b806306fdde0314610228578063095ea7b31461025257806318160ddd1461028e57806323b872dd146102b857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610876565b6040516102499190612bdf565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612c9d565b610906565b6040516102859190612cf5565b60405180910390f35b348015610299575f80fd5b506102a2610928565b6040516102af9190612d1d565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612d36565b610931565b6040516102eb9190612cf5565b60405180910390f35b3480156102ff575f80fd5b5061030861095f565b6040516103159190612d1d565b60405180910390f35b348015610329575f80fd5b50610332610965565b60405161033f9190612d1d565b60405180910390f35b348015610353575f80fd5b5061035c61096b565b6040516103699190612da1565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190612c9d565b610973565b6040516103a59190612cf5565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190612dba565b6109a9565b005b3480156103e1575f80fd5b506103ea6109bd565b6040516103f79190612d1d565b60405180910390f35b34801561040b575f80fd5b506104146109c3565b005b348015610421575f80fd5b5061043c60048036038101906104379190612de5565b610aaa565b6040516104499190612cf5565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190612e10565b610afc565b005b348015610485575f80fd5b5061048e610b67565b60405161049b9190612ea9565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190612de5565b610b8b565b005b3480156104d7575f80fd5b506104e0610c2d565b6040516104ed9190612cf5565b60405180910390f35b348015610501575f80fd5b5061051c60048036038101906105179190612de5565b610c40565b6040516105299190612d1d565b60405180910390f35b34801561053d575f80fd5b50610546610c85565b005b348015610553575f80fd5b5061056e60048036038101906105699190612eec565b610c98565b005b34801561057b575f80fd5b50610584610cf8565b6040516105919190612f39565b60405180910390f35b3480156105a5575f80fd5b506105ae610d20565b6040516105bb9190612bdf565b60405180910390f35b3480156105cf575f80fd5b506105ea60048036038101906105e59190612eec565b610db0565b005b3480156105f7575f80fd5b50610612600480360381019061060d9190612c9d565b610e55565b60405161061f9190612cf5565b60405180910390f35b348015610633575f80fd5b5061064e60048036038101906106499190612c9d565b610eca565b60405161065b9190612cf5565b60405180910390f35b34801561066f575f80fd5b5061068a60048036038101906106859190613092565b610eec565b005b348015610697575f80fd5b506106b260048036038101906106ad9190612dba565b611044565b005b3480156106bf575f80fd5b506106da60048036038101906106d59190612dba565b6110cb565b005b3480156106e7575f80fd5b5061070260048036038101906106fd9190612de5565b61115f565b005b34801561070f575f80fd5b5061072a60048036038101906107259190612e10565b611202565b005b348015610737575f80fd5b50610740611258565b60405161074d9190612d1d565b60405180910390f35b348015610761575f80fd5b5061076a61125e565b005b348015610777575f80fd5b50610792600480360381019061078d91906130ec565b61129d565b60405161079f9190612d1d565b60405180910390f35b3480156107b3575f80fd5b506107ce60048036038101906107c99190612de5565b61131f565b005b3480156107db575f80fd5b506107e461152d565b6040516107f19190612d1d565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b9190612de5565b611533565b005b34801561082d575f80fd5b506108366115b5565b6040516108439190612d1d565b60405180910390f35b348015610857575f80fd5b506108606115bb565b60405161086d9190612cf5565b60405180910390f35b60606003805461088590613157565b80601f01602080910402602001604051908101604052809291908181526020018280546108b190613157565b80156108fc5780601f106108d3576101008083540402835291602001916108fc565b820191905f5260205f20905b8154815290600101906020018083116108df57829003601f168201915b5050505050905090565b5f806109106115cd565b905061091d8185856115d4565b600191505092915050565b5f600254905090565b5f8061093b6115cd565b9050610948858285611797565b610953858585611822565b60019150509392505050565b60105481565b600a5481565b5f6009905090565b5f8061097d6115cd565b905061099e81858561098f858961129d565b61099991906131b4565b6115d4565b600191505092915050565b6109ba6109b46115cd565b826121f1565b50565b600f5481565b5f4711610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc90613231565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a456115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a64575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610aa7573d5f803e3d5ffd5b50565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610b046123b4565b60288211158015610b16575060288111155b610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90613299565b60405180910390fd5b81600f81905550806010819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcb6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610bea575f80fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c8d6123b4565b610c965f612432565b565b610ca06123b4565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d2f90613157565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5b90613157565b8015610da65780601f10610d7d57610100808354040283529160200191610da6565b820191905f5260205f20905b815481529060010190602001808311610d8957829003601f168201915b5050505050905090565b610db86123b4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90613327565b60405180910390fd5b610e5182826124f5565b5050565b5f80610e5f6115cd565b90505f610e6c828661129d565b905083811015610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea8906133b5565b60405180910390fd5b610ebe82868684036115d4565b60019250505092915050565b5f80610ed46115cd565b9050610ee1818585611822565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2c6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b575f80fd5b5f5b825181101561103f578160115f858481518110610f6d57610f6c6133d3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550828181518110610fd757610fd66133d3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7836040516110249190612cf5565b60405180910390a2808061103790613400565b915050610f4d565b505050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110846115cd565b73ffffffffffffffffffffffffffffffffffffffff16146110a3575f80fd5b6110ab61096b565b600a6110b79190613576565b816110c291906135c0565b600d8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110b6115cd565b73ffffffffffffffffffffffffffffffffffffffff161461112a575f80fd5b5f61113430610c40565b90505f6064838361114591906135c0565b61114f919061362e565b905061115a81612593565b505050565b6111676123b4565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c98565b6111ff60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016124f5565b50565b61120a6123b4565b61121261096b565b600a61121e9190613576565b8261122991906135c0565b600c8190555061123761096b565b600a6112439190613576565b8161124e91906135c0565b600b819055505050565b600c5481565b6112666123b4565b6001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661135f6115cd565b73ffffffffffffffffffffffffffffffffffffffff161461137e575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113b89190612f39565b602060405180830381865afa1580156113d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f79190613672565b11611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906136e7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148d9190612f39565b602060405180830381865afa1580156114a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cc9190613672565b6040518363ffffffff1660e01b81526004016114e9929190613705565b6020604051808303815f875af1158015611505573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190613740565b5050565b600d5481565b61153b6123b4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906137db565b60405180910390fd5b6115b281612432565b50565b600b5481565b600e5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990613869565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906138f7565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178a9190612d1d565b60405180910390a3505050565b5f6117a2848461129d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461181c578181101561180e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118059061395f565b60405180910390fd5b61181b84848484036115d4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f590613a7b565b60405180910390fd5b5f81036119155761191083835f6127e7565b6121ec565b61191d610cf8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561198b575061195b610cf8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119c357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a165750600860149054906101000a900460ff16155b15611e25574360145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5f9054906101000a900460ff16611b4b5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b0b575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613ae3565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611be8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c8f57600c54811115611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990613b71565b60405180910390fd5b600b54611c3e83610c40565b82611c4991906131b4565b1115611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8190613bd9565b60405180910390fd5b611e24565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d2c575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d7b57600c54811115611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613c67565b60405180910390fd5b611e23565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611e2257600b54611dd583610c40565b82611de091906131b4565b1115611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890613bd9565b60405180910390fd5b5b5b5b5b5f611e2f30610c40565b90505f600d5482119050808015611e525750600e60019054906101000a900460ff165b8015611e6b5750600860149054906101000a900460ff16155b8015611ebe575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f11575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f64575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fa7576001600860146101000a81548160ff021916908315150217905550611f8c612a53565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615801561200b575060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561205e575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156121835760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156120e5576120de60646120d060105488612a8e90919063ffffffff16565b612aa390919063ffffffff16565b9050612160565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561215f5761215c606461214e600f5488612a8e90919063ffffffff16565b612aa390919063ffffffff16565b90505b5b5f811115612174576121738730836127e7565b5b80856121809190613c85565b94505b60115f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156121dc576121db87612ab8565b5b6121e78787876127e7565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225690613d28565b60405180910390fd5b61226a825f83612b40565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490613db6565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239c9190612d1d565b60405180910390a36123af835f84612b45565b505050565b6123bc6115cd565b73ffffffffffffffffffffffffffffffffffffffff166123da610cf8565b73ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613e1e565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff8111156125af576125ae612f56565b5b6040519080825280602002602001820160405280156125dd5781602001602082028036833780820191505090505b50905030815f815181106125f4576125f36133d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612697573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bb9190613e50565b816001815181106126cf576126ce6133d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612734307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846115d4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016127b6959493929190613f6b565b5f604051808303815f87803b1580156127cd575f80fd5b505af11580156127df573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284c906139ed565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ba90613a7b565b60405180910390fd5b6128ce838383612b40565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294890614033565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a3a9190612d1d565b60405180910390a3612a4d848484612b45565b50505050565b5f612a5d30610c40565b90505f8103612a6c5750612a8c565b5f819050600d54811115612a8057600d5490505b612a8981612593565b50505b565b5f8183612a9b91906135c0565b905092915050565b5f8183612ab0919061362e565b905092915050565b612afe60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b4a565b612b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b34906140c1565b60405180910390fd5b50565b505050565b505050565b5f4382119050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b8c578082015181840152602081019050612b71565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612bb182612b55565b612bbb8185612b5f565b9350612bcb818560208601612b6f565b612bd481612b97565b840191505092915050565b5f6020820190508181035f830152612bf78184612ba7565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c3982612c10565b9050919050565b612c4981612c2f565b8114612c53575f80fd5b50565b5f81359050612c6481612c40565b92915050565b5f819050919050565b612c7c81612c6a565b8114612c86575f80fd5b50565b5f81359050612c9781612c73565b92915050565b5f8060408385031215612cb357612cb2612c08565b5b5f612cc085828601612c56565b9250506020612cd185828601612c89565b9150509250929050565b5f8115159050919050565b612cef81612cdb565b82525050565b5f602082019050612d085f830184612ce6565b92915050565b612d1781612c6a565b82525050565b5f602082019050612d305f830184612d0e565b92915050565b5f805f60608486031215612d4d57612d4c612c08565b5b5f612d5a86828701612c56565b9350506020612d6b86828701612c56565b9250506040612d7c86828701612c89565b9150509250925092565b5f60ff82169050919050565b612d9b81612d86565b82525050565b5f602082019050612db45f830184612d92565b92915050565b5f60208284031215612dcf57612dce612c08565b5b5f612ddc84828501612c89565b91505092915050565b5f60208284031215612dfa57612df9612c08565b5b5f612e0784828501612c56565b91505092915050565b5f8060408385031215612e2657612e25612c08565b5b5f612e3385828601612c89565b9250506020612e4485828601612c89565b9150509250929050565b5f819050919050565b5f612e71612e6c612e6784612c10565b612e4e565b612c10565b9050919050565b5f612e8282612e57565b9050919050565b5f612e9382612e78565b9050919050565b612ea381612e89565b82525050565b5f602082019050612ebc5f830184612e9a565b92915050565b612ecb81612cdb565b8114612ed5575f80fd5b50565b5f81359050612ee681612ec2565b92915050565b5f8060408385031215612f0257612f01612c08565b5b5f612f0f85828601612c56565b9250506020612f2085828601612ed8565b9150509250929050565b612f3381612c2f565b82525050565b5f602082019050612f4c5f830184612f2a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f8c82612b97565b810181811067ffffffffffffffff82111715612fab57612faa612f56565b5b80604052505050565b5f612fbd612bff565b9050612fc98282612f83565b919050565b5f67ffffffffffffffff821115612fe857612fe7612f56565b5b602082029050602081019050919050565b5f80fd5b5f61300f61300a84612fce565b612fb4565b9050808382526020820190506020840283018581111561303257613031612ff9565b5b835b8181101561305b57806130478882612c56565b845260208401935050602081019050613034565b5050509392505050565b5f82601f83011261307957613078612f52565b5b8135613089848260208601612ffd565b91505092915050565b5f80604083850312156130a8576130a7612c08565b5b5f83013567ffffffffffffffff8111156130c5576130c4612c0c565b5b6130d185828601613065565b92505060206130e285828601612ed8565b9150509250929050565b5f806040838503121561310257613101612c08565b5b5f61310f85828601612c56565b925050602061312085828601612c56565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061316e57607f821691505b6020821081036131815761318061312a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131be82612c6a565b91506131c983612c6a565b92508282019050808211156131e1576131e0613187565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f61321b601683612b5f565b9150613226826131e7565b602082019050919050565b5f6020820190508181035f8301526132488161320f565b9050919050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f613283601683612b5f565b915061328e8261324f565b602082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613311603983612b5f565b915061331c826132b7565b604082019050919050565b5f6020820190508181035f83015261333e81613305565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61339f602583612b5f565b91506133aa82613345565b604082019050919050565b5f6020820190508181035f8301526133cc81613393565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61340a82612c6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361343c5761343b613187565b5b600182019050919050565b5f8160011c9050919050565b5f808291508390505b600185111561349c5780860481111561347857613477613187565b5b60018516156134875780820291505b808102905061349585613447565b945061345c565b94509492505050565b5f826134b4576001905061356f565b816134c1575f905061356f565b81600181146134d757600281146134e157613510565b600191505061356f565b60ff8411156134f3576134f2613187565b5b8360020a91508482111561350a57613509613187565b5b5061356f565b5060208310610133831016604e8410600b84101617156135455782820a9050838111156135405761353f613187565b5b61356f565b6135528484846001613453565b9250905081840481111561356957613568613187565b5b81810290505b9392505050565b5f61358082612c6a565b915061358b83612d86565b92506135b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846134a5565b905092915050565b5f6135ca82612c6a565b91506135d583612c6a565b92508282026135e381612c6a565b915082820484148315176135fa576135f9613187565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61363882612c6a565b915061364383612c6a565b92508261365357613652613601565b5b828204905092915050565b5f8151905061366c81612c73565b92915050565b5f6020828403121561368757613686612c08565b5b5f6136948482850161365e565b91505092915050565b7f43616e27742077697468647261772030000000000000000000000000000000005f82015250565b5f6136d1601083612b5f565b91506136dc8261369d565b602082019050919050565b5f6020820190508181035f8301526136fe816136c5565b9050919050565b5f6040820190506137185f830185612f2a565b6137256020830184612d0e565b9392505050565b5f8151905061373a81612ec2565b92915050565b5f6020828403121561375557613754612c08565b5b5f6137628482850161372c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602683612b5f565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613853602483612b5f565b915061385e826137f9565b604082019050919050565b5f6020820190508181035f83015261388081613847565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e1602283612b5f565b91506138ec82613887565b604082019050919050565b5f6020820190508181035f83015261390e816138d5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613949601d83612b5f565b915061395482613915565b602082019050919050565b5f6020820190508181035f8301526139768161393d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6139d7602583612b5f565b91506139e28261397d565b604082019050919050565b5f6020820190508181035f830152613a04816139cb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a65602383612b5f565b9150613a7082613a0b565b604082019050919050565b5f6020820190508181035f830152613a9281613a59565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613acd601683612b5f565b9150613ad882613a99565b602082019050919050565b5f6020820190508181035f830152613afa81613ac1565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613b5b603583612b5f565b9150613b6682613b01565b604082019050919050565b5f6020820190508181035f830152613b8881613b4f565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613bc3601383612b5f565b9150613bce82613b8f565b602082019050919050565b5f6020820190508181035f830152613bf081613bb7565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613c51603683612b5f565b9150613c5c82613bf7565b604082019050919050565b5f6020820190508181035f830152613c7e81613c45565b9050919050565b5f613c8f82612c6a565b9150613c9a83612c6a565b9250828203905081811115613cb257613cb1613187565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d12602183612b5f565b9150613d1d82613cb8565b604082019050919050565b5f6020820190508181035f830152613d3f81613d06565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613da0602283612b5f565b9150613dab82613d46565b604082019050919050565b5f6020820190508181035f830152613dcd81613d94565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e08602083612b5f565b9150613e1382613dd4565b602082019050919050565b5f6020820190508181035f830152613e3581613dfc565b9050919050565b5f81519050613e4a81612c40565b92915050565b5f60208284031215613e6557613e64612c08565b5b5f613e7284828501613e3c565b91505092915050565b5f819050919050565b5f613e9e613e99613e9484613e7b565b612e4e565b612c6a565b9050919050565b613eae81613e84565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ee681612c2f565b82525050565b5f613ef78383613edd565b60208301905092915050565b5f602082019050919050565b5f613f1982613eb4565b613f238185613ebe565b9350613f2e83613ece565b805f5b83811015613f5e578151613f458882613eec565b9750613f5083613f03565b925050600181019050613f31565b5085935050505092915050565b5f60a082019050613f7e5f830188612d0e565b613f8b6020830187613ea5565b8181036040830152613f9d8186613f0f565b9050613fac6060830185612f2a565b613fb96080830184612d0e565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61401d602683612b5f565b915061402882613fc3565b604082019050919050565b5f6020820190508181035f83015261404a81614011565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6140ab602483612b5f565b91506140b682614051565b604082019050919050565b5f6020820190508181035f8301526140d88161409f565b905091905056fea2646970667358221220b8e82514ec6edd00fc08759b9d4f241586148bee43f680c9e52d5a08d70b9a2564736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007f8a157aa7ce454b687706c897c3a70f2029af8c0000000000000000000000000000000000000000000000000000000000000002
-----Decoded View---------------
Arg [0] : marketingWallet_ (address): 0x7F8A157AA7ce454b687706c897c3a70f2029aF8c
Arg [1] : denominator_ (uint256): 2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f8a157aa7ce454b687706c897c3a70f2029af8c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Deployed Bytecode Sourcemap
9824:9582:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5053:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5373:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6193:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10483:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10206:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5273:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6462:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12232:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10451:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17112:229;;;;;;;;;;;;;:::i;:::-;;13253:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18392:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9911:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18105:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10411:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;854:103:1;;;;;;;;;;;;;:::i;:::-;;12325:149:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;619:87:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5161:104:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6708:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5624:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12482:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17645:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17829:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19018:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16877:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10283:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12114:110;;;;;;;;;;;;;:::i;:::-;;5825:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17349:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10331:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:201:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10252:24:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10373:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5053:100;5107:13;5140:5;5133:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5053:100;:::o;5984:201::-;6067:4;6084:13;6100:12;:10;:12::i;:::-;6084:28;;6123:32;6132:5;6139:7;6148:6;6123:8;:32::i;:::-;6173:4;6166:11;;;5984:201;;;;:::o;5373:108::-;5434:7;5461:12;;5454:19;;5373:108;:::o;6193:261::-;6290:4;6307:15;6325:12;:10;:12::i;:::-;6307:30;;6348:38;6364:4;6370:7;6379:6;6348:15;:38::i;:::-;6397:27;6407:4;6413:2;6417:6;6397:9;:27::i;:::-;6442:4;6435:11;;;6193:261;;;;;:::o;10483:26::-;;;;:::o;10206:33::-;;;;:::o;5273:92::-;5331:5;5356:1;5349:8;;5273:92;:::o;6462:238::-;6550:4;6567:13;6583:12;:10;:12::i;:::-;6567:28;;6606:64;6615:5;6622:7;6659:10;6631:25;6641:5;6648:7;6631:9;:25::i;:::-;:38;;;;:::i;:::-;6606:8;:64::i;:::-;6688:4;6681:11;;;6462:238;;;;:::o;12232:85::-;12282:27;12288:12;:10;:12::i;:::-;12302:6;12282:5;:27::i;:::-;12232:85;:::o;10451:25::-;;;;:::o;17112:229::-;17192:1;17168:21;:25;17160:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17255:15;;;;;;;;;;;17239:31;;:12;:10;:12::i;:::-;:31;;;17231:40;;;;;;17290:10;17282:28;;:51;17311:21;17282:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17112:229::o;13253:126::-;13319:4;13343:19;:28;13363:7;13343:28;;;;;;;;;;;;;;;;;;;;;;;;;13336:35;;13253:126;;;:::o;18392:211::-;578:13:1;:11;:13::i;:::-;18492:2:3::1;18481:7;:13;;:31;;;;;18510:2;18498:8;:14;;18481:31;18473:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18559:7;18550:6;:16;;;;18587:8;18577:7;:18;;;;18392:211:::0;;:::o;9911:52::-;;;:::o;18105:167::-;18203:15;;;;;;;;;;;18187:31;;:12;:10;:12::i;:::-;:31;;;18179:40;;;;;;18248:16;18230:15;;:34;;;;;;;;;;;;;;;;;;18105:167;:::o;10411:31::-;;;;;;;;;;;;;:::o;5489:127::-;5563:7;5590:9;:18;5600:7;5590:18;;;;;;;;;;;;;;;;5583:25;;5489:127;;;:::o;854:103:1:-;578:13;:11;:13::i;:::-;919:30:::1;946:1;919:18;:30::i;:::-;854:103::o:0;12325:149:3:-;578:13:1;:11;:13::i;:::-;12462:4:3::1;12420:31;:39;12452:6;12420:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;12325:149:::0;;:::o;619:87:1:-;665:7;692:6;;;;;;;;;;;685:13;;619:87;:::o;5161:104:3:-;5217:13;5250:7;5243:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5161:104;:::o;12804:247::-;578:13:1;:11;:13::i;:::-;12916::3::1;;;;;;;;;;;12908:21;;:4;:21;;::::0;12900:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:41;13031:4;13037:5;13002:28;:41::i;:::-;12804:247:::0;;:::o;6708:436::-;6801:4;6818:13;6834:12;:10;:12::i;:::-;6818:28;;6857:24;6884:25;6894:5;6901:7;6884:9;:25::i;:::-;6857:52;;6948:15;6928:16;:35;;6920:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7041:60;7050:5;7057:7;7085:15;7066:16;:34;7041:8;:60::i;:::-;7132:4;7125:11;;;;6708:436;;;;:::o;5624:193::-;5703:4;5720:13;5736:12;:10;:12::i;:::-;5720:28;;5759;5769:5;5776:2;5780:6;5759:9;:28::i;:::-;5805:4;5798:11;;;5624:193;;;;:::o;12482:314::-;12587:15;;;;;;;;;;;12571:31;;:12;:10;:12::i;:::-;:31;;;12563:40;;;;;;12620:9;12615:174;12639:8;:15;12635:1;:19;12615:174;;;12711:8;12676:19;:32;12696:8;12705:1;12696:11;;;;;;;;:::i;:::-;;;;;;;;12676:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12755:8;12764:1;12755:11;;;;;;;;:::i;:::-;;;;;;;;12739:38;;;12768:8;12739:38;;;;;;:::i;:::-;;;;;;;;12656:3;;;;;:::i;:::-;;;;12615:174;;;;12482:314;;:::o;17645:176::-;17737:15;;;;;;;;;;;17721:31;;:12;:10;:12::i;:::-;:31;;;17713:40;;;;;;17802:10;:8;:10::i;:::-;17796:2;:16;;;;:::i;:::-;17785:7;:28;;;;:::i;:::-;17764:18;:49;;;;17645:176;:::o;17829:268::-;17910:15;;;;;;;;;;;17894:31;;:12;:10;:12::i;:::-;:31;;;17886:40;;;;;;17937:23;17963:24;17981:4;17963:9;:24::i;:::-;17937:50;;17998:18;18047:3;18037:7;18019:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;17998:52;;18061:28;18078:10;18061:16;:28::i;:::-;17875:222;;17829:268;:::o;19018:226::-;578:13:1;:11;:13::i;:::-;19096:5:3::1;19080:13;;:21;;;;;;;;;;;;;;;;;;19112:55;19146:13;;;;;;;;;;;19162:4;19112:25;:55::i;:::-;19178:58;19215:13;;;;;;;;;;;19231:4;19178:28;:58::i;:::-;19018:226:::0;:::o;16877:227::-;578:13:1;:11;:13::i;:::-;17031:10:3::1;:8;:10::i;:::-;17025:2;:16;;;;:::i;:::-;17000:21;:42;;;;:::i;:::-;16977:20;:65;;;;17085:10;:8;:10::i;:::-;17079:2;:16;;;;:::i;:::-;17065:10;:31;;;;:::i;:::-;17053:9;:43;;;;16877:227:::0;;:::o;10283:35::-;;;;:::o;12114:110::-;578:13:1;:11;:13::i;:::-;12183:4:3::1;12169:11;;:18;;;;;;;;;;;;;;;;;;12212:4;12198:11;;:18;;;;;;;;;;;;;;;;;;12114:110::o:0;5825:151::-;5914:7;5941:11;:18;5953:5;5941:18;;;;;;;;;;;;;;;:27;5960:7;5941:27;;;;;;;;;;;;;;;;5934:34;;5825:151;;;;:::o;17349:288::-;17435:15;;;;;;;;;;;17419:31;;:12;:10;:12::i;:::-;:31;;;17411:40;;;;;;17514:1;17477:8;17470:26;;;17505:4;17470:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;17462:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17556:8;17549:25;;;17575:10;17594:8;17587:26;;;17622:4;17587:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17549:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17349:288;:::o;10331:33::-;;;;:::o;965:201:1:-;578:13;:11;:13::i;:::-;1074:1:::1;1054:22;;:8;:22;;::::0;1046:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1130:28;1149:8;1130:18;:28::i;:::-;965:201:::0;:::o;10252:24:3:-;;;;:::o;10373:31::-;;;;;;;;;;;;;:::o;92:98:1:-;145:7;172:10;165:17;;92:98;:::o;8847:346:3:-;8966:1;8949:19;;:5;:19;;;8941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9047:1;9028:21;;:7;:21;;;9020:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9131:6;9101:11;:18;9113:5;9101:18;;;;;;;;;;;;;;;:27;9120:7;9101:27;;;;;;;;;;;;;;;:36;;;;9169:7;9153:32;;9162:5;9153:32;;;9178:6;9153:32;;;;;;:::i;:::-;;;;;;;;8847:346;;;:::o;9201:419::-;9302:24;9329:25;9339:5;9346:7;9329:9;:25::i;:::-;9302:52;;9389:17;9369:16;:37;9365:248;;9451:6;9431:16;:26;;9423:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9535:51;9544:5;9551:7;9579:6;9560:16;:25;9535:8;:51::i;:::-;9365:248;9291:329;9201:419;;;:::o;13387:2998::-;13501:1;13485:18;;:4;:18;;;13477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13578:1;13564:16;;:2;:16;;;13556:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13647:1;13637:6;:11;13633:93;;13665:28;13681:4;13687:2;13691:1;13665:15;:28::i;:::-;13708:7;;13633:93;13748:7;:5;:7::i;:::-;13740:15;;:4;:15;;;;:32;;;;;13765:7;:5;:7::i;:::-;13759:13;;:2;:13;;;;13740:32;:52;;;;;13790:1;13776:16;;:2;:16;;;;13740:52;:77;;;;;13810:6;13796:21;;:2;:21;;;;13740:77;:90;;;;;13822:8;;;;;;;;;;;13821:9;13740:90;13736:1346;;;13874:12;13847:18;:24;13866:4;13847:24;;;;;;;;;;;;;;;:39;;;;14006:11;;;;;;;;;;;14001:140;;14046:19;:25;14066:4;14046:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14075:19;:23;14095:2;14075:23;;;;;;;;;;;;;;;;;;;;;;;;;14046:52;14038:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14001:140;14214:25;:31;14240:4;14214:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14250:31;:35;14282:2;14250:35;;;;;;;;;;;;;;;;;;;;;;;;;14249:36;14214:71;14210:861;;;14324:20;;14314:6;:30;;14306:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14455:9;;14438:13;14448:2;14438:9;:13::i;:::-;14429:6;:22;;;;:::i;:::-;:35;;14421:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14210:861;;;14645:25;:29;14671:2;14645:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14679:31;:37;14711:4;14679:37;;;;;;;;;;;;;;;;;;;;;;;;;14678:38;14645:71;14641:430;;;14755:20;;14745:6;:30;;14737:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;14641:430;;;14932:31;:35;14964:2;14932:35;;;;;;;;;;;;;;;;;;;;;;;;;14927:144;;15022:9;;15005:13;15015:2;15005:9;:13::i;:::-;14996:6;:22;;;;:::i;:::-;:35;;14988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14927:144;14641:430;14210:861;13736:1346;15141:28;15172:24;15190:4;15172:9;:24::i;:::-;15141:55;;15207:12;15245:18;;15222:20;:41;15207:56;;15278:7;:22;;;;;15289:11;;;;;;;;;;;15278:22;:35;;;;;15305:8;;;;;;;;;;;15304:9;15278:35;:71;;;;;15318:25;:31;15344:4;15318:31;;;;;;;;;;;;;;;;;;;;;;;;;15317:32;15278:71;:101;;;;;15354:19;:25;15374:4;15354:25;;;;;;;;;;;;;;;;;;;;;;;;;15353:26;15278:101;:129;;;;;15384:19;:23;15404:2;15384:23;;;;;;;;;;;;;;;;;;;;;;;;;15383:24;15278:129;15274:233;;;15435:4;15424:8;;:15;;;;;;;;;;;;;;;;;;15454:10;:8;:10::i;:::-;15490:5;15479:8;;:16;;;;;;;;;;;;;;;;;;15274:233;15613:12;15629:8;;;;;;;;;;;15628:9;:38;;;;;15641:19;:25;15661:4;15641:25;;;;;;;;;;;;;;;;;;;;;;;;;15628:38;:66;;;;;15671:19;:23;15691:2;15671:23;;;;;;;;;;;;;;;;;;;;;;;;;15670:24;15628:66;15613:81;;15705:12;15736:7;15732:515;;;15809:25;:29;15835:2;15809:29;;;;;;;;;;;;;;;;;;;;;;;;;15805:279;;;15866:28;15890:3;15866:19;15877:7;;15866:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15859:35;;15805:279;;;15982:25;:31;16008:4;15982:31;;;;;;;;;;;;;;;;;;;;;;;;;15979:105;;;16041:27;16064:3;16041:18;16052:6;;16041;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;16034:34;;15979:105;15805:279;16113:1;16106:4;:8;16102:91;;;16135:42;16151:4;16165;16172;16135:15;:42::i;:::-;16102:91;16217:4;16207:14;;;;;:::i;:::-;;;15732:515;16260:19;:25;16280:4;16260:25;;;;;;;;;;;;;;;;;;;;;;;;;16257:77;;;16305:13;16313:4;16305:7;:13::i;:::-;16257:77;16344:33;16360:4;16366:2;16370:6;16344:15;:33::i;:::-;13466:2919;;;;13387:2998;;;;:::o;8244:595::-;8347:1;8328:21;;:7;:21;;;8320:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8400:49;8421:7;8438:1;8442:6;8400:20;:49::i;:::-;8462:22;8487:9;:18;8497:7;8487:18;;;;;;;;;;;;;;;;8462:43;;8542:6;8524:14;:24;;8516:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8661:6;8644:14;:23;8623:9;:18;8633:7;8623:18;;;;;;;;;;;;;;;:44;;;;8698:6;8682:12;;:22;;;;;;;;;;;8759:1;8733:37;;8742:7;8733:37;;;8763:6;8733:37;;;;;;:::i;:::-;;;;;;;;8783:48;8803:7;8820:1;8824:6;8783:19;:48::i;:::-;8309:530;8244:595;;:::o;714:132:1:-;789:12;:10;:12::i;:::-;778:23;;:7;:5;:7::i;:::-;:23;;;770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;714:132::o;1174:191::-;1248:16;1267:6;;;;;;;;;;;1248:25;;1293:8;1284:6;;:17;;;;;;;;;;;;;;;;;;1348:8;1317:40;;1338:8;1317:40;;;;;;;;;;;;1237:128;1174:191;:::o;13059:186:3:-;13176:5;13142:25;:31;13168:4;13142:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13231:5;13197:40;;13225:4;13197:40;;;;;;;;;;;;13059:186;;:::o;16393:476::-;16459:21;16497:1;16483:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16459:40;;16528:4;16510;16515:1;16510:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16554:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16544:4;16549:1;16544:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;16588:63;16605:4;16620:16;16639:11;16588:8;:63::i;:::-;16662:16;:67;;;16744:11;16770:1;16786:4;16805:15;;;;;;;;;;;16835;16662:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16448:421;16393:476;:::o;7152:641::-;7265:1;7249:18;;:4;:18;;;7241:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:1;7328:16;;:2;:16;;;7320:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7397:38;7418:4;7424:2;7428:6;7397:20;:38::i;:::-;7448:19;7470:9;:15;7480:4;7470:15;;;;;;;;;;;;;;;;7448:37;;7519:6;7504:11;:21;;7496:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7636:6;7622:11;:20;7604:9;:15;7614:4;7604:15;;;;;;;;;;;;;;;:38;;;;7674:6;7657:9;:13;7667:2;7657:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;7724:2;7709:26;;7718:4;7709:26;;;7728:6;7709:26;;;;;;:::i;:::-;;;;;;;;7748:37;7768:4;7774:2;7778:6;7748:19;:37::i;:::-;7230:563;7152:641;;;:::o;18611:399::-;18650:23;18676:24;18694:4;18676:9;:24::i;:::-;18650:50;;18734:1;18715:15;:20;18711:91;;18784:7;;;18711:91;18814:20;18837:15;18814:38;;18882:18;;18867:12;:33;18863:99;;;18932:18;;18917:33;;18863:99;18972:30;18989:12;18972:16;:30::i;:::-;18639:371;;18611:399;:::o;1413:98:2:-;1471:7;1502:1;1498;:5;;;;:::i;:::-;1491:12;;1413:98;;;;:::o;1519:::-;1577:7;1608:1;1604;:5;;;;:::i;:::-;1597:12;;1519:98;;;;:::o;19252:151:3:-;19317:37;19327:18;:26;19346:6;19327:26;;;;;;;;;;;;;;;;19317:9;:37::i;:::-;19309:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;19252:151;:::o;9628:91::-;;;;:::o;9727:90::-;;;;:::o;18280:104::-;18334:4;18364:12;18357:4;:19;18350:26;;18280:104;;;:::o;7:99:4:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:60::-;6031:3;6052:5;6045:12;;6003:60;;;:::o;6069:142::-;6119:9;6152:53;6170:34;6179:24;6197:5;6179:24;:::i;:::-;6170:34;:::i;:::-;6152:53;:::i;:::-;6139:66;;6069:142;;;:::o;6217:126::-;6267:9;6300:37;6331:5;6300:37;:::i;:::-;6287:50;;6217:126;;;:::o;6349:152::-;6425:9;6458:37;6489:5;6458:37;:::i;:::-;6445:50;;6349:152;;;:::o;6507:183::-;6620:63;6677:5;6620:63;:::i;:::-;6615:3;6608:76;6507:183;;:::o;6696:274::-;6815:4;6853:2;6842:9;6838:18;6830:26;;6866:97;6960:1;6949:9;6945:17;6936:6;6866:97;:::i;:::-;6696:274;;;;:::o;6976:116::-;7046:21;7061:5;7046:21;:::i;:::-;7039:5;7036:32;7026:60;;7082:1;7079;7072:12;7026:60;6976:116;:::o;7098:133::-;7141:5;7179:6;7166:20;7157:29;;7195:30;7219:5;7195:30;:::i;:::-;7098:133;;;;:::o;7237:468::-;7302:6;7310;7359:2;7347:9;7338:7;7334:23;7330:32;7327:119;;;7365:79;;:::i;:::-;7327:119;7485:1;7510:53;7555:7;7546:6;7535:9;7531:22;7510:53;:::i;:::-;7500:63;;7456:117;7612:2;7638:50;7680:7;7671:6;7660:9;7656:22;7638:50;:::i;:::-;7628:60;;7583:115;7237:468;;;;;:::o;7711:118::-;7798:24;7816:5;7798:24;:::i;:::-;7793:3;7786:37;7711:118;;:::o;7835:222::-;7928:4;7966:2;7955:9;7951:18;7943:26;;7979:71;8047:1;8036:9;8032:17;8023:6;7979:71;:::i;:::-;7835:222;;;;:::o;8063:117::-;8172:1;8169;8162:12;8186:180;8234:77;8231:1;8224:88;8331:4;8328:1;8321:15;8355:4;8352:1;8345:15;8372:281;8455:27;8477:4;8455:27;:::i;:::-;8447:6;8443:40;8585:6;8573:10;8570:22;8549:18;8537:10;8534:34;8531:62;8528:88;;;8596:18;;:::i;:::-;8528:88;8636:10;8632:2;8625:22;8415:238;8372:281;;:::o;8659:129::-;8693:6;8720:20;;:::i;:::-;8710:30;;8749:33;8777:4;8769:6;8749:33;:::i;:::-;8659:129;;;:::o;8794:311::-;8871:4;8961:18;8953:6;8950:30;8947:56;;;8983:18;;:::i;:::-;8947:56;9033:4;9025:6;9021:17;9013:25;;9093:4;9087;9083:15;9075:23;;8794:311;;;:::o;9111:117::-;9220:1;9217;9210:12;9251:710;9347:5;9372:81;9388:64;9445:6;9388:64;:::i;:::-;9372:81;:::i;:::-;9363:90;;9473:5;9502:6;9495:5;9488:21;9536:4;9529:5;9525:16;9518:23;;9589:4;9581:6;9577:17;9569:6;9565:30;9618:3;9610:6;9607:15;9604:122;;;9637:79;;:::i;:::-;9604:122;9752:6;9735:220;9769:6;9764:3;9761:15;9735:220;;;9844:3;9873:37;9906:3;9894:10;9873:37;:::i;:::-;9868:3;9861:50;9940:4;9935:3;9931:14;9924:21;;9811:144;9795:4;9790:3;9786:14;9779:21;;9735:220;;;9739:21;9353:608;;9251:710;;;;;:::o;9984:370::-;10055:5;10104:3;10097:4;10089:6;10085:17;10081:27;10071:122;;10112:79;;:::i;:::-;10071:122;10229:6;10216:20;10254:94;10344:3;10336:6;10329:4;10321:6;10317:17;10254:94;:::i;:::-;10245:103;;10061:293;9984:370;;;;:::o;10360:678::-;10450:6;10458;10507:2;10495:9;10486:7;10482:23;10478:32;10475:119;;;10513:79;;:::i;:::-;10475:119;10661:1;10650:9;10646:17;10633:31;10691:18;10683:6;10680:30;10677:117;;;10713:79;;:::i;:::-;10677:117;10818:78;10888:7;10879:6;10868:9;10864:22;10818:78;:::i;:::-;10808:88;;10604:302;10945:2;10971:50;11013:7;11004:6;10993:9;10989:22;10971:50;:::i;:::-;10961:60;;10916:115;10360:678;;;;;:::o;11044:474::-;11112:6;11120;11169:2;11157:9;11148:7;11144:23;11140:32;11137:119;;;11175:79;;:::i;:::-;11137:119;11295:1;11320:53;11365:7;11356:6;11345:9;11341:22;11320:53;:::i;:::-;11310:63;;11266:117;11422:2;11448:53;11493:7;11484:6;11473:9;11469:22;11448:53;:::i;:::-;11438:63;;11393:118;11044:474;;;;;:::o;11524:180::-;11572:77;11569:1;11562:88;11669:4;11666:1;11659:15;11693:4;11690:1;11683:15;11710:320;11754:6;11791:1;11785:4;11781:12;11771:22;;11838:1;11832:4;11828:12;11859:18;11849:81;;11915:4;11907:6;11903:17;11893:27;;11849:81;11977:2;11969:6;11966:14;11946:18;11943:38;11940:84;;11996:18;;:::i;:::-;11940:84;11761:269;11710:320;;;:::o;12036:180::-;12084:77;12081:1;12074:88;12181:4;12178:1;12171:15;12205:4;12202:1;12195:15;12222:191;12262:3;12281:20;12299:1;12281:20;:::i;:::-;12276:25;;12315:20;12333:1;12315:20;:::i;:::-;12310:25;;12358:1;12355;12351:9;12344:16;;12379:3;12376:1;12373:10;12370:36;;;12386:18;;:::i;:::-;12370:36;12222:191;;;;:::o;12419:172::-;12559:24;12555:1;12547:6;12543:14;12536:48;12419:172;:::o;12597:366::-;12739:3;12760:67;12824:2;12819:3;12760:67;:::i;:::-;12753:74;;12836:93;12925:3;12836:93;:::i;:::-;12954:2;12949:3;12945:12;12938:19;;12597:366;;;:::o;12969:419::-;13135:4;13173:2;13162:9;13158:18;13150:26;;13222:9;13216:4;13212:20;13208:1;13197:9;13193:17;13186:47;13250:131;13376:4;13250:131;:::i;:::-;13242:139;;12969:419;;;:::o;13394:172::-;13534:24;13530:1;13522:6;13518:14;13511:48;13394:172;:::o;13572:366::-;13714:3;13735:67;13799:2;13794:3;13735:67;:::i;:::-;13728:74;;13811:93;13900:3;13811:93;:::i;:::-;13929:2;13924:3;13920:12;13913:19;;13572:366;;;:::o;13944:419::-;14110:4;14148:2;14137:9;14133:18;14125:26;;14197:9;14191:4;14187:20;14183:1;14172:9;14168:17;14161:47;14225:131;14351:4;14225:131;:::i;:::-;14217:139;;13944:419;;;:::o;14369:244::-;14509:34;14505:1;14497:6;14493:14;14486:58;14578:27;14573:2;14565:6;14561:15;14554:52;14369:244;:::o;14619:366::-;14761:3;14782:67;14846:2;14841:3;14782:67;:::i;:::-;14775:74;;14858:93;14947:3;14858:93;:::i;:::-;14976:2;14971:3;14967:12;14960:19;;14619:366;;;:::o;14991:419::-;15157:4;15195:2;15184:9;15180:18;15172:26;;15244:9;15238:4;15234:20;15230:1;15219:9;15215:17;15208:47;15272:131;15398:4;15272:131;:::i;:::-;15264:139;;14991:419;;;:::o;15416:224::-;15556:34;15552:1;15544:6;15540:14;15533:58;15625:7;15620:2;15612:6;15608:15;15601:32;15416:224;:::o;15646:366::-;15788:3;15809:67;15873:2;15868:3;15809:67;:::i;:::-;15802:74;;15885:93;15974:3;15885:93;:::i;:::-;16003:2;15998:3;15994:12;15987:19;;15646:366;;;:::o;16018:419::-;16184:4;16222:2;16211:9;16207:18;16199:26;;16271:9;16265:4;16261:20;16257:1;16246:9;16242:17;16235:47;16299:131;16425:4;16299:131;:::i;:::-;16291:139;;16018:419;;;:::o;16443:180::-;16491:77;16488:1;16481:88;16588:4;16585:1;16578:15;16612:4;16609:1;16602:15;16629:233;16668:3;16691:24;16709:5;16691:24;:::i;:::-;16682:33;;16737:66;16730:5;16727:77;16724:103;;16807:18;;:::i;:::-;16724:103;16854:1;16847:5;16843:13;16836:20;;16629:233;;;:::o;16868:102::-;16910:8;16957:5;16954:1;16950:13;16929:34;;16868:102;;;:::o;16976:848::-;17037:5;17044:4;17068:6;17059:15;;17092:5;17083:14;;17106:712;17127:1;17117:8;17114:15;17106:712;;;17222:4;17217:3;17213:14;17207:4;17204:24;17201:50;;;17231:18;;:::i;:::-;17201:50;17281:1;17271:8;17267:16;17264:451;;;17696:4;17689:5;17685:16;17676:25;;17264:451;17746:4;17740;17736:15;17728:23;;17776:32;17799:8;17776:32;:::i;:::-;17764:44;;17106:712;;;16976:848;;;;;;;:::o;17830:1073::-;17884:5;18075:8;18065:40;;18096:1;18087:10;;18098:5;;18065:40;18124:4;18114:36;;18141:1;18132:10;;18143:5;;18114:36;18210:4;18258:1;18253:27;;;;18294:1;18289:191;;;;18203:277;;18253:27;18271:1;18262:10;;18273:5;;;18289:191;18334:3;18324:8;18321:17;18318:43;;;18341:18;;:::i;:::-;18318:43;18390:8;18387:1;18383:16;18374:25;;18425:3;18418:5;18415:14;18412:40;;;18432:18;;:::i;:::-;18412:40;18465:5;;;18203:277;;18589:2;18579:8;18576:16;18570:3;18564:4;18561:13;18557:36;18539:2;18529:8;18526:16;18521:2;18515:4;18512:12;18508:35;18492:111;18489:246;;;18645:8;18639:4;18635:19;18626:28;;18680:3;18673:5;18670:14;18667:40;;;18687:18;;:::i;:::-;18667:40;18720:5;;18489:246;18760:42;18798:3;18788:8;18782:4;18779:1;18760:42;:::i;:::-;18745:57;;;;18834:4;18829:3;18825:14;18818:5;18815:25;18812:51;;;18843:18;;:::i;:::-;18812:51;18892:4;18885:5;18881:16;18872:25;;17830:1073;;;;;;:::o;18909:281::-;18967:5;18991:23;19009:4;18991:23;:::i;:::-;18983:31;;19035:25;19051:8;19035:25;:::i;:::-;19023:37;;19079:104;19116:66;19106:8;19100:4;19079:104;:::i;:::-;19070:113;;18909:281;;;;:::o;19196:410::-;19236:7;19259:20;19277:1;19259:20;:::i;:::-;19254:25;;19293:20;19311:1;19293:20;:::i;:::-;19288:25;;19348:1;19345;19341:9;19370:30;19388:11;19370:30;:::i;:::-;19359:41;;19549:1;19540:7;19536:15;19533:1;19530:22;19510:1;19503:9;19483:83;19460:139;;19579:18;;:::i;:::-;19460:139;19244:362;19196:410;;;;:::o;19612:180::-;19660:77;19657:1;19650:88;19757:4;19754:1;19747:15;19781:4;19778:1;19771:15;19798:185;19838:1;19855:20;19873:1;19855:20;:::i;:::-;19850:25;;19889:20;19907:1;19889:20;:::i;:::-;19884:25;;19928:1;19918:35;;19933:18;;:::i;:::-;19918:35;19975:1;19972;19968:9;19963:14;;19798:185;;;;:::o;19989:143::-;20046:5;20077:6;20071:13;20062:22;;20093:33;20120:5;20093:33;:::i;:::-;19989:143;;;;:::o;20138:351::-;20208:6;20257:2;20245:9;20236:7;20232:23;20228:32;20225:119;;;20263:79;;:::i;:::-;20225:119;20383:1;20408:64;20464:7;20455:6;20444:9;20440:22;20408:64;:::i;:::-;20398:74;;20354:128;20138:351;;;;:::o;20495:166::-;20635:18;20631:1;20623:6;20619:14;20612:42;20495:166;:::o;20667:366::-;20809:3;20830:67;20894:2;20889:3;20830:67;:::i;:::-;20823:74;;20906:93;20995:3;20906:93;:::i;:::-;21024:2;21019:3;21015:12;21008:19;;20667:366;;;:::o;21039:419::-;21205:4;21243:2;21232:9;21228:18;21220:26;;21292:9;21286:4;21282:20;21278:1;21267:9;21263:17;21256:47;21320:131;21446:4;21320:131;:::i;:::-;21312:139;;21039:419;;;:::o;21464:332::-;21585:4;21623:2;21612:9;21608:18;21600:26;;21636:71;21704:1;21693:9;21689:17;21680:6;21636:71;:::i;:::-;21717:72;21785:2;21774:9;21770:18;21761:6;21717:72;:::i;:::-;21464:332;;;;;:::o;21802:137::-;21856:5;21887:6;21881:13;21872:22;;21903:30;21927:5;21903:30;:::i;:::-;21802:137;;;;:::o;21945:345::-;22012:6;22061:2;22049:9;22040:7;22036:23;22032:32;22029:119;;;22067:79;;:::i;:::-;22029:119;22187:1;22212:61;22265:7;22256:6;22245:9;22241:22;22212:61;:::i;:::-;22202:71;;22158:125;21945:345;;;;:::o;22296:225::-;22436:34;22432:1;22424:6;22420:14;22413:58;22505:8;22500:2;22492:6;22488:15;22481:33;22296:225;:::o;22527:366::-;22669:3;22690:67;22754:2;22749:3;22690:67;:::i;:::-;22683:74;;22766:93;22855:3;22766:93;:::i;:::-;22884:2;22879:3;22875:12;22868:19;;22527:366;;;:::o;22899:419::-;23065:4;23103:2;23092:9;23088:18;23080:26;;23152:9;23146:4;23142:20;23138:1;23127:9;23123:17;23116:47;23180:131;23306:4;23180:131;:::i;:::-;23172:139;;22899:419;;;:::o;23324:223::-;23464:34;23460:1;23452:6;23448:14;23441:58;23533:6;23528:2;23520:6;23516:15;23509:31;23324:223;:::o;23553:366::-;23695:3;23716:67;23780:2;23775:3;23716:67;:::i;:::-;23709:74;;23792:93;23881:3;23792:93;:::i;:::-;23910:2;23905:3;23901:12;23894:19;;23553:366;;;:::o;23925:419::-;24091:4;24129:2;24118:9;24114:18;24106:26;;24178:9;24172:4;24168:20;24164:1;24153:9;24149:17;24142:47;24206:131;24332:4;24206:131;:::i;:::-;24198:139;;23925:419;;;:::o;24350:221::-;24490:34;24486:1;24478:6;24474:14;24467:58;24559:4;24554:2;24546:6;24542:15;24535:29;24350:221;:::o;24577:366::-;24719:3;24740:67;24804:2;24799:3;24740:67;:::i;:::-;24733:74;;24816:93;24905:3;24816:93;:::i;:::-;24934:2;24929:3;24925:12;24918:19;;24577:366;;;:::o;24949:419::-;25115:4;25153:2;25142:9;25138:18;25130:26;;25202:9;25196:4;25192:20;25188:1;25177:9;25173:17;25166:47;25230:131;25356:4;25230:131;:::i;:::-;25222:139;;24949:419;;;:::o;25374:179::-;25514:31;25510:1;25502:6;25498:14;25491:55;25374:179;:::o;25559:366::-;25701:3;25722:67;25786:2;25781:3;25722:67;:::i;:::-;25715:74;;25798:93;25887:3;25798:93;:::i;:::-;25916:2;25911:3;25907:12;25900:19;;25559:366;;;:::o;25931:419::-;26097:4;26135:2;26124:9;26120:18;26112:26;;26184:9;26178:4;26174:20;26170:1;26159:9;26155:17;26148:47;26212:131;26338:4;26212:131;:::i;:::-;26204:139;;25931:419;;;:::o;26356:224::-;26496:34;26492:1;26484:6;26480:14;26473:58;26565:7;26560:2;26552:6;26548:15;26541:32;26356:224;:::o;26586:366::-;26728:3;26749:67;26813:2;26808:3;26749:67;:::i;:::-;26742:74;;26825:93;26914:3;26825:93;:::i;:::-;26943:2;26938:3;26934:12;26927:19;;26586:366;;;:::o;26958:419::-;27124:4;27162:2;27151:9;27147:18;27139:26;;27211:9;27205:4;27201:20;27197:1;27186:9;27182:17;27175:47;27239:131;27365:4;27239:131;:::i;:::-;27231:139;;26958:419;;;:::o;27383:222::-;27523:34;27519:1;27511:6;27507:14;27500:58;27592:5;27587:2;27579:6;27575:15;27568:30;27383:222;:::o;27611:366::-;27753:3;27774:67;27838:2;27833:3;27774:67;:::i;:::-;27767:74;;27850:93;27939:3;27850:93;:::i;:::-;27968:2;27963:3;27959:12;27952:19;;27611:366;;;:::o;27983:419::-;28149:4;28187:2;28176:9;28172:18;28164:26;;28236:9;28230:4;28226:20;28222:1;28211:9;28207:17;28200:47;28264:131;28390:4;28264:131;:::i;:::-;28256:139;;27983:419;;;:::o;28408:172::-;28548:24;28544:1;28536:6;28532:14;28525:48;28408:172;:::o;28586:366::-;28728:3;28749:67;28813:2;28808:3;28749:67;:::i;:::-;28742:74;;28825:93;28914:3;28825:93;:::i;:::-;28943:2;28938:3;28934:12;28927:19;;28586:366;;;:::o;28958:419::-;29124:4;29162:2;29151:9;29147:18;29139:26;;29211:9;29205:4;29201:20;29197:1;29186:9;29182:17;29175:47;29239:131;29365:4;29239:131;:::i;:::-;29231:139;;28958:419;;;:::o;29383:240::-;29523:34;29519:1;29511:6;29507:14;29500:58;29592:23;29587:2;29579:6;29575:15;29568:48;29383:240;:::o;29629:366::-;29771:3;29792:67;29856:2;29851:3;29792:67;:::i;:::-;29785:74;;29868:93;29957:3;29868:93;:::i;:::-;29986:2;29981:3;29977:12;29970:19;;29629:366;;;:::o;30001:419::-;30167:4;30205:2;30194:9;30190:18;30182:26;;30254:9;30248:4;30244:20;30240:1;30229:9;30225:17;30218:47;30282:131;30408:4;30282:131;:::i;:::-;30274:139;;30001:419;;;:::o;30426:169::-;30566:21;30562:1;30554:6;30550:14;30543:45;30426:169;:::o;30601:366::-;30743:3;30764:67;30828:2;30823:3;30764:67;:::i;:::-;30757:74;;30840:93;30929:3;30840:93;:::i;:::-;30958:2;30953:3;30949:12;30942:19;;30601:366;;;:::o;30973:419::-;31139:4;31177:2;31166:9;31162:18;31154:26;;31226:9;31220:4;31216:20;31212:1;31201:9;31197:17;31190:47;31254:131;31380:4;31254:131;:::i;:::-;31246:139;;30973:419;;;:::o;31398:241::-;31538:34;31534:1;31526:6;31522:14;31515:58;31607:24;31602:2;31594:6;31590:15;31583:49;31398:241;:::o;31645:366::-;31787:3;31808:67;31872:2;31867:3;31808:67;:::i;:::-;31801:74;;31884:93;31973:3;31884:93;:::i;:::-;32002:2;31997:3;31993:12;31986:19;;31645:366;;;:::o;32017:419::-;32183:4;32221:2;32210:9;32206:18;32198:26;;32270:9;32264:4;32260:20;32256:1;32245:9;32241:17;32234:47;32298:131;32424:4;32298:131;:::i;:::-;32290:139;;32017:419;;;:::o;32442:194::-;32482:4;32502:20;32520:1;32502:20;:::i;:::-;32497:25;;32536:20;32554:1;32536:20;:::i;:::-;32531:25;;32580:1;32577;32573:9;32565:17;;32604:1;32598:4;32595:11;32592:37;;;32609:18;;:::i;:::-;32592:37;32442:194;;;;:::o;32642:220::-;32782:34;32778:1;32770:6;32766:14;32759:58;32851:3;32846:2;32838:6;32834:15;32827:28;32642:220;:::o;32868:366::-;33010:3;33031:67;33095:2;33090:3;33031:67;:::i;:::-;33024:74;;33107:93;33196:3;33107:93;:::i;:::-;33225:2;33220:3;33216:12;33209:19;;32868:366;;;:::o;33240:419::-;33406:4;33444:2;33433:9;33429:18;33421:26;;33493:9;33487:4;33483:20;33479:1;33468:9;33464:17;33457:47;33521:131;33647:4;33521:131;:::i;:::-;33513:139;;33240:419;;;:::o;33665:221::-;33805:34;33801:1;33793:6;33789:14;33782:58;33874:4;33869:2;33861:6;33857:15;33850:29;33665:221;:::o;33892:366::-;34034:3;34055:67;34119:2;34114:3;34055:67;:::i;:::-;34048:74;;34131:93;34220:3;34131:93;:::i;:::-;34249:2;34244:3;34240:12;34233:19;;33892:366;;;:::o;34264:419::-;34430:4;34468:2;34457:9;34453:18;34445:26;;34517:9;34511:4;34507:20;34503:1;34492:9;34488:17;34481:47;34545:131;34671:4;34545:131;:::i;:::-;34537:139;;34264:419;;;:::o;34689:182::-;34829:34;34825:1;34817:6;34813:14;34806:58;34689:182;:::o;34877:366::-;35019:3;35040:67;35104:2;35099:3;35040:67;:::i;:::-;35033:74;;35116:93;35205:3;35116:93;:::i;:::-;35234:2;35229:3;35225:12;35218:19;;34877:366;;;:::o;35249:419::-;35415:4;35453:2;35442:9;35438:18;35430:26;;35502:9;35496:4;35492:20;35488:1;35477:9;35473:17;35466:47;35530:131;35656:4;35530:131;:::i;:::-;35522:139;;35249:419;;;:::o;35674:143::-;35731:5;35762:6;35756:13;35747:22;;35778:33;35805:5;35778:33;:::i;:::-;35674:143;;;;:::o;35823:351::-;35893:6;35942:2;35930:9;35921:7;35917:23;35913:32;35910:119;;;35948:79;;:::i;:::-;35910:119;36068:1;36093:64;36149:7;36140:6;36129:9;36125:22;36093:64;:::i;:::-;36083:74;;36039:128;35823:351;;;;:::o;36180:85::-;36225:7;36254:5;36243:16;;36180:85;;;:::o;36271:158::-;36329:9;36362:61;36380:42;36389:32;36415:5;36389:32;:::i;:::-;36380:42;:::i;:::-;36362:61;:::i;:::-;36349:74;;36271:158;;;:::o;36435:147::-;36530:45;36569:5;36530:45;:::i;:::-;36525:3;36518:58;36435:147;;:::o;36588:114::-;36655:6;36689:5;36683:12;36673:22;;36588:114;;;:::o;36708:184::-;36807:11;36841:6;36836:3;36829:19;36881:4;36876:3;36872:14;36857:29;;36708:184;;;;:::o;36898:132::-;36965:4;36988:3;36980:11;;37018:4;37013:3;37009:14;37001:22;;36898:132;;;:::o;37036:108::-;37113:24;37131:5;37113:24;:::i;:::-;37108:3;37101:37;37036:108;;:::o;37150:179::-;37219:10;37240:46;37282:3;37274:6;37240:46;:::i;:::-;37318:4;37313:3;37309:14;37295:28;;37150:179;;;;:::o;37335:113::-;37405:4;37437;37432:3;37428:14;37420:22;;37335:113;;;:::o;37484:732::-;37603:3;37632:54;37680:5;37632:54;:::i;:::-;37702:86;37781:6;37776:3;37702:86;:::i;:::-;37695:93;;37812:56;37862:5;37812:56;:::i;:::-;37891:7;37922:1;37907:284;37932:6;37929:1;37926:13;37907:284;;;38008:6;38002:13;38035:63;38094:3;38079:13;38035:63;:::i;:::-;38028:70;;38121:60;38174:6;38121:60;:::i;:::-;38111:70;;37967:224;37954:1;37951;37947:9;37942:14;;37907:284;;;37911:14;38207:3;38200:10;;37608:608;;;37484:732;;;;:::o;38222:831::-;38485:4;38523:3;38512:9;38508:19;38500:27;;38537:71;38605:1;38594:9;38590:17;38581:6;38537:71;:::i;:::-;38618:80;38694:2;38683:9;38679:18;38670:6;38618:80;:::i;:::-;38745:9;38739:4;38735:20;38730:2;38719:9;38715:18;38708:48;38773:108;38876:4;38867:6;38773:108;:::i;:::-;38765:116;;38891:72;38959:2;38948:9;38944:18;38935:6;38891:72;:::i;:::-;38973:73;39041:3;39030:9;39026:19;39017:6;38973:73;:::i;:::-;38222:831;;;;;;;;:::o;39059:225::-;39199:34;39195:1;39187:6;39183:14;39176:58;39268:8;39263:2;39255:6;39251:15;39244:33;39059:225;:::o;39290:366::-;39432:3;39453:67;39517:2;39512:3;39453:67;:::i;:::-;39446:74;;39529:93;39618:3;39529:93;:::i;:::-;39647:2;39642:3;39638:12;39631:19;;39290:366;;;:::o;39662:419::-;39828:4;39866:2;39855:9;39851:18;39843:26;;39915:9;39909:4;39905:20;39901:1;39890:9;39886:17;39879:47;39943:131;40069:4;39943:131;:::i;:::-;39935:139;;39662:419;;;:::o;40087:223::-;40227:34;40223:1;40215:6;40211:14;40204:58;40296:6;40291:2;40283:6;40279:15;40272:31;40087:223;:::o;40316:366::-;40458:3;40479:67;40543:2;40538:3;40479:67;:::i;:::-;40472:74;;40555:93;40644:3;40555:93;:::i;:::-;40673:2;40668:3;40664:12;40657:19;;40316:366;;;:::o;40688:419::-;40854:4;40892:2;40881:9;40877:18;40869:26;;40941:9;40935:4;40931:20;40927:1;40916:9;40912:17;40905:47;40969:131;41095:4;40969:131;:::i;:::-;40961:139;;40688:419;;;:::o
Swarm Source
ipfs://b8e82514ec6edd00fc08759b9d4f241586148bee43f680c9e52d5a08d70b9a25
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.