ERC-20
DAO
Overview
Max Total Supply
1,000,000,000 ZETA
Holders
1,807 ( -0.055%)
Market
Price
$0.00 @ 0.000000 ETH (+1.59%)
Onchain Market Cap
$71,990.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
51,315.668950444365738684 ZETAValue
$3.69 ( ~0.0011685324895642 Eth) [0.0051%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
stoicDAO
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-23 */ /** TG: https://t.me/stoic_dao Twitter: https://x.com/stoic_dao Web: https://stoicdao.io Full links: https://linktr.ee/stoicdao */ // 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) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract stoicDAO is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public launched; modifier lockSwapping() { swapping = true; _; swapping = false; } event TransferForeignToken(address token, uint256 amount); event Launched(); event SwapEnabled(); event SwapThresholdUpdated(); event BuyTaxesUpdated(); event SellTaxesUpdated(); event MarketingWalletUpdated(); event DevelopmentWalletUpdated(); event StoicFundWalletUpdated(); event IncubatorWalletUpdated(); event ExcludedFromFeesUpdated(); event MaxTxAmountUpdated(); event MaxWalletAmountUpdated(); event StuckEthersCleared(); uint256 public swapThreshold = 1000000 * 10**18; //0.1% of total supply uint256 public maxTxAmount = 1000000000 * 10**18; uint256 public maxWalletAmount = 1000000000 * 10**18; address public marketingWallet = 0x9E4F6Fd3845d61825e27512c3c37d1f0C6b4daA7; address public developmentWallet = 0x81B47306fdFb578Cf1F54B9C647dfd6938f70328; address public stoicFundWallet = 0x3De7847e31dDc390699716D0Ab773e3B708dC2b6; address public incubatorWallet = 0x76ac47686849328716876F97Ea36815CD23FA534; struct Taxes { uint256 marketing; uint256 liquidity; uint256 development; uint256 stoicFund; uint256 incubator; uint256 burn; } Taxes public buyTaxes = Taxes(10,0,10,15,15,0); Taxes public sellTaxes = Taxes(10,0,10,15,15,0); uint256 private totBuyTax = 50; //5% as denominator is 1,000 uint256 private totSellTax = 50; //5% as denominator is 1,000 mapping (address => bool) public excludedFromFees; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("stoicDAO", "ZETA") { _mint(msg.sender, 1000000000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[developmentWallet] = true; excludedFromFees[stoicFundWallet] = true; excludedFromFees[incubatorWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(launched, "Trading not active yet"); require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; else{ if(recipient == pair) fee = amount * totSellTax / 1000; else if(sender == pair) fee = amount * totBuyTax / 1000; else fee = 0; } if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); uint256 tokensForBurn = 0; tokensForBurn = fee * sellTaxes.burn / totSellTax; if(tokensForBurn > 0) { super._transfer(address(this), address(0xdead), tokensForBurn); } } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(tokensToAddLiquidityWith > 0 && ethToAddLiquidityWith > 0){ // Add liquidity to dex addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 developmentAmt = unitBalance * 2 * sellTaxes.development; if(developmentAmt > 0){ payable(developmentWallet).sendValue(developmentAmt); } uint256 stoicFundAmt = unitBalance * 2 * sellTaxes.stoicFund; if(stoicFundAmt > 0){ payable(stoicFundWallet).sendValue(stoicFundAmt); } uint256 incubatorAmt = unitBalance * 2 * sellTaxes.incubator; if(developmentAmt > 0){ payable(incubatorWallet).sendValue(incubatorAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0xdead), block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency swapEnabled = state; emit SwapEnabled(); } function setSwapThreshold(uint256 new_amount) external onlyOwner { require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply."); require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply."); swapThreshold = new_amount * (10**18); emit SwapThresholdUpdated(); } function launch() external onlyOwner{ require(!launched, "Trading already active"); launched = true; swapEnabled = true; emit Launched(); } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _stoicFund, uint256 _incubator, uint256 _burn) external onlyOwner{ buyTaxes = Taxes(_marketing, _liquidity, _development, _stoicFund, _incubator, _burn); totBuyTax = _marketing + _liquidity + _development + _stoicFund + _incubator + _burn; require(totBuyTax <= 301,"Total buy fees cannot be greater than 5%"); emit BuyTaxesUpdated(); } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _stoicFund, uint256 _incubator, uint256 _burn) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _development, _stoicFund, _incubator, _burn); totSellTax = _marketing + _liquidity + _development + _stoicFund + _incubator + _burn; require(totSellTax <= 301,"Total sell fees cannot be greater than 5%"); require(totSellTax >= 10,"Total sell fees cannot beless than 1%"); emit SellTaxesUpdated(); } function setMarketingWallet(address newWallet) external onlyOwner{ excludedFromFees[marketingWallet] = false; require(newWallet != address(0), "Marketing Wallet cannot be zero address"); marketingWallet = newWallet; emit MarketingWalletUpdated(); } function setDevelopmentWallet(address newWallet) external onlyOwner{ excludedFromFees[developmentWallet] = false; require(newWallet != address(0), "Development Wallet cannot be zero address"); developmentWallet = newWallet; emit DevelopmentWalletUpdated(); } function setStoicFundWallet(address newWallet) external onlyOwner{ excludedFromFees[stoicFundWallet] = false; require(newWallet != address(0), "StoicFund Wallet cannot be zero address"); stoicFundWallet = newWallet; emit StoicFundWalletUpdated(); } function setIncubatorWallet(address newWallet) external onlyOwner{ excludedFromFees[incubatorWallet] = false; require(newWallet != address(0), "Incubator Wallet cannot be zero address"); incubatorWallet = newWallet; emit IncubatorWalletUpdated(); } function setExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; emit ExcludedFromFeesUpdated(); } function setMaxTxAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxTxAmount = amount * (10**18); emit MaxTxAmountUpdated(); } function setMaxWalletAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxWalletAmount = amount * (10**18); emit MaxWalletAmountUpdated(); } function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) { uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } function clearStuckEthers(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); emit StuckEthersCleared(); } function unclog() public onlyOwner lockSwapping { swapTokensForETH( balanceOf(address(this)) ); uint256 ethBalance = address(this).balance; uint256 ethMarketing = ethBalance / 2; uint256 ethDevelopment = ethBalance - ethMarketing; bool success; (success, ) = address(marketingWallet).call{value: ethMarketing}(""); (success, ) = address(developmentWallet).call{value: ethDevelopment}( "" ); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"IncubatorWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StoicFundWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"stoicFund","type":"uint256"},{"internalType":"uint256","name":"incubator","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"incubatorWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"stoicFund","type":"uint256"},{"internalType":"uint256","name":"incubator","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_stoicFund","type":"uint256"},{"internalType":"uint256","name":"_incubator","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setIncubatorWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_stoicFund","type":"uint256"},{"internalType":"uint256","name":"_incubator","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setStoicFundWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stoicFundWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
69d3c21bcecceda10000006008556b033b2e3c9fd0803ce80000006009819055600a908155600b80546001600160a01b0319908116739e4f6fd3845d61825e27512c3c37d1f0c6b4daa717909155600c805482167381b47306fdfb578cf1f54b9c647dfd6938f70328179055600d80548216733de7847e31ddc390699716d0ab773e3b708dc2b6179055600e80549091167376ac47686849328716876f97ea36815cd23fa53417905560808190525f60a081905260c0829052600f60e0819052610100819052610120829052828155601082905560118390556012819055601381905560148290556102006040526101408390526101608290526101808390526101a08190526101c08190526101e0829052601583905560168290556017929092556018829055601991909155601a556032601b819055601c5534801562000145575f80fd5b506040518060400160405280600881526020016773746f696344414f60c01b815250604051806040016040528060048152602001635a45544160e01b8152508160039081620001959190620005d6565b506004620001a48282620005d6565b505050620001c1620001bb620003f860201b60201c565b620003fc565b620001ea33620001d46012600a620007ad565b620001e490633b9aca00620007c4565b6200044d565b335f908152601d60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000252573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002789190620007de565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ea9190620007de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000335573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035b9190620007de565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601d6020526040808220805460ff199081166001908117909255600b54851684528284208054821683179055600c54851684528284208054821683179055600d54851684528284208054821683179055600e549094168352912080549092161790556200081c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004a85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004bb919062000806565b90915550506001600160a01b0382165f9081526020819052604081208054839290620004e990849062000806565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200056057607f821691505b6020821081036200057f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000532575f81815260208120601f850160051c81016020861015620005ad5750805b601f850160051c820191505b81811015620005ce57828155600101620005b9565b505050505050565b81516001600160401b03811115620005f257620005f262000537565b6200060a816200060384546200054b565b8462000585565b602080601f83116001811462000640575f8415620006285750858301515b5f19600386901b1c1916600185901b178555620005ce565b5f85815260208120601f198616915b8281101562000670578886015182559484019460019091019084016200064f565b50858210156200068e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006f257815f1904821115620006d657620006d66200069e565b80851615620006e457918102915b93841c9390800290620006b7565b509250929050565b5f826200070a57506001620007a7565b816200071857505f620007a7565b81600181146200073157600281146200073c576200075c565b6001915050620007a7565b60ff8411156200075057620007506200069e565b50506001821b620007a7565b5060208310610133831016604e8410600b841016171562000781575081810a620007a7565b6200078d8383620006b2565b805f1904821115620007a357620007a36200069e565b0290505b92915050565b5f620007bd60ff841683620006fa565b9392505050565b8082028115828204841417620007a757620007a76200069e565b5f60208284031215620007ef575f80fd5b81516001600160a01b0381168114620007bd575f80fd5b80820180821115620007a757620007a76200069e565b6128b4806200082a5f395ff3fe608060405260043610610257575f3560e01c80638091f3bf1161013f578063aa4bde28116100b3578063e01af92c11610078578063e01af92c14610744578063ec28438a14610763578063ee6bdf8914610782578063f2fde38b146107a1578063f66895a3146107c0578063f887ea40146107ea575f80fd5b8063aa4bde281461067f578063c04a541414610694578063c8ca89c7146106b3578063dbe66ca0146106d2578063dd62ed3e14610700575f80fd5b806395d89b411161010457806395d89b41146105d05780639aed7370146105e45780639d0014b114610603578063a457c2d714610622578063a8aa1b3114610641578063a9059cbb14610660575f80fd5b80638091f3bf14610508578063864701a51461052857806387921b1e1461057f5780638c0b5e221461059e5780638da5cb5b146105b3575f80fd5b806339509351116101d657806367c453491161019b57806367c453491461044e5780636ddd17131461046257806370a0823114610482578063715018a6146104b657806372ac2486146104ca57806375f0a874146104e9575f80fd5b8063395093511461039b578063590ffdce146103ba5780635bdbb0f9146103d95780635d098b38146103f85780635e5472a914610417575f80fd5b806318160ddd1161021c57806318160ddd1461030f57806323b872dd1461032357806325b86edf1461034257806327a14fc214610361578063313ce56714610380575f80fd5b806301339c21146102625780630445b6671461027857806304721c91146102a057806306fdde03146102bf578063095ea7b3146102e0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b50610276610809565b005b348015610283575f80fd5b5061028d60085481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102766102ba3660046124ad565b6108ce565b3480156102ca575f80fd5b506102d36109bf565b60405161029791906124cf565b3480156102eb575f80fd5b506102ff6102fa36600461251a565b610a4f565b6040519015158152602001610297565b34801561031a575f80fd5b5060025461028d565b34801561032e575f80fd5b506102ff61033d366004612544565b610a65565b34801561034d575f80fd5b506102ff61035c366004612582565b610b14565b34801561036c575f80fd5b5061027661037b3660046125b9565b610c68565b34801561038b575f80fd5b5060405160128152602001610297565b3480156103a6575f80fd5b506102ff6103b536600461251a565b610cf5565b3480156103c5575f80fd5b506102766103d43660046125dd565b610d2b565b3480156103e4575f80fd5b506102766103f3366004612609565b610da2565b348015610403575f80fd5b506102766104123660046124ad565b610f48565b348015610422575f80fd5b50600d54610436906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610459575f80fd5b50610276611039565b34801561046d575f80fd5b506007546102ff90600160a81b900460ff1681565b34801561048d575f80fd5b5061028d61049c3660046124ad565b6001600160a01b03165f9081526020819052604090205490565b3480156104c1575f80fd5b50610276611172565b3480156104d5575f80fd5b506102766104e43660046124ad565b6111a7565b3480156104f4575f80fd5b50600b54610436906001600160a01b031681565b348015610513575f80fd5b506007546102ff90600160b01b900460ff1681565b348015610533575f80fd5b50600f5460105460115460125460135460145461055295949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610297565b34801561058a575f80fd5b50610276610599366004612609565b61129a565b3480156105a9575f80fd5b5061028d60095481565b3480156105be575f80fd5b506005546001600160a01b0316610436565b3480156105db575f80fd5b506102d36113dd565b3480156105ef575f80fd5b506102766105fe3660046125b9565b6113ec565b34801561060e575f80fd5b5061027661061d3660046125b9565b611483565b34801561062d575f80fd5b506102ff61063c36600461251a565b6115cb565b34801561064c575f80fd5b50600754610436906001600160a01b031681565b34801561066b575f80fd5b506102ff61067a36600461251a565b611665565b34801561068a575f80fd5b5061028d600a5481565b34801561069f575f80fd5b50600c54610436906001600160a01b031681565b3480156106be575f80fd5b506102766106cd3660046124ad565b611671565b3480156106dd575f80fd5b506102ff6106ec3660046124ad565b601d6020525f908152604090205460ff1681565b34801561070b575f80fd5b5061028d61071a366004612582565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561074f575f80fd5b5061027661075e366004612648565b611762565b34801561076e575f80fd5b5061027661077d3660046125b9565b6117ce565b34801561078d575f80fd5b50600e54610436906001600160a01b031681565b3480156107ac575f80fd5b506102766107bb3660046124ad565b61185b565b3480156107cb575f80fd5b50601554601654601754601854601954601a5461055295949392919086565b3480156107f5575f80fd5b50600654610436906001600160a01b031681565b6005546001600160a01b0316331461083c5760405162461bcd60e51b815260040161083390612663565b60405180910390fd5b600754600160b01b900460ff161561088f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610833565b6007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b6005546001600160a01b031633146108f85760405162461bcd60e51b815260040161083390612663565b600d546001600160a01b039081165f908152601d60205260409020805460ff1916905581166109795760405162461bcd60e51b815260206004820152602760248201527f53746f696346756e642057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600d80546001600160a01b0319166001600160a01b0383161790556040517fbd0f5f675b995ee3740185b62c3488f2079f65b2eab97361ccd2d01379f27d64905f90a150565b6060600380546109ce90612698565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa90612698565b8015610a455780601f10610a1c57610100808354040283529160200191610a45565b820191905f5260205f20905b815481529060010190602001808311610a2857829003601f168201915b5050505050905090565b5f610a5b3384846118f6565b5060015b92915050565b5f610a71848484611a19565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610af55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610833565b610b098533610b0486856126e4565b6118f6565b506001949350505050565b6005545f906001600160a01b03163314610b405760405162461bcd60e51b815260040161083390612663565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba891906126f7565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610bf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1c919061270e565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610c925760405162461bcd60e51b815260040161083390612663565b622625a0811015610cb55760405162461bcd60e51b815260040161083390612729565b610cc781670de0b6b3a764000061276c565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a5b918590610b04908690612783565b6005546001600160a01b03163314610d555760405162461bcd60e51b815260040161083390612663565b6001600160a01b0382165f908152601d6020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161083390612663565b6040805160c08101825287815260208101879052908101859052606081018490526080810183905260a00181905260158690556016859055601784905560188390556019829055601a81905580828486610e26898b612783565b610e309190612783565b610e3a9190612783565b610e449190612783565b610e4e9190612783565b601c81905561012d1015610eb65760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526872207468616e20352560b81b6064820152608401610833565b600a601c541015610f185760405162461bcd60e51b815260206004820152602660248201527f546f74616c2073656c6c20666565732063616e6e6f742062656c65737320207460448201526568616e20312560d01b6064820152608401610833565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a1505050505050565b6005546001600160a01b03163314610f725760405162461bcd60e51b815260040161083390612663565b600b546001600160a01b039081165f908152601d60205260409020805460ff191690558116610ff35760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146110635760405162461bcd60e51b815260040161083390612663565b6007805460ff60a01b1916600160a01b17905561109c611097306001600160a01b03165f9081526020819052604090205490565b611d86565b475f6110a9600283612796565b90505f6110b682846126e4565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611105576040519150601f19603f3d011682016040523d82523d5f602084013e61110a565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611157576040519150601f19603f3d011682016040523d82523d5f602084013e61115c565b606091505b50506007805460ff60a01b191690555050505050565b6005546001600160a01b0316331461119c5760405162461bcd60e51b815260040161083390612663565b6111a55f611ed6565b565b6005546001600160a01b031633146111d15760405162461bcd60e51b815260040161083390612663565b600c546001600160a01b039081165f908152601d60205260409020805460ff1916905581166112545760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a65726044820152686f206164647265737360b81b6064820152608401610833565b600c80546001600160a01b0319166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b6005546001600160a01b031633146112c45760405162461bcd60e51b815260040161083390612663565b6040805160c08101825287815260208101879052908101859052606081018490526080810183905260a001819052600f869055601085905560118490556012839055601382905560148190558082848661131e898b612783565b6113289190612783565b6113329190612783565b61133c9190612783565b6113469190612783565b601b81905561012d10156113ad5760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b6064820152608401610833565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a1505050505050565b6060600480546109ce90612698565b6005546001600160a01b031633146114165760405162461bcd60e51b815260040161083390612663565b47336108fc6064611427858561276c565b6114319190612796565b6040518115909202915f818181858888f19350505050158015611456573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146114ad5760405162461bcd60e51b815260040161083390612663565b61271081101561151d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610833565b6301c9c38081111561158c5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b6064820152608401610833565b61159e81670de0b6b3a764000061276c565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561164c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610833565b61165b3385610b0486856126e4565b5060019392505050565b5f610a5b338484611a19565b6005546001600160a01b0316331461169b5760405162461bcd60e51b815260040161083390612663565b600e546001600160a01b039081165f908152601d60205260409020805460ff19169055811661171c5760405162461bcd60e51b815260206004820152602760248201527f496e63756261746f722057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600e80546001600160a01b0319166001600160a01b0383161790556040517f0d2b430dc059e523a2681555c0a5311e0f50d356e55e964a4dd023b5e84d72fc905f90a150565b6005546001600160a01b0316331461178c5760405162461bcd60e51b815260040161083390612663565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146117f85760405162461bcd60e51b815260040161083390612663565b622625a081101561181b5760405162461bcd60e51b815260040161083390612729565b61182d81670de0b6b3a764000061276c565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b031633146118855760405162461bcd60e51b815260040161083390612663565b6001600160a01b0381166118ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610833565b6118f381611ed6565b50565b6001600160a01b0383166119585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610833565b6001600160a01b0382166119b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610833565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611a7a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610833565b6001600160a01b0383165f908152601d602052604090205460ff16158015611aba57506001600160a01b0382165f908152601d602052604090205460ff16155b8015611ad05750600754600160a01b900460ff16155b15611c1257600754600160b01b900460ff16611b275760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610833565b600954811115611b795760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610833565b6007546001600160a01b03838116911614611c1257600a5481611bb0846001600160a01b03165f9081526020819052604090205490565b611bba9190612783565b1115611c125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610833565b6007545f90600160a01b900460ff1680611c4357506001600160a01b0384165f908152601d602052604090205460ff165b80611c6557506001600160a01b0383165f908152601d602052604090205460ff165b15611c7157505f611cd3565b6007546001600160a01b0390811690841603611ca9576103e8601c5483611c98919061276c565b611ca29190612796565b9050611cd3565b6007546001600160a01b0390811690851603611cd0576103e8601b5483611c98919061276c565b505f5b600754600160a81b900460ff168015611cf65750600754600160a01b900460ff16155b8015611d1057506007546001600160a01b03858116911614155b8015611d1b57505f81115b15611d2857611d28611f27565b611d3c8484611d3784866126e4565b612101565b8015611d4d57611d4d843083612101565b601c54601a545f9190611d60908461276c565b611d6a9190612796565b90508015611d7f57611d7f3061dead83612101565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611db957611db96127b5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3491906127c9565b81600181518110611e4757611e476127b5565b6001600160a01b039283166020918202929092010152600654611e6d91309116846118f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ea59085905f908690309042906004016127e4565b5f604051808303815f87803b158015611ebc575f80fd5b505af1158015611ece573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff166111a5576007805460ff60a01b1916600160a01b179055305f90815260208190526040812054905060085481106120f1575f601c546002611f75919061276c565b90505f8160156001015484611f8a919061276c565b611f949190612796565b90505f611fa182856126e4565b905047611fad82611d86565b5f611fb882476126e4565b6016549091505f90611fca90876126e4565b611fd49083612796565b6016549091505f90611fe6908361276c565b90505f86118015611ff657505f81115b156120055761200586826122d7565b6015545f9061201584600261276c565b61201f919061276c565b9050801561203d57600b5461203d906001600160a01b03168261237f565b6017545f9061204d85600261276c565b612057919061276c565b9050801561207557600c54612075906001600160a01b03168261237f565b6018545f9061208586600261276c565b61208f919061276c565b905080156120ad57600d546120ad906001600160a01b03168261237f565b6019545f906120bd87600261276c565b6120c7919061276c565b905082156120e557600e546120e5906001600160a01b03168261237f565b50505050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166121655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610833565b6001600160a01b0382166121c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610833565b6001600160a01b0383165f908152602081905260409020548181101561223e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610833565b61224882826126e4565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061227d908490612783565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c991815260200190565b60405180910390a350505050565b6006546122ef9030906001600160a01b0316846118f6565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561235a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d7f9190612853565b804710156123cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610833565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612418576040519150601f19603f3d011682016040523d82523d5f602084013e61241d565b606091505b50509050806124945760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610833565b505050565b6001600160a01b03811681146118f3575f80fd5b5f602082840312156124bd575f80fd5b81356124c881612499565b9392505050565b5f6020808352835180828501525f5b818110156124fa578581018301518582016040015282016124de565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561252b575f80fd5b823561253681612499565b946020939093013593505050565b5f805f60608486031215612556575f80fd5b833561256181612499565b9250602084013561257181612499565b929592945050506040919091013590565b5f8060408385031215612593575f80fd5b823561259e81612499565b915060208301356125ae81612499565b809150509250929050565b5f602082840312156125c9575f80fd5b5035919050565b80151581146118f3575f80fd5b5f80604083850312156125ee575f80fd5b82356125f981612499565b915060208301356125ae816125d0565b5f805f805f8060c0878903121561261e575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215612658575f80fd5b81356124c8816125d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806126ac57607f821691505b6020821081036126ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a5f57610a5f6126d0565b5f60208284031215612707575f80fd5b5051919050565b5f6020828403121561271e575f80fd5b81516124c8816125d0565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b8082028115828204841417610a5f57610a5f6126d0565b80820180821115610a5f57610a5f6126d0565b5f826127b057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156127d9575f80fd5b81516124c881612499565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128325784516001600160a01b03168352938301939183019160010161280d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612865575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212209d908b70da0b62000f929e77ffc027ee1480db531706e4396ae95d395f4386e664736f6c63430008140033
Deployed Bytecode
0x608060405260043610610257575f3560e01c80638091f3bf1161013f578063aa4bde28116100b3578063e01af92c11610078578063e01af92c14610744578063ec28438a14610763578063ee6bdf8914610782578063f2fde38b146107a1578063f66895a3146107c0578063f887ea40146107ea575f80fd5b8063aa4bde281461067f578063c04a541414610694578063c8ca89c7146106b3578063dbe66ca0146106d2578063dd62ed3e14610700575f80fd5b806395d89b411161010457806395d89b41146105d05780639aed7370146105e45780639d0014b114610603578063a457c2d714610622578063a8aa1b3114610641578063a9059cbb14610660575f80fd5b80638091f3bf14610508578063864701a51461052857806387921b1e1461057f5780638c0b5e221461059e5780638da5cb5b146105b3575f80fd5b806339509351116101d657806367c453491161019b57806367c453491461044e5780636ddd17131461046257806370a0823114610482578063715018a6146104b657806372ac2486146104ca57806375f0a874146104e9575f80fd5b8063395093511461039b578063590ffdce146103ba5780635bdbb0f9146103d95780635d098b38146103f85780635e5472a914610417575f80fd5b806318160ddd1161021c57806318160ddd1461030f57806323b872dd1461032357806325b86edf1461034257806327a14fc214610361578063313ce56714610380575f80fd5b806301339c21146102625780630445b6671461027857806304721c91146102a057806306fdde03146102bf578063095ea7b3146102e0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b50610276610809565b005b348015610283575f80fd5b5061028d60085481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102766102ba3660046124ad565b6108ce565b3480156102ca575f80fd5b506102d36109bf565b60405161029791906124cf565b3480156102eb575f80fd5b506102ff6102fa36600461251a565b610a4f565b6040519015158152602001610297565b34801561031a575f80fd5b5060025461028d565b34801561032e575f80fd5b506102ff61033d366004612544565b610a65565b34801561034d575f80fd5b506102ff61035c366004612582565b610b14565b34801561036c575f80fd5b5061027661037b3660046125b9565b610c68565b34801561038b575f80fd5b5060405160128152602001610297565b3480156103a6575f80fd5b506102ff6103b536600461251a565b610cf5565b3480156103c5575f80fd5b506102766103d43660046125dd565b610d2b565b3480156103e4575f80fd5b506102766103f3366004612609565b610da2565b348015610403575f80fd5b506102766104123660046124ad565b610f48565b348015610422575f80fd5b50600d54610436906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610459575f80fd5b50610276611039565b34801561046d575f80fd5b506007546102ff90600160a81b900460ff1681565b34801561048d575f80fd5b5061028d61049c3660046124ad565b6001600160a01b03165f9081526020819052604090205490565b3480156104c1575f80fd5b50610276611172565b3480156104d5575f80fd5b506102766104e43660046124ad565b6111a7565b3480156104f4575f80fd5b50600b54610436906001600160a01b031681565b348015610513575f80fd5b506007546102ff90600160b01b900460ff1681565b348015610533575f80fd5b50600f5460105460115460125460135460145461055295949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610297565b34801561058a575f80fd5b50610276610599366004612609565b61129a565b3480156105a9575f80fd5b5061028d60095481565b3480156105be575f80fd5b506005546001600160a01b0316610436565b3480156105db575f80fd5b506102d36113dd565b3480156105ef575f80fd5b506102766105fe3660046125b9565b6113ec565b34801561060e575f80fd5b5061027661061d3660046125b9565b611483565b34801561062d575f80fd5b506102ff61063c36600461251a565b6115cb565b34801561064c575f80fd5b50600754610436906001600160a01b031681565b34801561066b575f80fd5b506102ff61067a36600461251a565b611665565b34801561068a575f80fd5b5061028d600a5481565b34801561069f575f80fd5b50600c54610436906001600160a01b031681565b3480156106be575f80fd5b506102766106cd3660046124ad565b611671565b3480156106dd575f80fd5b506102ff6106ec3660046124ad565b601d6020525f908152604090205460ff1681565b34801561070b575f80fd5b5061028d61071a366004612582565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561074f575f80fd5b5061027661075e366004612648565b611762565b34801561076e575f80fd5b5061027661077d3660046125b9565b6117ce565b34801561078d575f80fd5b50600e54610436906001600160a01b031681565b3480156107ac575f80fd5b506102766107bb3660046124ad565b61185b565b3480156107cb575f80fd5b50601554601654601754601854601954601a5461055295949392919086565b3480156107f5575f80fd5b50600654610436906001600160a01b031681565b6005546001600160a01b0316331461083c5760405162461bcd60e51b815260040161083390612663565b60405180910390fd5b600754600160b01b900460ff161561088f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610833565b6007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b6005546001600160a01b031633146108f85760405162461bcd60e51b815260040161083390612663565b600d546001600160a01b039081165f908152601d60205260409020805460ff1916905581166109795760405162461bcd60e51b815260206004820152602760248201527f53746f696346756e642057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600d80546001600160a01b0319166001600160a01b0383161790556040517fbd0f5f675b995ee3740185b62c3488f2079f65b2eab97361ccd2d01379f27d64905f90a150565b6060600380546109ce90612698565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa90612698565b8015610a455780601f10610a1c57610100808354040283529160200191610a45565b820191905f5260205f20905b815481529060010190602001808311610a2857829003601f168201915b5050505050905090565b5f610a5b3384846118f6565b5060015b92915050565b5f610a71848484611a19565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610af55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610833565b610b098533610b0486856126e4565b6118f6565b506001949350505050565b6005545f906001600160a01b03163314610b405760405162461bcd60e51b815260040161083390612663565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba891906126f7565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610bf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1c919061270e565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610c925760405162461bcd60e51b815260040161083390612663565b622625a0811015610cb55760405162461bcd60e51b815260040161083390612729565b610cc781670de0b6b3a764000061276c565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a5b918590610b04908690612783565b6005546001600160a01b03163314610d555760405162461bcd60e51b815260040161083390612663565b6001600160a01b0382165f908152601d6020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161083390612663565b6040805160c08101825287815260208101879052908101859052606081018490526080810183905260a00181905260158690556016859055601784905560188390556019829055601a81905580828486610e26898b612783565b610e309190612783565b610e3a9190612783565b610e449190612783565b610e4e9190612783565b601c81905561012d1015610eb65760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526872207468616e20352560b81b6064820152608401610833565b600a601c541015610f185760405162461bcd60e51b815260206004820152602660248201527f546f74616c2073656c6c20666565732063616e6e6f742062656c65737320207460448201526568616e20312560d01b6064820152608401610833565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a1505050505050565b6005546001600160a01b03163314610f725760405162461bcd60e51b815260040161083390612663565b600b546001600160a01b039081165f908152601d60205260409020805460ff191690558116610ff35760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146110635760405162461bcd60e51b815260040161083390612663565b6007805460ff60a01b1916600160a01b17905561109c611097306001600160a01b03165f9081526020819052604090205490565b611d86565b475f6110a9600283612796565b90505f6110b682846126e4565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611105576040519150601f19603f3d011682016040523d82523d5f602084013e61110a565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611157576040519150601f19603f3d011682016040523d82523d5f602084013e61115c565b606091505b50506007805460ff60a01b191690555050505050565b6005546001600160a01b0316331461119c5760405162461bcd60e51b815260040161083390612663565b6111a55f611ed6565b565b6005546001600160a01b031633146111d15760405162461bcd60e51b815260040161083390612663565b600c546001600160a01b039081165f908152601d60205260409020805460ff1916905581166112545760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a65726044820152686f206164647265737360b81b6064820152608401610833565b600c80546001600160a01b0319166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b6005546001600160a01b031633146112c45760405162461bcd60e51b815260040161083390612663565b6040805160c08101825287815260208101879052908101859052606081018490526080810183905260a001819052600f869055601085905560118490556012839055601382905560148190558082848661131e898b612783565b6113289190612783565b6113329190612783565b61133c9190612783565b6113469190612783565b601b81905561012d10156113ad5760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b6064820152608401610833565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a1505050505050565b6060600480546109ce90612698565b6005546001600160a01b031633146114165760405162461bcd60e51b815260040161083390612663565b47336108fc6064611427858561276c565b6114319190612796565b6040518115909202915f818181858888f19350505050158015611456573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146114ad5760405162461bcd60e51b815260040161083390612663565b61271081101561151d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610833565b6301c9c38081111561158c5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b6064820152608401610833565b61159e81670de0b6b3a764000061276c565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561164c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610833565b61165b3385610b0486856126e4565b5060019392505050565b5f610a5b338484611a19565b6005546001600160a01b0316331461169b5760405162461bcd60e51b815260040161083390612663565b600e546001600160a01b039081165f908152601d60205260409020805460ff19169055811661171c5760405162461bcd60e51b815260206004820152602760248201527f496e63756261746f722057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610833565b600e80546001600160a01b0319166001600160a01b0383161790556040517f0d2b430dc059e523a2681555c0a5311e0f50d356e55e964a4dd023b5e84d72fc905f90a150565b6005546001600160a01b0316331461178c5760405162461bcd60e51b815260040161083390612663565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146117f85760405162461bcd60e51b815260040161083390612663565b622625a081101561181b5760405162461bcd60e51b815260040161083390612729565b61182d81670de0b6b3a764000061276c565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b031633146118855760405162461bcd60e51b815260040161083390612663565b6001600160a01b0381166118ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610833565b6118f381611ed6565b50565b6001600160a01b0383166119585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610833565b6001600160a01b0382166119b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610833565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611a7a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610833565b6001600160a01b0383165f908152601d602052604090205460ff16158015611aba57506001600160a01b0382165f908152601d602052604090205460ff16155b8015611ad05750600754600160a01b900460ff16155b15611c1257600754600160b01b900460ff16611b275760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610833565b600954811115611b795760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610833565b6007546001600160a01b03838116911614611c1257600a5481611bb0846001600160a01b03165f9081526020819052604090205490565b611bba9190612783565b1115611c125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610833565b6007545f90600160a01b900460ff1680611c4357506001600160a01b0384165f908152601d602052604090205460ff165b80611c6557506001600160a01b0383165f908152601d602052604090205460ff165b15611c7157505f611cd3565b6007546001600160a01b0390811690841603611ca9576103e8601c5483611c98919061276c565b611ca29190612796565b9050611cd3565b6007546001600160a01b0390811690851603611cd0576103e8601b5483611c98919061276c565b505f5b600754600160a81b900460ff168015611cf65750600754600160a01b900460ff16155b8015611d1057506007546001600160a01b03858116911614155b8015611d1b57505f81115b15611d2857611d28611f27565b611d3c8484611d3784866126e4565b612101565b8015611d4d57611d4d843083612101565b601c54601a545f9190611d60908461276c565b611d6a9190612796565b90508015611d7f57611d7f3061dead83612101565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611db957611db96127b5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3491906127c9565b81600181518110611e4757611e476127b5565b6001600160a01b039283166020918202929092010152600654611e6d91309116846118f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ea59085905f908690309042906004016127e4565b5f604051808303815f87803b158015611ebc575f80fd5b505af1158015611ece573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff166111a5576007805460ff60a01b1916600160a01b179055305f90815260208190526040812054905060085481106120f1575f601c546002611f75919061276c565b90505f8160156001015484611f8a919061276c565b611f949190612796565b90505f611fa182856126e4565b905047611fad82611d86565b5f611fb882476126e4565b6016549091505f90611fca90876126e4565b611fd49083612796565b6016549091505f90611fe6908361276c565b90505f86118015611ff657505f81115b156120055761200586826122d7565b6015545f9061201584600261276c565b61201f919061276c565b9050801561203d57600b5461203d906001600160a01b03168261237f565b6017545f9061204d85600261276c565b612057919061276c565b9050801561207557600c54612075906001600160a01b03168261237f565b6018545f9061208586600261276c565b61208f919061276c565b905080156120ad57600d546120ad906001600160a01b03168261237f565b6019545f906120bd87600261276c565b6120c7919061276c565b905082156120e557600e546120e5906001600160a01b03168261237f565b50505050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166121655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610833565b6001600160a01b0382166121c75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610833565b6001600160a01b0383165f908152602081905260409020548181101561223e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610833565b61224882826126e4565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061227d908490612783565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c991815260200190565b60405180910390a350505050565b6006546122ef9030906001600160a01b0316846118f6565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561235a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d7f9190612853565b804710156123cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610833565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612418576040519150601f19603f3d011682016040523d82523d5f602084013e61241d565b606091505b50509050806124945760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610833565b505050565b6001600160a01b03811681146118f3575f80fd5b5f602082840312156124bd575f80fd5b81356124c881612499565b9392505050565b5f6020808352835180828501525f5b818110156124fa578581018301518582016040015282016124de565b505f604082860101526040601f19601f8301168501019250505092915050565b5f806040838503121561252b575f80fd5b823561253681612499565b946020939093013593505050565b5f805f60608486031215612556575f80fd5b833561256181612499565b9250602084013561257181612499565b929592945050506040919091013590565b5f8060408385031215612593575f80fd5b823561259e81612499565b915060208301356125ae81612499565b809150509250929050565b5f602082840312156125c9575f80fd5b5035919050565b80151581146118f3575f80fd5b5f80604083850312156125ee575f80fd5b82356125f981612499565b915060208301356125ae816125d0565b5f805f805f8060c0878903121561261e575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215612658575f80fd5b81356124c8816125d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806126ac57607f821691505b6020821081036126ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a5f57610a5f6126d0565b5f60208284031215612707575f80fd5b5051919050565b5f6020828403121561271e575f80fd5b81516124c8816125d0565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b8082028115828204841417610a5f57610a5f6126d0565b80820180821115610a5f57610a5f6126d0565b5f826127b057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156127d9575f80fd5b81516124c881612499565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128325784516001600160a01b03168352938301939183019160010161280d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612865575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212209d908b70da0b62000f929e77ffc027ee1480db531706e4396ae95d395f4386e664736f6c63430008140033
Deployed Bytecode Sourcemap
7393:11573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14731:180;;;;;;;;;;;;;:::i;:::-;;8245:47;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8245:47:0;;;;;;;;16568:294;;;;;;;;;;-1:-1:-1;16568:294:0;;;;;:::i;:::-;;:::i;1830:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2744:169::-;;;;;;;;;;-1:-1:-1;2744:169:0;;;;;:::i;:::-;;:::i;:::-;;;1622:14:1;;1615:22;1597:41;;1585:2;1570:18;2744:169:0;1457:187:1;2151:108:0;;;;;;;;;;-1:-1:-1;2239:12:0;;2151:108;;2921:422;;;;;;;;;;-1:-1:-1;2921:422:0;;;;;:::i;:::-;;:::i;17828:310::-;;;;;;;;;;-1:-1:-1;17828:310:0;;;;;:::i;:::-;;:::i;17588:232::-;;;;;;;;;;-1:-1:-1;17588:232:0;;;;;:::i;:::-;;:::i;2050:93::-;;;;;;;;;;-1:-1:-1;2050:93:0;;2133:2;2830:36:1;;2818:2;2803:18;2050:93:0;2688:184:1;3351:215:0;;;;;;;;;;-1:-1:-1;3351:215:0;;;;;:::i;:::-;;:::i;17172:172::-;;;;;;;;;;-1:-1:-1;17172:172:0;;;;;:::i;:::-;;:::i;15394:550::-;;;;;;;;;;-1:-1:-1;15394:550:0;;;;;:::i;:::-;;:::i;15956:294::-;;;;;;;;;;-1:-1:-1;15956:294:0;;;;;:::i;:::-;;:::i;8609:75::-;;;;;;;;;;-1:-1:-1;8609:75:0;;;;-1:-1:-1;;;;;8609:75:0;;;;;;-1:-1:-1;;;;;4079:32:1;;;4061:51;;4049:2;4034:18;8609:75:0;3915:203:1;18398:510:0;;;;;;;;;;;;;:::i;7569:23::-;;;;;;;;;;-1:-1:-1;7569:23:0;;;;-1:-1:-1;;;7569:23:0;;;;;;2267:127;;;;;;;;;;-1:-1:-1;2267:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2368:18:0;2341:7;2368:18;;;;;;;;;;;;2267:127;6170:94;;;;;;;;;;;;;:::i;16261:299::-;;;;;;;;;;-1:-1:-1;16261:299:0;;;;;:::i;:::-;;:::i;8443:75::-;;;;;;;;;;-1:-1:-1;8443:75:0;;;;-1:-1:-1;;;;;8443:75:0;;;7599:20;;;;;;;;;;-1:-1:-1;7599:20:0;;;;-1:-1:-1;;;7599:20:0;;;;;;8978:46;;;;;;;;;;-1:-1:-1;8978:46:0;;;;;;;;;;;;;;;;;;;;;;;;;4410:25:1;;;4466:2;4451:18;;4444:34;;;;4494:18;;;4487:34;;;;4552:2;4537:18;;4530:34;4595:3;4580:19;;4573:35;4639:3;4624:19;;4617:35;4397:3;4382:19;8978:46:0;4123:535:1;14919:467:0;;;;;;;;;;-1:-1:-1;14919:467:0;;;;;:::i;:::-;;:::i;8322:48::-;;;;;;;;;;;;;;;;5947:87;;;;;;;;;;-1:-1:-1;6020:6:0;;-1:-1:-1;;;;;6020:6:0;5947:87;;1938:104;;;;;;;;;;;;;:::i;18146:244::-;;;;;;;;;;-1:-1:-1;18146:244:0;;;;;:::i;:::-;;:::i;14372:351::-;;;;;;;;;;-1:-1:-1;14372:351:0;;;;;:::i;:::-;;:::i;3574:377::-;;;;;;;;;;-1:-1:-1;3574:377:0;;;;;:::i;:::-;;:::i;7509:19::-;;;;;;;;;;-1:-1:-1;7509:19:0;;;;-1:-1:-1;;;;;7509:19:0;;;2402:175;;;;;;;;;;-1:-1:-1;2402:175:0;;;;;:::i;:::-;;:::i;8378:52::-;;;;;;;;;;;;;;;;8525:77;;;;;;;;;;-1:-1:-1;8525:77:0;;;;-1:-1:-1;;;;;8525:77:0;;;16870:294;;;;;;;;;;-1:-1:-1;16870:294:0;;;;;:::i;:::-;;:::i;9224:49::-;;;;;;;;;;-1:-1:-1;9224:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2585:151;;;;;;;;;;-1:-1:-1;2585:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2701:18:0;;;2674:7;2701:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2585:151;14197:167;;;;;;;;;;-1:-1:-1;14197:167:0;;;;;:::i;:::-;;:::i;17356:220::-;;;;;;;;;;-1:-1:-1;17356:220:0;;;;;:::i;:::-;;:::i;8691:75::-;;;;;;;;;;-1:-1:-1;8691:75:0;;;;-1:-1:-1;;;;;8691:75:0;;;6272:192;;;;;;;;;;-1:-1:-1;6272:192:0;;;;;:::i;:::-;;:::i;9031:47::-;;;;;;;;;;-1:-1:-1;9031:47:0;;;;;;;;;;;;;;;;;;;;;7481:21;;;;;;;;;;-1:-1:-1;7481:21:0;;;;-1:-1:-1;;;;;7481:21:0;;;14731:180;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;;;;;;;;;14787:8:::1;::::0;-1:-1:-1;;;14787:8:0;::::1;;;14786:9;14778:44;;;::::0;-1:-1:-1;;;14778:44:0;;5695:2:1;14778:44:0::1;::::0;::::1;5677:21:1::0;5734:2;5714:18;;;5707:30;-1:-1:-1;;;5753:18:1;;;5746:52;5815:18;;14778:44:0::1;5493:346:1::0;14778:44:0::1;14833:8;:15:::0;;-1:-1:-1;;;;14859:18:0;-1:-1:-1;;;14859:18:0;;;14893:10:::1;::::0;::::1;::::0;-1:-1:-1;;14893:10:0::1;14731:180::o:0;16568:294::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;16661:15:::1;::::0;-1:-1:-1;;;;;16661:15:0;;::::1;16680:5;16644:33:::0;;;:16:::1;:33;::::0;;;;:41;;-1:-1:-1;;16644:41:0::1;::::0;;16704:23;::::1;16696:75;;;::::0;-1:-1:-1;;;16696:75:0;;6046:2:1;16696:75:0::1;::::0;::::1;6028:21:1::0;6085:2;6065:18;;;6058:30;6124:34;6104:18;;;6097:62;-1:-1:-1;;;6175:18:1;;;6168:37;6222:19;;16696:75:0::1;5844:403:1::0;16696:75:0::1;16782:15;:27:::0;;-1:-1:-1;;;;;;16782:27:0::1;-1:-1:-1::0;;;;;16782:27:0;::::1;;::::0;;16825:24:::1;::::0;::::1;::::0;-1:-1:-1;;16825:24:0::1;16568:294:::0;:::o;1830:100::-;1884:13;1917:5;1910:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:100;:::o;2744:169::-;2827:4;2844:39;312:10;2867:7;2876:6;2844:8;:39::i;:::-;-1:-1:-1;2901:4:0;2744:169;;;;;:::o;2921:422::-;3027:4;3044:36;3054:6;3062:9;3073:6;3044:9;:36::i;:::-;-1:-1:-1;;;;;3120:19:0;;3093:24;3120:19;;;:11;:19;;;;;;;;312:10;3120:33;;;;;;;;3172:26;;;;3164:79;;;;-1:-1:-1;;;3164:79:0;;6839:2:1;3164:79:0;;;6821:21:1;6878:2;6858:18;;;6851:30;6917:34;6897:18;;;6890:62;-1:-1:-1;;;6968:18:1;;;6961:38;7016:19;;3164:79:0;6637:404:1;3164:79:0;3254:57;3263:6;312:10;3285:25;3304:6;3285:16;:25;:::i;:::-;3254:8;:57::i;:::-;-1:-1:-1;3331:4:0;;2921:422;-1:-1:-1;;;;2921:422:0:o;17828:310::-;6020:6;;17914:10;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;17964:39:::1;::::0;-1:-1:-1;;;17964:39:0;;17997:4:::1;17964:39;::::0;::::1;4061:51:1::0;17937:24:0::1;::::0;-1:-1:-1;;;;;17964:24:0;::::1;::::0;::::1;::::0;4034:18:1;;17964:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18022:46;::::0;-1:-1:-1;;;18022:46:0;;-1:-1:-1;;;;;7692:32:1;;;18022:46:0::1;::::0;::::1;7674:51:1::0;7741:18;;;7734:34;;;17937:66:0;;-1:-1:-1;18022:23:0;;::::1;::::0;::::1;::::0;7647:18:1;;18022:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18084;::::0;;-1:-1:-1;;;;;7692:32:1;;7674:51;;7756:2;7741:18;;7734:34;;;18014:54:0;;-1:-1:-1;18084:46:0::1;::::0;7647:18:1;18084:46:0::1;;;;;;;17926:212;17828:310:::0;;;;:::o;17588:232::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;17679:7:::1;17669:6;:17;;17661:65;;;;-1:-1:-1::0;;;17661:65:0::1;;;;;;;:::i;:::-;17755:17;:6:::0;17765::::1;17755:17;:::i;:::-;17737:15;:35:::0;17788:24:::1;::::0;::::1;::::0;;;::::1;17588:232:::0;:::o;3351:215::-;312:10;3439:4;3488:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3488:34:0;;;;;;;;;;3439:4;;3456:80;;3479:7;;3488:47;;3525:10;;3488:47;:::i;17172:172::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17261:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;:34;;-1:-1:-1;;17261:34:0::1;::::0;::::1;;;::::0;;17311:25;::::1;::::0;17261:26;17311:25:::1;17172:172:::0;;:::o;15394:550::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;15574:74:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;15562:9:::1;:86:::0;;;;;;;;;;;;;;;;;;;;;;;15642:5;15630:10;15618;15604:12;15672:23:::1;15592:10:::0;15580;15672:23:::1;:::i;:::-;:38;;;;:::i;:::-;:51;;;;:::i;:::-;:64;;;;:::i;:::-;:72;;;;:::i;:::-;15659:10;:85:::0;;;15777:3:::1;-1:-1:-1::0;15763:17:0::1;15755:70;;;::::0;-1:-1:-1;;;15755:70:0;;8938:2:1;15755:70:0::1;::::0;::::1;8920:21:1::0;8977:2;8957:18;;;8950:30;9016:34;8996:18;;;8989:62;-1:-1:-1;;;9067:18:1;;;9060:39;9116:19;;15755:70:0::1;8736:405:1::0;15755:70:0::1;15858:2;15844:10;;:16;;15836:66;;;::::0;-1:-1:-1;;;15836:66:0;;9348:2:1;15836:66:0::1;::::0;::::1;9330:21:1::0;9387:2;9367:18;;;9360:30;9426:34;9406:18;;;9399:62;-1:-1:-1;;;9477:18:1;;;9470:36;9523:19;;15836:66:0::1;9146:402:1::0;15836:66:0::1;15918:18;::::0;::::1;::::0;;;::::1;15394:550:::0;;;;;;:::o;15956:294::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;16049:15:::1;::::0;-1:-1:-1;;;;;16049:15:0;;::::1;16068:5;16032:33:::0;;;:16:::1;:33;::::0;;;;:41;;-1:-1:-1;;16032:41:0::1;::::0;;16092:23;::::1;16084:75;;;::::0;-1:-1:-1;;;16084:75:0;;9755:2:1;16084:75:0::1;::::0;::::1;9737:21:1::0;9794:2;9774:18;;;9767:30;9833:34;9813:18;;;9806:62;-1:-1:-1;;;9884:18:1;;;9877:37;9931:19;;16084:75:0::1;9553:403:1::0;16084:75:0::1;16170:15;:27:::0;;-1:-1:-1;;;;;;16170:27:0::1;-1:-1:-1::0;;;;;16170:27:0;::::1;;::::0;;16213:24:::1;::::0;::::1;::::0;-1:-1:-1;;16213:24:0::1;15956:294:::0;:::o;18398:510::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;7665:8:::1;:15:::0;;-1:-1:-1;;;;7665:15:0::1;-1:-1:-1::0;;;7665:15:0::1;::::0;;18457:66:::2;18488:24;18506:4;-1:-1:-1::0;;;;;2368:18:0;2341:7;2368:18;;;;;;;;;;;;2267:127;18488:24:::2;18457:16;:66::i;:::-;18557:21;18536:18;18612:14;18625:1;18557:21:::0;18612:14:::2;:::i;:::-;18589:37:::0;-1:-1:-1;18637:22:0::2;18662:25;18589:37:::0;18662:10;:25:::2;:::i;:::-;18745:15;::::0;18737:54:::2;::::0;18637:50;;-1:-1:-1;18700:12:0::2;::::0;-1:-1:-1;;;;;18745:15:0;;::::2;::::0;18774:12;;18700;18737:54;18700:12;18737:54;18774:12;18745:15;18737:54:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18826:17:0::2;::::0;18818:82:::2;::::0;18723:68;;-1:-1:-1;;;;;;18826:17:0::2;::::0;18857:14;;18818:82:::2;::::0;;;18857:14;18826:17;18818:82:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7703:8:0::1;:16:::0;;-1:-1:-1;;;;7703:16:0::1;::::0;;-1:-1:-1;;;;;18398:510:0:o;6170:94::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;6235:21:::1;6253:1;6235:9;:21::i;:::-;6170:94::o:0;16261:299::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;16356:17:::1;::::0;-1:-1:-1;;;;;16356:17:0;;::::1;16377:5;16339:35:::0;;;:16:::1;:35;::::0;;;;:43;;-1:-1:-1;;16339:43:0::1;::::0;;16401:23;::::1;16393:77;;;::::0;-1:-1:-1;;;16393:77:0;;10595:2:1;16393:77:0::1;::::0;::::1;10577:21:1::0;10634:2;10614:18;;;10607:30;10673:34;10653:18;;;10646:62;-1:-1:-1;;;10724:18:1;;;10717:39;10773:19;;16393:77:0::1;10393:405:1::0;16393:77:0::1;16481:17;:29:::0;;-1:-1:-1;;;;;;16481:29:0::1;-1:-1:-1::0;;;;;16481:29:0;::::1;;::::0;;16526:26:::1;::::0;::::1;::::0;-1:-1:-1;;16526:26:0::1;16261:299:::0;:::o;14919:467::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;15097:74:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;15086:8:::1;:85:::0;;;;;;;;;;;;;;;;;;;;;;;15165:5;15153:10;15141;15127:12;15194:23:::1;15115:10:::0;15103;15194:23:::1;:::i;:::-;:38;;;;:::i;:::-;:51;;;;:::i;:::-;:64;;;;:::i;:::-;:72;;;;:::i;:::-;15182:9;:84:::0;;;15298:3:::1;-1:-1:-1::0;15285:16:0::1;15277:68;;;::::0;-1:-1:-1;;;15277:68:0;;11005:2:1;15277:68:0::1;::::0;::::1;10987:21:1::0;11044:2;11024:18;;;11017:30;11083:34;11063:18;;;11056:62;-1:-1:-1;;;11134:18:1;;;11127:38;11182:19;;15277:68:0::1;10803:404:1::0;15277:68:0::1;15361:17;::::0;::::1;::::0;;;::::1;14919:467:::0;;;;;;:::o;1938:104::-;1994:13;2027:7;2020:14;;;;;:::i;18146:244::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;18248:21:::1;18288:10;18280:66;18342:3;18310:28;18322:16:::0;18248:21;18310:28:::1;:::i;:::-;18309:36;;;;:::i;:::-;18280:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18362:20:0::1;::::0;::::1;::::0;;;::::1;18217:173;18146:244:::0;:::o;14372:351::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;14470:5:::1;14456:10;:19;;14448:85;;;::::0;-1:-1:-1;;;14448:85:0;;11414:2:1;14448:85:0::1;::::0;::::1;11396:21:1::0;11453:2;11433:18;;;11426:30;11492:34;11472:18;;;11465:62;-1:-1:-1;;;11543:18:1;;;11536:51;11604:19;;14448:85:0::1;11212:417:1::0;14448:85:0::1;14566:8;14552:10;:22;;14544:85;;;::::0;-1:-1:-1;;;14544:85:0;;11836:2:1;14544:85:0::1;::::0;::::1;11818:21:1::0;11875:2;11855:18;;;11848:30;11914:34;11894:18;;;11887:62;-1:-1:-1;;;11965:18:1;;;11958:48;12023:19;;14544:85:0::1;11634:414:1::0;14544:85:0::1;14656:21;:10:::0;14670:6:::1;14656:21;:::i;:::-;14640:13;:37:::0;14693:22:::1;::::0;::::1;::::0;;;::::1;14372:351:::0;:::o;3574:377::-;312:10;3667:4;3711:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3711:34:0;;;;;;;;;;3764:35;;;;3756:85;;;;-1:-1:-1;;;3756:85:0;;12255:2:1;3756:85:0;;;12237:21:1;12294:2;12274:18;;;12267:30;12333:34;12313:18;;;12306:62;-1:-1:-1;;;12384:18:1;;;12377:35;12429:19;;3756:85:0;12053:401:1;3756:85:0;3852:67;312:10;3875:7;3884:34;3903:15;3884:16;:34;:::i;3852:67::-;-1:-1:-1;3939:4:0;;3574:377;-1:-1:-1;;;3574:377:0:o;2402:175::-;2488:4;2505:42;312:10;2529:9;2540:6;2505:9;:42::i;16870:294::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;16963:15:::1;::::0;-1:-1:-1;;;;;16963:15:0;;::::1;16982:5;16946:33:::0;;;:16:::1;:33;::::0;;;;:41;;-1:-1:-1;;16946:41:0::1;::::0;;17006:23;::::1;16998:75;;;::::0;-1:-1:-1;;;16998:75:0;;12661:2:1;16998:75:0::1;::::0;::::1;12643:21:1::0;12700:2;12680:18;;;12673:30;12739:34;12719:18;;;12712:62;-1:-1:-1;;;12790:18:1;;;12783:37;12837:19;;16998:75:0::1;12459:403:1::0;16998:75:0::1;17084:15;:27:::0;;-1:-1:-1;;;;;;17084:27:0::1;-1:-1:-1::0;;;;;17084:27:0;::::1;;::::0;;17127:24:::1;::::0;::::1;::::0;-1:-1:-1;;17127:24:0::1;16870:294:::0;:::o;14197:167::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;14308:11:::1;:19:::0;;-1:-1:-1;;;;14308:19:0::1;-1:-1:-1::0;;;14308:19:0;::::1;;;;::::0;;14343:13:::1;::::0;::::1;::::0;-1:-1:-1;;14343:13:0::1;14197:167:::0;:::o;17356:220::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;17443:7:::1;17433:6;:17;;17425:65;;;;-1:-1:-1::0;;;17425:65:0::1;;;;;;;:::i;:::-;17515:17;:6:::0;17525::::1;17515:17;:::i;:::-;17501:11;:31:::0;17548:20:::1;::::0;::::1;::::0;;;::::1;17356:220:::0;:::o;6272:192::-;6020:6;;-1:-1:-1;;;;;6020:6:0;312:10;6082:23;6074:68;;;;-1:-1:-1;;;6074:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6361:22:0;::::1;6353:73;;;::::0;-1:-1:-1;;;6353:73:0;;13069:2:1;6353:73:0::1;::::0;::::1;13051:21:1::0;13108:2;13088:18;;;13081:30;13147:34;13127:18;;;13120:62;-1:-1:-1;;;13198:18:1;;;13191:36;13244:19;;6353:73:0::1;12867:402:1::0;6353:73:0::1;6437:19;6447:8;6437:9;:19::i;:::-;6272:192:::0;:::o;4917:346::-;-1:-1:-1;;;;;5019:19:0;;5011:68;;;;-1:-1:-1;;;5011:68:0;;13476:2:1;5011:68:0;;;13458:21:1;13515:2;13495:18;;;13488:30;13554:34;13534:18;;;13527:62;-1:-1:-1;;;13605:18:1;;;13598:34;13649:19;;5011:68:0;13274:400:1;5011:68:0;-1:-1:-1;;;;;5098:21:0;;5090:68;;;;-1:-1:-1;;;5090:68:0;;13881:2:1;5090:68:0;;;13863:21:1;13920:2;13900:18;;;13893:30;13959:34;13939:18;;;13932:62;-1:-1:-1;;;14010:18:1;;;14003:32;14052:19;;5090:68:0;13679:398:1;5090:68:0;-1:-1:-1;;;;;5171:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5223:32;;160:25:1;;;5223:32:0;;133:18:1;5223:32:0;;;;;;;4917:346;;;:::o;10098:1379::-;10214:1;10205:6;:10;10197:64;;;;-1:-1:-1;;;10197:64:0;;14284:2:1;10197:64:0;;;14266:21:1;14323:2;14303:18;;;14296:30;14362:34;14342:18;;;14335:62;-1:-1:-1;;;14413:18:1;;;14406:39;14462:19;;10197:64:0;14082:405:1;10197:64:0;-1:-1:-1;;;;;10304:24:0;;;;;;:16;:24;;;;;;;;10303:25;:57;;;;-1:-1:-1;;;;;;10333:27:0;;;;;;:16;:27;;;;;;;;10332:28;10303:57;:70;;;;-1:-1:-1;10365:8:0;;-1:-1:-1;;;10365:8:0;;;;10364:9;10303:70;10300:386;;;10397:8;;-1:-1:-1;;;10397:8:0;;;;10389:43;;;;-1:-1:-1;;;10389:43:0;;14694:2:1;10389:43:0;;;14676:21:1;14733:2;14713:18;;;14706:30;-1:-1:-1;;;14752:18:1;;;14745:52;14814:18;;10389:43:0;14492:346:1;10389:43:0;10465:11;;10455:6;:21;;10447:63;;;;-1:-1:-1;;;10447:63:0;;15045:2:1;10447:63:0;;;15027:21:1;15084:2;15064:18;;;15057:30;15123:31;15103:18;;;15096:59;15172:18;;10447:63:0;14843:353:1;10447:63:0;10541:4;;-1:-1:-1;;;;;10528:17:0;;;10541:4;;10528:17;10525:150;;10606:15;;10596:6;10573:20;10583:9;-1:-1:-1;;;;;2368:18:0;2341:7;2368:18;;;;;;;;;;;;2267:127;10573:20;:29;;;;:::i;:::-;:48;;10565:94;;;;-1:-1:-1;;;10565:94:0;;15403:2:1;10565:94:0;;;15385:21:1;15442:2;15422:18;;;15415:30;15481:34;15461:18;;;15454:62;-1:-1:-1;;;15532:18:1;;;15525:31;15573:19;;10565:94:0;15201:397:1;10565:94:0;10736:8;;10698:11;;-1:-1:-1;;;10736:8:0;;;;;:36;;-1:-1:-1;;;;;;10748:24:0;;;;;;:16;:24;;;;;;;;10736:36;:67;;;-1:-1:-1;;;;;;10776:27:0;;;;;;:16;:27;;;;;;;;10736:67;10732:284;;;-1:-1:-1;10811:1:0;10732:284;;;10869:4;;-1:-1:-1;;;;;10869:4:0;;;10856:17;;;;10853:151;;10903:4;10890:10;;10881:6;:19;;;;:::i;:::-;:26;;;;:::i;:::-;10875:32;;10853:151;;;10940:4;;-1:-1:-1;;;;;10940:4:0;;;10930:14;;;;10927:77;;10973:4;10961:9;;10952:6;:18;;;;:::i;10927:77::-;-1:-1:-1;11003:1:0;10927:77;11040:11;;-1:-1:-1;;;11040:11:0;;;;:24;;;;-1:-1:-1;11056:8:0;;-1:-1:-1;;;11056:8:0;;;;11055:9;11040:24;:42;;;;-1:-1:-1;11078:4:0;;-1:-1:-1;;;;;11068:14:0;;;11078:4;;11068:14;;11040:42;:53;;;;;11092:1;11086:3;:7;11040:53;11036:72;;;11095:13;:11;:13::i;:::-;11121:48;11137:6;11145:9;11156:12;11165:3;11156:6;:12;:::i;:::-;11121:15;:48::i;:::-;11183:7;;11180:55;;11192:43;11208:6;11224:4;11231:3;11192:15;:43::i;:::-;11325:10;;11308:14;;11248:21;;11325:10;11302:20;;:3;:20;:::i;:::-;:33;;;;:::i;:::-;11286:49;-1:-1:-1;11351:17:0;;11348:120;;11390:62;11414:4;11429:6;11438:13;11390:15;:62::i;:::-;10186:1291;;10098:1379;;;:::o;13282:398::-;13372:16;;;13386:1;13372:16;;;;;;;;13348:21;;13372:16;;;;;;;;;;-1:-1:-1;13372:16:0;13348:40;;13417:4;13399;13404:1;13399:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13399:23:0;;;:7;;;;;;;;;;:23;;;;13443:6;;:13;;;-1:-1:-1;;;13443:13:0;;;;:6;;;;;:11;;:13;;;;;13399:7;;13443:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13433:4;13438:1;13433:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13433:23:0;;;:7;;;;;;;;;:23;13501:6;;13469:53;;13486:4;;13501:6;13510:11;13469:8;:53::i;:::-;13561:6;;:111;;-1:-1:-1;;;13561:111:0;;-1:-1:-1;;;;;13561:6:0;;;;:57;;:111;;13619:11;;13561:6;;13635:4;;13649;;13656:15;;13561:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13337:343;13282:398;:::o;6472:173::-;6547:6;;;-1:-1:-1;;;;;6564:17:0;;;-1:-1:-1;;;;;;6564:17:0;;;;;;;6597:40;;6547:6;;;6564:17;6547:6;;6597:40;;6528:16;;6597:40;6517:128;6472:173;:::o;11483:1791::-;9320:8;;-1:-1:-1;;;9320:8:0;;;;9315:104;;9345:8;:15;;-1:-1:-1;;;;9345:15:0;-1:-1:-1;;;9345:15:0;;;11576:4:::1;-1:-1:-1::0;2368:18:0;;;;;;;;;;;11532:50:::1;;11618:13;;11599:15;:32;11595:1672;;11650:19;11672:10;;11685:1;11672:14;;;;:::i;:::-;11650:36;;11701:32;11776:11;11754:9;:19;;;11736:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;11701:86:::0;-1:-1:-1;11802:14:0::1;11819:42;11701:86:::0;11819:15;:42:::1;:::i;:::-;11802:59:::0;-1:-1:-1;11907:21:0::1;11949:24;11802:59:::0;11949:16:::1;:24::i;:::-;11994:20;12017:38;12041:14:::0;12017:21:::1;:38;:::i;:::-;12121:19:::0;;11994:61;;-1:-1:-1;12070:19:0::1;::::0;12107:33:::1;::::0;:11;:33:::1;:::i;:::-;12091:50;::::0;:12;:50:::1;:::i;:::-;12202:19:::0;;12070:71;;-1:-1:-1;12156:29:0::1;::::0;12188:33:::1;::::0;12070:71;12188:33:::1;:::i;:::-;12156:65;;12272:1;12245:24;:28;:57;;;;;12301:1;12277:21;:25;12245:57;12242:198;;;12363:61;12376:24;12402:21;12363:12;:61::i;:::-;12501:9;:19:::0;12460:20:::1;::::0;12483:15:::1;:11:::0;12497:1:::1;12483:15;:::i;:::-;:37;;;;:::i;:::-;12460:60:::0;-1:-1:-1;12538:16:0;;12535:103:::1;;12582:15;::::0;12574:48:::1;::::0;-1:-1:-1;;;;;12582:15:0::1;12609:12:::0;12574:34:::1;:48::i;:::-;12709:21:::0;;12666:22:::1;::::0;12691:15:::1;:11:::0;12709:21:::1;12691:15;:::i;:::-;:39;;;;:::i;:::-;12666:64:::0;-1:-1:-1;12748:18:0;;12745:109:::1;;12794:17;::::0;12786:52:::1;::::0;-1:-1:-1;;;;;12794:17:0::1;12823:14:::0;12786:36:::1;:52::i;:::-;12909:19:::0;;12868:20:::1;::::0;12891:15:::1;:11:::0;12905:1:::1;12891:15;:::i;:::-;:37;;;;:::i;:::-;12868:60:::0;-1:-1:-1;12946:16:0;;12943:103:::1;;12990:15;::::0;12982:48:::1;::::0;-1:-1:-1;;;;;12990:15:0::1;13017:12:::0;12982:34:::1;:48::i;:::-;13115:19:::0;;13074:20:::1;::::0;13097:15:::1;:11:::0;13111:1:::1;13097:15;:::i;:::-;:37;;;;:::i;:::-;13074:60:::0;-1:-1:-1;13152:18:0;;13149:105:::1;;13198:15;::::0;13190:48:::1;::::0;-1:-1:-1;;;;;13198:15:0::1;13225:12:::0;13190:34:::1;:48::i;:::-;11633:1634;;;;;;;;;;;11595:1672;-1:-1:-1::0;9391:8:0;:16;;-1:-1:-1;;;;9391:16:0;;;11483:1791::o;3959:604::-;-1:-1:-1;;;;;4065:20:0;;4057:70;;;;-1:-1:-1;;;4057:70:0;;17310:2:1;4057:70:0;;;17292:21:1;17349:2;17329:18;;;17322:30;17388:34;17368:18;;;17361:62;-1:-1:-1;;;17439:18:1;;;17432:35;17484:19;;4057:70:0;17108:401:1;4057:70:0;-1:-1:-1;;;;;4146:23:0;;4138:71;;;;-1:-1:-1;;;4138:71:0;;17716:2:1;4138:71:0;;;17698:21:1;17755:2;17735:18;;;17728:30;17794:34;17774:18;;;17767:62;-1:-1:-1;;;17845:18:1;;;17838:33;17888:19;;4138:71:0;17514:399:1;4138:71:0;-1:-1:-1;;;;;4306:17:0;;4282:21;4306:17;;;;;;;;;;;4342:23;;;;4334:74;;;;-1:-1:-1;;;4334:74:0;;18120:2:1;4334:74:0;;;18102:21:1;18159:2;18139:18;;;18132:30;18198:34;18178:18;;;18171:62;-1:-1:-1;;;18249:18:1;;;18242:36;18295:19;;4334:74:0;17918:402:1;4334:74:0;4439:22;4455:6;4439:13;:22;:::i;:::-;-1:-1:-1;;;;;4419:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4472:20;;;;;;;;:30;;4496:6;;4419:9;4472:30;;4496:6;;4472:30;:::i;:::-;;;;;;;;4537:9;-1:-1:-1;;;;;4520:35:0;4529:6;-1:-1:-1;;;;;4520:35:0;;4548:6;4520:35;;;;160:25:1;;148:2;133:18;;14:177;4520:35:0;;;;;;;;4046:517;3959:604;;;:::o;13688:503::-;13868:6;;13836:53;;13853:4;;-1:-1:-1;;;;;13868:6:0;13877:11;13836:8;:53::i;:::-;13932:6;;:251;;-1:-1:-1;;;13932:251:0;;13995:4;13932:251;;;18666:34:1;18716:18;;;18709:34;;;13932:6:0;18759:18:1;;;18752:34;;;18802:18;;;18795:34;14135:6:0;18845:19:1;;;18838:44;14157:15:0;18898:19:1;;;18891:35;-1:-1:-1;;;;;13932:6:0;;;;:22;;13962:9;;18600:19:1;;13932:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5392:317::-;5507:6;5482:21;:31;;5474:73;;;;-1:-1:-1;;;5474:73:0;;19450:2:1;5474:73:0;;;19432:21:1;19489:2;19469:18;;;19462:30;19528:31;19508:18;;;19501:59;19577:18;;5474:73:0;19248:353:1;5474:73:0;5561:12;5579:9;-1:-1:-1;;;;;5579:14:0;5601:6;5579:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5560:52;;;5631:7;5623:78;;;;-1:-1:-1;;;5623:78:0;;19808:2:1;5623:78:0;;;19790:21:1;19847:2;19827:18;;;19820:30;19886:34;19866:18;;;19859:62;19957:28;19937:18;;;19930:56;20003:19;;5623:78:0;19606:422:1;5623:78:0;5463:246;5392:317;;:::o;196:131:1:-;-1:-1:-1;;;;;271:31:1;;261:42;;251:70;;317:1;314;307:12;332:247;391:6;444:2;432:9;423:7;419:23;415:32;412:52;;;460:1;457;450:12;412:52;499:9;486:23;518:31;543:5;518:31;:::i;:::-;568:5;332:247;-1:-1:-1;;;332:247:1:o;584:548::-;696:4;725:2;754;743:9;736:21;786:6;780:13;829:6;824:2;813:9;809:18;802:34;854:1;864:140;878:6;875:1;872:13;864:140;;;973:14;;;969:23;;963:30;939:17;;;958:2;935:26;928:66;893:10;;864:140;;;868:3;1053:1;1048:2;1039:6;1028:9;1024:22;1020:31;1013:42;1123:2;1116;1112:7;1107:2;1099:6;1095:15;1091:29;1080:9;1076:45;1072:54;1064:62;;;;584:548;;;;:::o;1137:315::-;1205:6;1213;1266:2;1254:9;1245:7;1241:23;1237:32;1234:52;;;1282:1;1279;1272:12;1234:52;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;1442:2;1427:18;;;;1414:32;;-1:-1:-1;;;1137:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2110:388::-;2178:6;2186;2239:2;2227:9;2218:7;2214:23;2210:32;2207:52;;;2255:1;2252;2245:12;2207:52;2294:9;2281:23;2313:31;2338:5;2313:31;:::i;:::-;2363:5;-1:-1:-1;2420:2:1;2405:18;;2392:32;2433:33;2392:32;2433:33;:::i;:::-;2485:7;2475:17;;;2110:388;;;;;:::o;2503:180::-;2562:6;2615:2;2603:9;2594:7;2590:23;2586:32;2583:52;;;2631:1;2628;2621:12;2583:52;-1:-1:-1;2654:23:1;;2503:180;-1:-1:-1;2503:180:1:o;2877:118::-;2963:5;2956:13;2949:21;2942:5;2939:32;2929:60;;2985:1;2982;2975:12;3000:382;3065:6;3073;3126:2;3114:9;3105:7;3101:23;3097:32;3094:52;;;3142:1;3139;3132:12;3094:52;3181:9;3168:23;3200:31;3225:5;3200:31;:::i;:::-;3250:5;-1:-1:-1;3307:2:1;3292:18;;3279:32;3320:30;3279:32;3320:30;:::i;3387:523::-;3491:6;3499;3507;3515;3523;3531;3584:3;3572:9;3563:7;3559:23;3555:33;3552:53;;;3601:1;3598;3591:12;3552:53;-1:-1:-1;;3624:23:1;;;3694:2;3679:18;;3666:32;;-1:-1:-1;3745:2:1;3730:18;;3717:32;;3796:2;3781:18;;3768:32;;-1:-1:-1;3847:3:1;3832:19;;3819:33;;-1:-1:-1;3899:3:1;3884:19;3871:33;;-1:-1:-1;3387:523:1;-1:-1:-1;3387:523:1:o;4663:241::-;4719:6;4772:2;4760:9;4751:7;4747:23;4743:32;4740:52;;;4788:1;4785;4778:12;4740:52;4827:9;4814:23;4846:28;4868:5;4846:28;:::i;5132:356::-;5334:2;5316:21;;;5353:18;;;5346:30;5412:34;5407:2;5392:18;;5385:62;5479:2;5464:18;;5132:356::o;6252:380::-;6331:1;6327:12;;;;6374;;;6395:61;;6449:4;6441:6;6437:17;6427:27;;6395:61;6502:2;6494:6;6491:14;6471:18;6468:38;6465:161;;6548:10;6543:3;6539:20;6536:1;6529:31;6583:4;6580:1;6573:15;6611:4;6608:1;6601:15;6465:161;;6252:380;;;:::o;7046:127::-;7107:10;7102:3;7098:20;7095:1;7088:31;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7178:128;7245:9;;;7266:11;;;7263:37;;;7280:18;;:::i;7311:184::-;7381:6;7434:2;7422:9;7413:7;7409:23;7405:32;7402:52;;;7450:1;7447;7440:12;7402:52;-1:-1:-1;7473:16:1;;7311:184;-1:-1:-1;7311:184:1:o;7779:245::-;7846:6;7899:2;7887:9;7878:7;7874:23;7870:32;7867:52;;;7915:1;7912;7905:12;7867:52;7947:9;7941:16;7966:28;7988:5;7966:28;:::i;8029:399::-;8231:2;8213:21;;;8270:2;8250:18;;;8243:30;8309:34;8304:2;8289:18;;8282:62;-1:-1:-1;;;8375:2:1;8360:18;;8353:33;8418:3;8403:19;;8029:399::o;8433:168::-;8506:9;;;8537;;8554:15;;;8548:22;;8534:37;8524:71;;8575:18;;:::i;8606:125::-;8671:9;;;8692:10;;;8689:36;;;8705:18;;:::i;9961:217::-;10001:1;10027;10017:132;;10071:10;10066:3;10062:20;10059:1;10052:31;10106:4;10103:1;10096:15;10134:4;10131:1;10124:15;10017:132;-1:-1:-1;10163:9:1;;9961:217::o;15735:127::-;15796:10;15791:3;15787:20;15784:1;15777:31;15827:4;15824:1;15817:15;15851:4;15848:1;15841:15;15867:251;15937:6;15990:2;15978:9;15969:7;15965:23;15961:32;15958:52;;;16006:1;16003;15996:12;15958:52;16038:9;16032:16;16057:31;16082:5;16057:31;:::i;16123:980::-;16385:4;16433:3;16422:9;16418:19;16464:6;16453:9;16446:25;16490:2;16528:6;16523:2;16512:9;16508:18;16501:34;16571:3;16566:2;16555:9;16551:18;16544:31;16595:6;16630;16624:13;16661:6;16653;16646:22;16699:3;16688:9;16684:19;16677:26;;16738:2;16730:6;16726:15;16712:29;;16759:1;16769:195;16783:6;16780:1;16777:13;16769:195;;;16848:13;;-1:-1:-1;;;;;16844:39:1;16832:52;;16939:15;;;;16904:12;;;;16880:1;16798:9;16769:195;;;-1:-1:-1;;;;;;;17020:32:1;;;;17015:2;17000:18;;16993:60;-1:-1:-1;;;17084:3:1;17069:19;17062:35;16981:3;16123:980;-1:-1:-1;;;16123:980:1:o;18937:306::-;19025:6;19033;19041;19094:2;19082:9;19073:7;19069:23;19065:32;19062:52;;;19110:1;19107;19100:12;19062:52;19139:9;19133:16;19123:26;;19189:2;19178:9;19174:18;19168:25;19158:35;;19233:2;19222:9;19218:18;19212:25;19202:35;;18937:306;;;;;:::o
Swarm Source
ipfs://9d908b70da0b62000f929e77ffc027ee1480db531706e4396ae95d395f4386e6
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.