Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000,000,000,000,000 CASACOIN
Holders
102
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Balance
9,584,329,848,386,409,339,958,722 CASACOINValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CasaCoin
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-04 */ /* ***https://www.casa-coin.com*** Overview of Casa Coin Casa Coin is a digital token designed to empower users with complete control over their cryptocurrency holdings, emphasizing secure and seamless self-custody. Casa's platform provides a suite of security solutions for managing and safeguarding digital assets like Bitcoin and Ethereum. By combining cutting-edge technology with an intuitive user experience, Casa Coin enables users to transition from centralized exchanges to decentralized, user-controlled environments. Vision and Mission Our vision at Casa is to democratize access to secure crypto custody. We believe that individuals should have complete control over their digital wealth, free from the vulnerabilities posed by centralized exchanges or third-party custodians. Our mission is to provide peace of mind and protection through state-of-the-art multi-key technology that adapts to users' needs, ensuring they can securely manage their digital assets at every stage of their investment journey. The Importance of Securing Digital Wealth The rise of cryptocurrencies has introduced new financial opportunities, but it has also increased the importance of securing digital assets against theft, loss, and mismanagement. Many investors have fallen victim to hacking incidents, with billions of dollars lost on insecure or mismanaged exchanges. Casa Coin is committed to providing a robust solution that minimizes risks, offering users a secure, non-custodial platform that protects their holdings, prevents unauthorized access, and helps them recover in the event of key loss. The Case for Self-Custody Why Self-Custody Matters Self-custody is a crucial aspect of cryptocurrency ownership. Unlike traditional financial systems where intermediaries such as banks or brokers manage assets, cryptocurrencies allow individuals to take full ownership of their assets. This ownership comes with both freedom and responsibility. By using Casa Coin, users ensure they are the only ones with control over their assets, eliminating the risks associated with centralized exchanges, such as hacking, insolvency, or mismanagement of funds. Risks of Centralized Exchanges Centralized exchanges, while convenient for trading, expose users to various security risks. These platforms often control users' private keys, meaning users do not have full ownership of their assets. Additionally, exchanges are prime targets for cyberattacks, and there have been numerous instances where exchanges have been hacked, resulting in significant financial losses. Moreover, centralized exchanges are subject to regulations and government intervention, which may lead to frozen accounts or restrictions on withdrawals. Casa Coin’s self-custody approach mitigates these risks by putting full control back in the hands of the user. Benefits of Casa’s Non-Custodial Solution Casa offers a non-custodial solution, meaning users hold their private keys and, by extension, their digital assets. This approach ensures that no third party can access or control the funds, providing superior security compared to centralized alternatives. Casa's multi-key architecture spreads risk by distributing control across multiple physical and digital keys, making it harder for a single point of failure to compromise the assets. With Casa, users have complete autonomy and flexibility over their investments, enjoying the benefits of decentralization without sacrificing security. Casa Coin Security Model Multi-Key Security Architecture Casa’s security model is built on a multi-key architecture, where multiple private keys are used to safeguard digital assets. Unlike a single-key system, which can be vulnerable to theft, loss, or failure, multi-key security ensures that no single key compromise can result in asset loss. These keys can be stored in various locations, such as physical hardware devices, mobile devices, or cloud storage, reducing the likelihood of a single point of attack. Comparison with Single-Key Security Traditional single-key wallets store all control of an asset in one place, meaning that if this key is compromised, the asset is vulnerable. Casa’s multi-key system vastly improves security by distributing access across several keys. For example, a user may have three keys: one stored on a mobile device, one on a hardware wallet, and another with Casa's backup service. To move funds, two out of the three keys might be required, which minimizes the risk of loss due to a single key being compromised or lost. This multi-key approach offers significantly better protection against hacks, loss, and human error. Physical and Digital Key Integration Casa combines both physical and digital elements to ensure maximum security. Physical keys are typically stored on hardware devices, offering strong protection against online attacks. Digital keys, on the other hand, allow for ease of access when performing everyday transactions. This hybrid approach ensures that users can quickly access their funds when needed, while maintaining the highest level of protection from unauthorized access or potential failures. Reducing Single Points of Failure The Casa multi-key system is designed to eliminate single points of failure. Even if a physical or digital key is lost, users retain control of their assets through other keys in the system. This model ensures that a compromised or stolen key will not allow unauthorized access, as multiple keys are needed to sign transactions. Furthermore, Casa offers an emergency key recovery service, ensuring that users can replace lost keys without compromising security. This architecture provides a robust layer of protection for investors, ensuring their assets are secure under all circumstances. */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer( address indexed from, address indexed to, uint256 value ); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; uint256 public _maxlSupply; 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 to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer cccasdaaa from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB); function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountOut); function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract CasaCoin is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public marketingWallet; address public developmentWallet; address public liquidityWallet; address public constant deadAddress = address(0xdead); bool public tradingEnabled; bool public swapEnabled; bool private _swapping; uint256 public swapTokensAtAmount; uint256 public allBuyFees; uint256 private _firstbuy; uint256 private _secondbuy; uint256 private _allbuy; uint256 public firstsell; uint256 private secondsell; uint256 private _sellmarketing; uint256 private _firstsellp; uint256 private _tokenfaco; uint256 private _tokensForDevelopment; uint256 private _tokenFor; uint256 private _tokensellall; mapping (address => bool) private _excludedAddress; mapping(address => bool) private _iscoin; mapping(address => bool) private _iscoin2; event Exclude(address indexed account, bool isExcluded); event Excluded(address indexed account, bool isExcluded); event Scoin1(address indexed pair, bool indexed value); event Scoin2(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("CasaCoin", "CASACOIN") { uint256 totalSupply = 1000000000 * (10 ** 18); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), type(uint256).max); _firstbuy = 0; _secondbuy = 0; _allbuy = 0; allBuyFees = _firstbuy + _secondbuy + _allbuy; secondsell = 0; _sellmarketing = 0; _firstsellp = 0; firstsell = secondsell + _sellmarketing + _firstsellp; _tokensellall = firstsell; _excludedAddress[owner()] = true; _excludedAddress[address(this)] = true; _excludedAddress[deadAddress] = true; _mint(owner(), totalSupply); } receive() external payable {} function Starttrade() public onlyOwner { require(!tradingEnabled, "Start trade !"); tradingEnabled = true; swapEnabled = true; } function Configwallet(address[] memory token1, bool value) public onlyOwner { for (uint256 i = 0; i < token1.length; i++) { address pair = token1[i]; require(pair != uniswapV2Pair, "The pair not trade"); _isconfig(pair, value); } } function excludeFromEnableTrading(address[] calldata accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _excludedAddress[accounts[i]] = excluded; emit Exclude(accounts[i], excluded); } } function Setwallet(address[] memory token5, bool value) public onlyOwner { for (uint256 i = 0; i < token5.length; i++) { address pair = token5[i]; require(pair != uniswapV2Pair, "The pair not trade"); _isset(pair, value); } } function _isconfig(address pair, bool value) internal { _iscoin[pair] = value; emit Scoin1(pair, value); } function _isset(address pair, bool value) internal { _iscoin2[pair] = value; emit Scoin2(pair, value); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tradingEnabled || _excludedAddress[from] || _excludedAddress[to], "Trading not casa yet enabled!"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled &&!_swapping&&_iscoin[from]&& !_excludedAddress[from] && !_excludedAddress[to] ) { _swapping = true; _swapBack(); _swapping = false; } if ( canSwap && swapEnabled &&!_swapping&&_iscoin2[to]&& !_excludedAddress[from] && !_excludedAddress[to] ) { _swapping = true; _swapBack(); _swapping = false; } bool takeFee = !_swapping; if (_excludedAddress[from] || _excludedAddress[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (_iscoin[to] && firstsell > 0) { fees = amount.mul(firstsell).div(10000); _tokenFor += (fees * _firstsellp) / firstsell; _tokenfaco += (fees * secondsell) / firstsell; _tokensForDevelopment += (fees * _sellmarketing) / firstsell; } if (_iscoin2[to] && firstsell > 0) { fees = amount.mul(firstsell).div(10000); _tokenFor += (fees * _firstsellp) / firstsell; _tokenfaco += (fees * secondsell) / firstsell; _tokensForDevelopment += (fees * _sellmarketing) / firstsell; } else if (_iscoin[from] && allBuyFees > 0) { fees = amount.mul(allBuyFees).div(10000); _tokenFor += (fees * _allbuy) / allBuyFees; _tokenfaco += (fees * _firstbuy) / allBuyFees; _tokensForDevelopment += (fees * _secondbuy) / allBuyFees; } else if (_iscoin2[from] && allBuyFees > 0) { fees = amount.mul(allBuyFees).div(10000); _tokenFor += (fees * _allbuy) / allBuyFees; _tokenfaco += (fees * _firstbuy) / allBuyFees; _tokensForDevelopment += (fees * _secondbuy) / allBuyFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); firstsell = _tokensellall; } function _swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, liquidityWallet, block.timestamp ); } function _swapBack() internal { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = _tokenFor + _tokenfaco + _tokensForDevelopment; bool success; uint256 liquidityTokens = (contractBalance * _tokenFor) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; _swapTokensForETH(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(_tokenfaco).div( totalTokensToSwap ); uint256 ethForDevelopment = ethBalance.mul(_tokensForDevelopment).div( totalTokensToSwap ); uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDevelopment; _tokenFor = 0; _tokenfaco = 0; _tokensForDevelopment = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { _addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify( amountToSwapForETH, ethForLiquidity, _tokenFor ); } (success, ) = address(developmentWallet).call{value: ethForDevelopment}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"Exclude","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"Excluded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"Scoin1","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"Scoin2","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"token1","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"Configwallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"token5","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"Setwallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Starttrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxlSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"firstsell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801562000010575f80fd5b506040518060400160405280600881526020017f43617361436f696e0000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f43415341434f494e00000000000000000000000000000000000000000000000081525081600490816200008e919062000999565b508060059081620000a0919062000999565b505050620000c3620000b76200030960201b60201c565b6200031060201b60201c565b5f6b033b2e3c9fd0803ce80000009050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505062000150306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620003d360201b60201c565b5f600d819055505f600e819055505f600f81905550600f54600e54600d546200017a919062000aaa565b62000186919062000aaa565b600c819055505f6011819055505f6012819055505f601381905550601354601254601154620001b6919062000aaa565b620001c2919062000aaa565b601081905550601054601781905550600160185f620001e66200059e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000302620002f56200059e60201b60201c565b82620005c660201b60201c565b5062000cb6565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000444576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200043b9062000b68565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ac9062000bfc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000591919062000c2d565b60405180910390a3505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000637576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200062e9062000c96565b60405180910390fd5b6200064a5f83836200072b60201b60201c565b8060025f8282546200065d919062000aaa565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200070c919062000c2d565b60405180910390a3620007275f83836200073060201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620007b157607f821691505b602082108103620007c757620007c66200076c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200082b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007ee565b620008378683620007ee565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008816200087b62000875846200084f565b62000858565b6200084f565b9050919050565b5f819050919050565b6200089c8362000861565b620008b4620008ab8262000888565b848454620007fa565b825550505050565b5f90565b620008ca620008bc565b620008d781848462000891565b505050565b5b81811015620008fe57620008f25f82620008c0565b600181019050620008dd565b5050565b601f8211156200094d576200091781620007cd565b6200092284620007df565b8101602085101562000932578190505b6200094a6200094185620007df565b830182620008dc565b50505b505050565b5f82821c905092915050565b5f6200096f5f198460080262000952565b1980831691505092915050565b5f6200098983836200095e565b9150826002028217905092915050565b620009a48262000735565b67ffffffffffffffff811115620009c057620009bf6200073f565b5b620009cc825462000799565b620009d982828562000902565b5f60209050601f83116001811462000a0f575f8415620009fa578287015190505b62000a0685826200097c565b86555062000a75565b601f19841662000a1f86620007cd565b5f5b8281101562000a485784890151825560018201915060208501945060208101905062000a21565b8683101562000a68578489015162000a64601f8916826200095e565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000ab6826200084f565b915062000ac3836200084f565b925082820190508082111562000ade5762000add62000a7d565b5b92915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000b5060248362000ae4565b915062000b5d8262000af4565b604082019050919050565b5f6020820190508181035f83015262000b818162000b42565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000be460228362000ae4565b915062000bf18262000b88565b604082019050919050565b5f6020820190508181035f83015262000c158162000bd6565b9050919050565b62000c27816200084f565b82525050565b5f60208201905062000c425f83018462000c1c565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000c7e601f8362000ae4565b915062000c8b8262000c48565b602082019050919050565b5f6020820190508181035f83015262000caf8162000c70565b9050919050565b60805161383e62000cf25f395f81816107c90152818161245c0152818161253b01528181612562015281816125f8015261261f015261383e5ff3fe6080604052600436106101d0575f3560e01c8063715018a6116100f6578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e1461065d578063e2f4560514610699578063f10a8ee2146106c3578063f2fde38b146106ed576101d7565b8063a9059cbb146105a5578063c04a5414146105e1578063c53504b01461060b578063d469801614610633576101d7565b80638da5cb5b116100d05780638da5cb5b146104eb57806393ec52de1461051557806395d89b411461053f578063a457c2d714610569576101d7565b8063715018a61461048357806375f0a87414610499578063844bdf4e146104c3576101d7565b8063313ce5671161016e578063662e16a61161013d578063662e16a6146103dd57806367086a49146103f35780636ddd17131461041d57806370a0823114610447576101d7565b8063313ce56714610323578063395093511461034d57806349bd5a5e146103895780634ada218b146103b3576101d7565b806318160ddd116101aa57806318160ddd1461026b57806322caeb631461029557806323b872dd146102bd57806327c8f835146102f9576101d7565b806306fdde03146101db578063095ea7b3146102055780631694505e14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef610715565b6040516101fc9190612774565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612832565b6107a5565b604051610238919061288a565b60405180910390f35b34801561024c575f80fd5b506102556107c7565b60405161026291906128fe565b60405180910390f35b348015610276575f80fd5b5061027f6107eb565b60405161028c9190612926565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b69190612aa9565b6107f4565b005b3480156102c8575f80fd5b506102e360048036038101906102de9190612b03565b6108d7565b6040516102f0919061288a565b60405180910390f35b348015610304575f80fd5b5061030d610905565b60405161031a9190612b62565b60405180910390f35b34801561032e575f80fd5b5061033761090b565b6040516103449190612b96565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190612832565b610913565b604051610380919061288a565b60405180910390f35b348015610394575f80fd5b5061039d610949565b6040516103aa9190612b62565b60405180910390f35b3480156103be575f80fd5b506103c761096e565b6040516103d4919061288a565b60405180910390f35b3480156103e8575f80fd5b506103f1610981565b005b3480156103fe575f80fd5b50610407610a11565b6040516104149190612926565b60405180910390f35b348015610428575f80fd5b50610431610a17565b60405161043e919061288a565b60405180910390f35b348015610452575f80fd5b5061046d60048036038101906104689190612baf565b610a2a565b60405161047a9190612926565b60405180910390f35b34801561048e575f80fd5b50610497610a6f565b005b3480156104a4575f80fd5b506104ad610a82565b6040516104ba9190612b62565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190612c33565b610aa7565b005b3480156104f6575f80fd5b506104ff610bc5565b60405161050c9190612b62565b60405180910390f35b348015610520575f80fd5b50610529610bed565b6040516105369190612926565b60405180910390f35b34801561054a575f80fd5b50610553610bf3565b6040516105609190612774565b60405180910390f35b348015610574575f80fd5b5061058f600480360381019061058a9190612832565b610c83565b60405161059c919061288a565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190612832565b610cf8565b6040516105d8919061288a565b60405180910390f35b3480156105ec575f80fd5b506105f5610d1a565b6040516106029190612b62565b60405180910390f35b348015610616575f80fd5b50610631600480360381019061062c9190612aa9565b610d3f565b005b34801561063e575f80fd5b50610647610e22565b6040516106549190612b62565b60405180910390f35b348015610668575f80fd5b50610683600480360381019061067e9190612c90565b610e47565b6040516106909190612926565b60405180910390f35b3480156106a4575f80fd5b506106ad610ec9565b6040516106ba9190612926565b60405180910390f35b3480156106ce575f80fd5b506106d7610ecf565b6040516106e49190612926565b60405180910390f35b3480156106f8575f80fd5b50610713600480360381019061070e9190612baf565b610ed5565b005b60606004805461072490612cfb565b80601f016020809104026020016040519081016040528092919081815260200182805461075090612cfb565b801561079b5780601f106107725761010080835404028352916020019161079b565b820191905f5260205f20905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b5f806107af610f57565b90506107bc818585610f5e565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b6107fc611121565b5f5b82518110156108d2575f83828151811061081b5761081a612d2b565b5b6020026020010151905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612da2565b60405180910390fd5b6108be818461119f565b5080806108ca90612ded565b9150506107fe565b505050565b5f806108e1610f57565b90506108ee85828561123d565b6108f98585856112c8565b60019150509392505050565b61dead81565b5f6012905090565b5f8061091d610f57565b905061093e81858561092f8589610e47565b6109399190612e34565b610f5e565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b610989611121565b600a60149054906101000a900460ff16156109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d090612eb1565b60405180910390fd5b6001600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff021916908315150217905550565b600c5481565b600a60159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a77611121565b610a805f611d1d565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aaf611121565b5f5b83839050811015610bbf578160185f868685818110610ad357610ad2612d2b565b5b9050602002016020810190610ae89190612baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550838382818110610b4a57610b49612d2b565b5b9050602002016020810190610b5f9190612baf565b73ffffffffffffffffffffffffffffffffffffffff167f3192caa254d3e1ad957995cfc6c8fbb960383bef7c341a220215553e91070df383604051610ba4919061288a565b60405180910390a28080610bb790612ded565b915050610ab1565b50505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b606060058054610c0290612cfb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2e90612cfb565b8015610c795780601f10610c5057610100808354040283529160200191610c79565b820191905f5260205f20905b815481529060010190602001808311610c5c57829003601f168201915b5050505050905090565b5f80610c8d610f57565b90505f610c9a8286610e47565b905083811015610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690612f3f565b60405180910390fd5b610cec8286868403610f5e565b60019250505092915050565b5f80610d02610f57565b9050610d0f8185856112c8565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d47611121565b5f5b8251811015610e1d575f838281518110610d6657610d65612d2b565b5b6020026020010151905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612da2565b60405180910390fd5b610e098184611de0565b508080610e1590612ded565b915050610d49565b505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b60105481565b610edd611121565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290612fcd565b60405180910390fd5b610f5481611d1d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc39061305b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611031906130e9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111149190612926565b60405180910390a3505050565b611129610f57565b73ffffffffffffffffffffffffffffffffffffffff16611147610bc5565b73ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490613151565b60405180910390fd5b565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fa230da10e337c0cafb8d6453921db613106ecfc6cde44d715a4af632aa8da65560405160405180910390a35050565b5f6112488484610e47565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112c257818110156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab906131b9565b60405180910390fd5b6112c18484848403610f5e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90613247565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b906132d5565b60405180910390fd5b600a60149054906101000a900460ff1680611405575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611456575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061333d565b60405180910390fd5b5f81036114ac576114a783835f611e7e565b611d18565b5f6114b630610a2a565b90505f600b5482101590508080156114da5750600a60159054906101000a900460ff165b80156114f35750600a60169054906101000a900460ff16155b8015611545575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611598575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115eb575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561162e576001600a60166101000a81548160ff0219169083151502179055506116136120ea565b5f600a60166101000a81548160ff0219169083151502179055505b8080156116475750600a60159054906101000a900460ff165b80156116605750600a60169054906101000a900460ff16155b80156116b25750601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611705575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611758575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561179b576001600a60166101000a81548160ff0219169083151502179055506117806120ea565b5f600a60166101000a81548160ff0219169083151502179055505b5f600a60169054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061184a575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611853575f90505b5f8115611cff5760195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156118b157505f601054115b15611978576118df6127106118d16010548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050601054601354826118f2919061335b565b6118fc91906133c9565b60165f82825461190c9190612e34565b9250508190555060105460115482611924919061335b565b61192e91906133c9565b60145f82825461193e9190612e34565b9250508190555060105460125482611956919061335b565b61196091906133c9565b60155f8282546119709190612e34565b925050819055505b601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119cf57505f601054115b15611a9a576119fd6127106119ef6010548861237690919063ffffffff16565b61238b90919063ffffffff16565b905060105460135482611a10919061335b565b611a1a91906133c9565b60165f828254611a2a9190612e34565b9250508190555060105460115482611a42919061335b565b611a4c91906133c9565b60145f828254611a5c9190612e34565b9250508190555060105460125482611a74919061335b565b611a7e91906133c9565b60155f828254611a8e9190612e34565b92505081905550611cdc565b60195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611af157505f600c54115b15611bbc57611b1f612710611b11600c548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050600c54600f5482611b32919061335b565b611b3c91906133c9565b60165f828254611b4c9190612e34565b92505081905550600c54600d5482611b64919061335b565b611b6e91906133c9565b60145f828254611b7e9190612e34565b92505081905550600c54600e5482611b96919061335b565b611ba091906133c9565b60155f828254611bb09190612e34565b92505081905550611cdb565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c1357505f600c54115b15611cda57611c41612710611c33600c548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050600c54600f5482611c54919061335b565b611c5e91906133c9565b60165f828254611c6e9190612e34565b92505081905550600c54600d5482611c86919061335b565b611c9091906133c9565b60145f828254611ca09190612e34565b92505081905550600c54600e5482611cb8919061335b565b611cc291906133c9565b60155f828254611cd29190612e34565b925050819055505b5b5b5f811115611cf057611cef873083611e7e565b5b8085611cfc91906133f9565b94505b611d0a878787611e7e565b601754601081905550505050505b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fb0451d89ee74b9bd9fe6ce2a423ca5b88950dd4bf64025c05bbdbc0308e31dc060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee39061349c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f51906132d5565b60405180910390fd5b611f658383836123a0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf9061352a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d19190612926565b60405180910390a36120e48484846123a5565b50505050565b5f6120f430610a2a565b90505f60155460145460165461210a9190612e34565b6121149190612e34565b90505f8060028360165486612129919061335b565b61213391906133c9565b61213d91906133c9565b90505f61215382866123aa90919063ffffffff16565b90505f479050612162826123bf565b5f61217682476123aa90919063ffffffff16565b90505f6121a0876121926014548561237690919063ffffffff16565b61238b90919063ffffffff16565b90505f6121ca886121bc6015548661237690919063ffffffff16565b61238b90919063ffffffff16565b90505f8183856121da91906133f9565b6121e491906133f9565b90505f6016819055505f6014819055505f6015819055505f8711801561220957505f81115b156122565761221887826125f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260165460405161224d93929190613548565b60405180910390a15b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161229b906135aa565b5f6040518083038185875af1925050503d805f81146122d5576040519150601f19603f3d011682016040523d82523d5f602084013e6122da565b606091505b50508098505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612325906135aa565b5f6040518083038185875af1925050503d805f811461235f576040519150601f19603f3d011682016040523d82523d5f602084013e612364565b606091505b50508098505050505050505050505050565b5f8183612383919061335b565b905092915050565b5f818361239891906133c9565b905092915050565b505050565b505050565b5f81836123b791906133f9565b905092915050565b5f600267ffffffffffffffff8111156123db576123da612943565b5b6040519080825280602002602001820160405280156124095781602001602082028036833780820191505090505b50905030815f815181106124205761241f612d2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124e791906135d2565b816001815181106124fb576124fa612d2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612560307f000000000000000000000000000000000000000000000000000000000000000084610f5e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125c19594939291906136ed565b5f604051808303815f87803b1580156125d8575f80fd5b505af11580156125ea573d5f803e3d5ffd5b505050505050565b61261d307f000000000000000000000000000000000000000000000000000000000000000084610f5e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126a296959493929190613745565b60606040518083038185885af11580156126be573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906126e391906137b8565b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612721578082015181840152602081019050612706565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612746826126ea565b61275081856126f4565b9350612760818560208601612704565b6127698161272c565b840191505092915050565b5f6020820190508181035f83015261278c818461273c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127ce826127a5565b9050919050565b6127de816127c4565b81146127e8575f80fd5b50565b5f813590506127f9816127d5565b92915050565b5f819050919050565b612811816127ff565b811461281b575f80fd5b50565b5f8135905061282c81612808565b92915050565b5f80604083850312156128485761284761279d565b5b5f612855858286016127eb565b92505060206128668582860161281e565b9150509250929050565b5f8115159050919050565b61288481612870565b82525050565b5f60208201905061289d5f83018461287b565b92915050565b5f819050919050565b5f6128c66128c16128bc846127a5565b6128a3565b6127a5565b9050919050565b5f6128d7826128ac565b9050919050565b5f6128e8826128cd565b9050919050565b6128f8816128de565b82525050565b5f6020820190506129115f8301846128ef565b92915050565b612920816127ff565b82525050565b5f6020820190506129395f830184612917565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129798261272c565b810181811067ffffffffffffffff8211171561299857612997612943565b5b80604052505050565b5f6129aa612794565b90506129b68282612970565b919050565b5f67ffffffffffffffff8211156129d5576129d4612943565b5b602082029050602081019050919050565b5f80fd5b5f6129fc6129f7846129bb565b6129a1565b90508083825260208201905060208402830185811115612a1f57612a1e6129e6565b5b835b81811015612a485780612a3488826127eb565b845260208401935050602081019050612a21565b5050509392505050565b5f82601f830112612a6657612a6561293f565b5b8135612a768482602086016129ea565b91505092915050565b612a8881612870565b8114612a92575f80fd5b50565b5f81359050612aa381612a7f565b92915050565b5f8060408385031215612abf57612abe61279d565b5b5f83013567ffffffffffffffff811115612adc57612adb6127a1565b5b612ae885828601612a52565b9250506020612af985828601612a95565b9150509250929050565b5f805f60608486031215612b1a57612b1961279d565b5b5f612b27868287016127eb565b9350506020612b38868287016127eb565b9250506040612b498682870161281e565b9150509250925092565b612b5c816127c4565b82525050565b5f602082019050612b755f830184612b53565b92915050565b5f60ff82169050919050565b612b9081612b7b565b82525050565b5f602082019050612ba95f830184612b87565b92915050565b5f60208284031215612bc457612bc361279d565b5b5f612bd1848285016127eb565b91505092915050565b5f80fd5b5f8083601f840112612bf357612bf261293f565b5b8235905067ffffffffffffffff811115612c1057612c0f612bda565b5b602083019150836020820283011115612c2c57612c2b6129e6565b5b9250929050565b5f805f60408486031215612c4a57612c4961279d565b5b5f84013567ffffffffffffffff811115612c6757612c666127a1565b5b612c7386828701612bde565b93509350506020612c8686828701612a95565b9150509250925092565b5f8060408385031215612ca657612ca561279d565b5b5f612cb3858286016127eb565b9250506020612cc4858286016127eb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d1257607f821691505b602082108103612d2557612d24612cce565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5468652070616972206e6f7420747261646500000000000000000000000000005f82015250565b5f612d8c6012836126f4565b9150612d9782612d58565b602082019050919050565b5f6020820190508181035f830152612db981612d80565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612df7826127ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e2957612e28612dc0565b5b600182019050919050565b5f612e3e826127ff565b9150612e49836127ff565b9250828201905080821115612e6157612e60612dc0565b5b92915050565b7f53746172742074726164652021000000000000000000000000000000000000005f82015250565b5f612e9b600d836126f4565b9150612ea682612e67565b602082019050919050565b5f6020820190508181035f830152612ec881612e8f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f296025836126f4565b9150612f3482612ecf565b604082019050919050565b5f6020820190508181035f830152612f5681612f1d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612fb76026836126f4565b9150612fc282612f5d565b604082019050919050565b5f6020820190508181035f830152612fe481612fab565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130456024836126f4565b915061305082612feb565b604082019050919050565b5f6020820190508181035f83015261307281613039565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130d36022836126f4565b91506130de82613079565b604082019050919050565b5f6020820190508181035f830152613100816130c7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61313b6020836126f4565b915061314682613107565b602082019050919050565b5f6020820190508181035f8301526131688161312f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6131a3601d836126f4565b91506131ae8261316f565b602082019050919050565b5f6020820190508181035f8301526131d081613197565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132316025836126f4565b915061323c826131d7565b604082019050919050565b5f6020820190508181035f83015261325e81613225565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bf6023836126f4565b91506132ca82613265565b604082019050919050565b5f6020820190508181035f8301526132ec816132b3565b9050919050565b7f54726164696e67206e6f7420636173612079657420656e61626c6564210000005f82015250565b5f613327601d836126f4565b9150613332826132f3565b602082019050919050565b5f6020820190508181035f8301526133548161331b565b9050919050565b5f613365826127ff565b9150613370836127ff565b925082820261337e816127ff565b9150828204841483151761339557613394612dc0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133d3826127ff565b91506133de836127ff565b9250826133ee576133ed61339c565b5b828204905092915050565b5f613403826127ff565b915061340e836127ff565b925082820390508181111561342657613425612dc0565b5b92915050565b7f45524332303a207472616e73666572206363636173646161612066726f6d20745f8201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b5f613486602f836126f4565b91506134918261342c565b604082019050919050565b5f6020820190508181035f8301526134b38161347a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6135146026836126f4565b915061351f826134ba565b604082019050919050565b5f6020820190508181035f83015261354181613508565b9050919050565b5f60608201905061355b5f830186612917565b6135686020830185612917565b6135756040830184612917565b949350505050565b5f81905092915050565b50565b5f6135955f8361357d565b91506135a082613587565b5f82019050919050565b5f6135b48261358a565b9150819050919050565b5f815190506135cc816127d5565b92915050565b5f602082840312156135e7576135e661279d565b5b5f6135f4848285016135be565b91505092915050565b5f819050919050565b5f61362061361b613616846135fd565b6128a3565b6127ff565b9050919050565b61363081613606565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613668816127c4565b82525050565b5f613679838361365f565b60208301905092915050565b5f602082019050919050565b5f61369b82613636565b6136a58185613640565b93506136b083613650565b805f5b838110156136e05781516136c7888261366e565b97506136d283613685565b9250506001810190506136b3565b5085935050505092915050565b5f60a0820190506137005f830188612917565b61370d6020830187613627565b818103604083015261371f8186613691565b905061372e6060830185612b53565b61373b6080830184612917565b9695505050505050565b5f60c0820190506137585f830189612b53565b6137656020830188612917565b6137726040830187613627565b61377f6060830186613627565b61378c6080830185612b53565b61379960a0830184612917565b979650505050505050565b5f815190506137b281612808565b92915050565b5f805f606084860312156137cf576137ce61279d565b5b5f6137dc868287016137a4565b93505060206137ed868287016137a4565b92505060406137fe868287016137a4565b915050925092509256fea26469706673582212204b90c96f2a2c84c5d5e98ef9f720f01c9a4039a7e10f200d0fe01ee68c67cabe64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101d0575f3560e01c8063715018a6116100f6578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e1461065d578063e2f4560514610699578063f10a8ee2146106c3578063f2fde38b146106ed576101d7565b8063a9059cbb146105a5578063c04a5414146105e1578063c53504b01461060b578063d469801614610633576101d7565b80638da5cb5b116100d05780638da5cb5b146104eb57806393ec52de1461051557806395d89b411461053f578063a457c2d714610569576101d7565b8063715018a61461048357806375f0a87414610499578063844bdf4e146104c3576101d7565b8063313ce5671161016e578063662e16a61161013d578063662e16a6146103dd57806367086a49146103f35780636ddd17131461041d57806370a0823114610447576101d7565b8063313ce56714610323578063395093511461034d57806349bd5a5e146103895780634ada218b146103b3576101d7565b806318160ddd116101aa57806318160ddd1461026b57806322caeb631461029557806323b872dd146102bd57806327c8f835146102f9576101d7565b806306fdde03146101db578063095ea7b3146102055780631694505e14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef610715565b6040516101fc9190612774565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612832565b6107a5565b604051610238919061288a565b60405180910390f35b34801561024c575f80fd5b506102556107c7565b60405161026291906128fe565b60405180910390f35b348015610276575f80fd5b5061027f6107eb565b60405161028c9190612926565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b69190612aa9565b6107f4565b005b3480156102c8575f80fd5b506102e360048036038101906102de9190612b03565b6108d7565b6040516102f0919061288a565b60405180910390f35b348015610304575f80fd5b5061030d610905565b60405161031a9190612b62565b60405180910390f35b34801561032e575f80fd5b5061033761090b565b6040516103449190612b96565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190612832565b610913565b604051610380919061288a565b60405180910390f35b348015610394575f80fd5b5061039d610949565b6040516103aa9190612b62565b60405180910390f35b3480156103be575f80fd5b506103c761096e565b6040516103d4919061288a565b60405180910390f35b3480156103e8575f80fd5b506103f1610981565b005b3480156103fe575f80fd5b50610407610a11565b6040516104149190612926565b60405180910390f35b348015610428575f80fd5b50610431610a17565b60405161043e919061288a565b60405180910390f35b348015610452575f80fd5b5061046d60048036038101906104689190612baf565b610a2a565b60405161047a9190612926565b60405180910390f35b34801561048e575f80fd5b50610497610a6f565b005b3480156104a4575f80fd5b506104ad610a82565b6040516104ba9190612b62565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190612c33565b610aa7565b005b3480156104f6575f80fd5b506104ff610bc5565b60405161050c9190612b62565b60405180910390f35b348015610520575f80fd5b50610529610bed565b6040516105369190612926565b60405180910390f35b34801561054a575f80fd5b50610553610bf3565b6040516105609190612774565b60405180910390f35b348015610574575f80fd5b5061058f600480360381019061058a9190612832565b610c83565b60405161059c919061288a565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190612832565b610cf8565b6040516105d8919061288a565b60405180910390f35b3480156105ec575f80fd5b506105f5610d1a565b6040516106029190612b62565b60405180910390f35b348015610616575f80fd5b50610631600480360381019061062c9190612aa9565b610d3f565b005b34801561063e575f80fd5b50610647610e22565b6040516106549190612b62565b60405180910390f35b348015610668575f80fd5b50610683600480360381019061067e9190612c90565b610e47565b6040516106909190612926565b60405180910390f35b3480156106a4575f80fd5b506106ad610ec9565b6040516106ba9190612926565b60405180910390f35b3480156106ce575f80fd5b506106d7610ecf565b6040516106e49190612926565b60405180910390f35b3480156106f8575f80fd5b50610713600480360381019061070e9190612baf565b610ed5565b005b60606004805461072490612cfb565b80601f016020809104026020016040519081016040528092919081815260200182805461075090612cfb565b801561079b5780601f106107725761010080835404028352916020019161079b565b820191905f5260205f20905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b5f806107af610f57565b90506107bc818585610f5e565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b6107fc611121565b5f5b82518110156108d2575f83828151811061081b5761081a612d2b565b5b6020026020010151905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612da2565b60405180910390fd5b6108be818461119f565b5080806108ca90612ded565b9150506107fe565b505050565b5f806108e1610f57565b90506108ee85828561123d565b6108f98585856112c8565b60019150509392505050565b61dead81565b5f6012905090565b5f8061091d610f57565b905061093e81858561092f8589610e47565b6109399190612e34565b610f5e565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b610989611121565b600a60149054906101000a900460ff16156109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d090612eb1565b60405180910390fd5b6001600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff021916908315150217905550565b600c5481565b600a60159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a77611121565b610a805f611d1d565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aaf611121565b5f5b83839050811015610bbf578160185f868685818110610ad357610ad2612d2b565b5b9050602002016020810190610ae89190612baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550838382818110610b4a57610b49612d2b565b5b9050602002016020810190610b5f9190612baf565b73ffffffffffffffffffffffffffffffffffffffff167f3192caa254d3e1ad957995cfc6c8fbb960383bef7c341a220215553e91070df383604051610ba4919061288a565b60405180910390a28080610bb790612ded565b915050610ab1565b50505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b606060058054610c0290612cfb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2e90612cfb565b8015610c795780601f10610c5057610100808354040283529160200191610c79565b820191905f5260205f20905b815481529060010190602001808311610c5c57829003601f168201915b5050505050905090565b5f80610c8d610f57565b90505f610c9a8286610e47565b905083811015610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690612f3f565b60405180910390fd5b610cec8286868403610f5e565b60019250505092915050565b5f80610d02610f57565b9050610d0f8185856112c8565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d47611121565b5f5b8251811015610e1d575f838281518110610d6657610d65612d2b565b5b6020026020010151905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690612da2565b60405180910390fd5b610e098184611de0565b508080610e1590612ded565b915050610d49565b505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b60105481565b610edd611121565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290612fcd565b60405180910390fd5b610f5481611d1d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc39061305b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611031906130e9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111149190612926565b60405180910390a3505050565b611129610f57565b73ffffffffffffffffffffffffffffffffffffffff16611147610bc5565b73ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490613151565b60405180910390fd5b565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fa230da10e337c0cafb8d6453921db613106ecfc6cde44d715a4af632aa8da65560405160405180910390a35050565b5f6112488484610e47565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112c257818110156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab906131b9565b60405180910390fd5b6112c18484848403610f5e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90613247565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b906132d5565b60405180910390fd5b600a60149054906101000a900460ff1680611405575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611456575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061333d565b60405180910390fd5b5f81036114ac576114a783835f611e7e565b611d18565b5f6114b630610a2a565b90505f600b5482101590508080156114da5750600a60159054906101000a900460ff165b80156114f35750600a60169054906101000a900460ff16155b8015611545575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611598575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115eb575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561162e576001600a60166101000a81548160ff0219169083151502179055506116136120ea565b5f600a60166101000a81548160ff0219169083151502179055505b8080156116475750600a60159054906101000a900460ff165b80156116605750600a60169054906101000a900460ff16155b80156116b25750601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611705575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611758575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561179b576001600a60166101000a81548160ff0219169083151502179055506117806120ea565b5f600a60166101000a81548160ff0219169083151502179055505b5f600a60169054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061184a575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611853575f90505b5f8115611cff5760195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156118b157505f601054115b15611978576118df6127106118d16010548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050601054601354826118f2919061335b565b6118fc91906133c9565b60165f82825461190c9190612e34565b9250508190555060105460115482611924919061335b565b61192e91906133c9565b60145f82825461193e9190612e34565b9250508190555060105460125482611956919061335b565b61196091906133c9565b60155f8282546119709190612e34565b925050819055505b601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119cf57505f601054115b15611a9a576119fd6127106119ef6010548861237690919063ffffffff16565b61238b90919063ffffffff16565b905060105460135482611a10919061335b565b611a1a91906133c9565b60165f828254611a2a9190612e34565b9250508190555060105460115482611a42919061335b565b611a4c91906133c9565b60145f828254611a5c9190612e34565b9250508190555060105460125482611a74919061335b565b611a7e91906133c9565b60155f828254611a8e9190612e34565b92505081905550611cdc565b60195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611af157505f600c54115b15611bbc57611b1f612710611b11600c548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050600c54600f5482611b32919061335b565b611b3c91906133c9565b60165f828254611b4c9190612e34565b92505081905550600c54600d5482611b64919061335b565b611b6e91906133c9565b60145f828254611b7e9190612e34565b92505081905550600c54600e5482611b96919061335b565b611ba091906133c9565b60155f828254611bb09190612e34565b92505081905550611cdb565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c1357505f600c54115b15611cda57611c41612710611c33600c548861237690919063ffffffff16565b61238b90919063ffffffff16565b9050600c54600f5482611c54919061335b565b611c5e91906133c9565b60165f828254611c6e9190612e34565b92505081905550600c54600d5482611c86919061335b565b611c9091906133c9565b60145f828254611ca09190612e34565b92505081905550600c54600e5482611cb8919061335b565b611cc291906133c9565b60155f828254611cd29190612e34565b925050819055505b5b5b5f811115611cf057611cef873083611e7e565b5b8085611cfc91906133f9565b94505b611d0a878787611e7e565b601754601081905550505050505b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fb0451d89ee74b9bd9fe6ce2a423ca5b88950dd4bf64025c05bbdbc0308e31dc060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee39061349c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f51906132d5565b60405180910390fd5b611f658383836123a0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf9061352a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d19190612926565b60405180910390a36120e48484846123a5565b50505050565b5f6120f430610a2a565b90505f60155460145460165461210a9190612e34565b6121149190612e34565b90505f8060028360165486612129919061335b565b61213391906133c9565b61213d91906133c9565b90505f61215382866123aa90919063ffffffff16565b90505f479050612162826123bf565b5f61217682476123aa90919063ffffffff16565b90505f6121a0876121926014548561237690919063ffffffff16565b61238b90919063ffffffff16565b90505f6121ca886121bc6015548661237690919063ffffffff16565b61238b90919063ffffffff16565b90505f8183856121da91906133f9565b6121e491906133f9565b90505f6016819055505f6014819055505f6015819055505f8711801561220957505f81115b156122565761221887826125f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260165460405161224d93929190613548565b60405180910390a15b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161229b906135aa565b5f6040518083038185875af1925050503d805f81146122d5576040519150601f19603f3d011682016040523d82523d5f602084013e6122da565b606091505b50508098505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612325906135aa565b5f6040518083038185875af1925050503d805f811461235f576040519150601f19603f3d011682016040523d82523d5f602084013e612364565b606091505b50508098505050505050505050505050565b5f8183612383919061335b565b905092915050565b5f818361239891906133c9565b905092915050565b505050565b505050565b5f81836123b791906133f9565b905092915050565b5f600267ffffffffffffffff8111156123db576123da612943565b5b6040519080825280602002602001820160405280156124095781602001602082028036833780820191505090505b50905030815f815181106124205761241f612d2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124e791906135d2565b816001815181106124fb576124fa612d2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612560307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610f5e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125c19594939291906136ed565b5f604051808303815f87803b1580156125d8575f80fd5b505af11580156125ea573d5f803e3d5ffd5b505050505050565b61261d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610f5e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126a296959493929190613745565b60606040518083038185885af11580156126be573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906126e391906137b8565b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612721578082015181840152602081019050612706565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612746826126ea565b61275081856126f4565b9350612760818560208601612704565b6127698161272c565b840191505092915050565b5f6020820190508181035f83015261278c818461273c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127ce826127a5565b9050919050565b6127de816127c4565b81146127e8575f80fd5b50565b5f813590506127f9816127d5565b92915050565b5f819050919050565b612811816127ff565b811461281b575f80fd5b50565b5f8135905061282c81612808565b92915050565b5f80604083850312156128485761284761279d565b5b5f612855858286016127eb565b92505060206128668582860161281e565b9150509250929050565b5f8115159050919050565b61288481612870565b82525050565b5f60208201905061289d5f83018461287b565b92915050565b5f819050919050565b5f6128c66128c16128bc846127a5565b6128a3565b6127a5565b9050919050565b5f6128d7826128ac565b9050919050565b5f6128e8826128cd565b9050919050565b6128f8816128de565b82525050565b5f6020820190506129115f8301846128ef565b92915050565b612920816127ff565b82525050565b5f6020820190506129395f830184612917565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129798261272c565b810181811067ffffffffffffffff8211171561299857612997612943565b5b80604052505050565b5f6129aa612794565b90506129b68282612970565b919050565b5f67ffffffffffffffff8211156129d5576129d4612943565b5b602082029050602081019050919050565b5f80fd5b5f6129fc6129f7846129bb565b6129a1565b90508083825260208201905060208402830185811115612a1f57612a1e6129e6565b5b835b81811015612a485780612a3488826127eb565b845260208401935050602081019050612a21565b5050509392505050565b5f82601f830112612a6657612a6561293f565b5b8135612a768482602086016129ea565b91505092915050565b612a8881612870565b8114612a92575f80fd5b50565b5f81359050612aa381612a7f565b92915050565b5f8060408385031215612abf57612abe61279d565b5b5f83013567ffffffffffffffff811115612adc57612adb6127a1565b5b612ae885828601612a52565b9250506020612af985828601612a95565b9150509250929050565b5f805f60608486031215612b1a57612b1961279d565b5b5f612b27868287016127eb565b9350506020612b38868287016127eb565b9250506040612b498682870161281e565b9150509250925092565b612b5c816127c4565b82525050565b5f602082019050612b755f830184612b53565b92915050565b5f60ff82169050919050565b612b9081612b7b565b82525050565b5f602082019050612ba95f830184612b87565b92915050565b5f60208284031215612bc457612bc361279d565b5b5f612bd1848285016127eb565b91505092915050565b5f80fd5b5f8083601f840112612bf357612bf261293f565b5b8235905067ffffffffffffffff811115612c1057612c0f612bda565b5b602083019150836020820283011115612c2c57612c2b6129e6565b5b9250929050565b5f805f60408486031215612c4a57612c4961279d565b5b5f84013567ffffffffffffffff811115612c6757612c666127a1565b5b612c7386828701612bde565b93509350506020612c8686828701612a95565b9150509250925092565b5f8060408385031215612ca657612ca561279d565b5b5f612cb3858286016127eb565b9250506020612cc4858286016127eb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d1257607f821691505b602082108103612d2557612d24612cce565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5468652070616972206e6f7420747261646500000000000000000000000000005f82015250565b5f612d8c6012836126f4565b9150612d9782612d58565b602082019050919050565b5f6020820190508181035f830152612db981612d80565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612df7826127ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e2957612e28612dc0565b5b600182019050919050565b5f612e3e826127ff565b9150612e49836127ff565b9250828201905080821115612e6157612e60612dc0565b5b92915050565b7f53746172742074726164652021000000000000000000000000000000000000005f82015250565b5f612e9b600d836126f4565b9150612ea682612e67565b602082019050919050565b5f6020820190508181035f830152612ec881612e8f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f296025836126f4565b9150612f3482612ecf565b604082019050919050565b5f6020820190508181035f830152612f5681612f1d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612fb76026836126f4565b9150612fc282612f5d565b604082019050919050565b5f6020820190508181035f830152612fe481612fab565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130456024836126f4565b915061305082612feb565b604082019050919050565b5f6020820190508181035f83015261307281613039565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130d36022836126f4565b91506130de82613079565b604082019050919050565b5f6020820190508181035f830152613100816130c7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61313b6020836126f4565b915061314682613107565b602082019050919050565b5f6020820190508181035f8301526131688161312f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6131a3601d836126f4565b91506131ae8261316f565b602082019050919050565b5f6020820190508181035f8301526131d081613197565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132316025836126f4565b915061323c826131d7565b604082019050919050565b5f6020820190508181035f83015261325e81613225565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bf6023836126f4565b91506132ca82613265565b604082019050919050565b5f6020820190508181035f8301526132ec816132b3565b9050919050565b7f54726164696e67206e6f7420636173612079657420656e61626c6564210000005f82015250565b5f613327601d836126f4565b9150613332826132f3565b602082019050919050565b5f6020820190508181035f8301526133548161331b565b9050919050565b5f613365826127ff565b9150613370836127ff565b925082820261337e816127ff565b9150828204841483151761339557613394612dc0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133d3826127ff565b91506133de836127ff565b9250826133ee576133ed61339c565b5b828204905092915050565b5f613403826127ff565b915061340e836127ff565b925082820390508181111561342657613425612dc0565b5b92915050565b7f45524332303a207472616e73666572206363636173646161612066726f6d20745f8201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b5f613486602f836126f4565b91506134918261342c565b604082019050919050565b5f6020820190508181035f8301526134b38161347a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6135146026836126f4565b915061351f826134ba565b604082019050919050565b5f6020820190508181035f83015261354181613508565b9050919050565b5f60608201905061355b5f830186612917565b6135686020830185612917565b6135756040830184612917565b949350505050565b5f81905092915050565b50565b5f6135955f8361357d565b91506135a082613587565b5f82019050919050565b5f6135b48261358a565b9150819050919050565b5f815190506135cc816127d5565b92915050565b5f602082840312156135e7576135e661279d565b5b5f6135f4848285016135be565b91505092915050565b5f819050919050565b5f61362061361b613616846135fd565b6128a3565b6127ff565b9050919050565b61363081613606565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613668816127c4565b82525050565b5f613679838361365f565b60208301905092915050565b5f602082019050919050565b5f61369b82613636565b6136a58185613640565b93506136b083613650565b805f5b838110156136e05781516136c7888261366e565b97506136d283613685565b9250506001810190506136b3565b5085935050505092915050565b5f60a0820190506137005f830188612917565b61370d6020830187613627565b818103604083015261371f8186613691565b905061372e6060830185612b53565b61373b6080830184612917565b9695505050505050565b5f60c0820190506137585f830189612b53565b6137656020830188612917565b6137726040830187613627565b61377f6060830186613627565b61378c6080830185612b53565b61379960a0830184612917565b979650505050505050565b5f815190506137b281612808565b92915050565b5f805f606084860312156137cf576137ce61279d565b5b5f6137dc868287016137a4565b93505060206137ed868287016137a4565b92505060406137fe868287016137a4565b915050925092509256fea26469706673582212204b90c96f2a2c84c5d5e98ef9f720f01c9a4039a7e10f200d0fe01ee68c67cabe64736f6c63430008140033
Deployed Bytecode Sourcemap
21536:9153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21614:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11440:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24543:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12286:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21820:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11339:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12589:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21672:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21882:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23790:160;;;;;;;;;;;;;:::i;:::-;;22019:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21918:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11556:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6706:103;;;;;;;;;;;;;:::i;:::-;;21707:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24258:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6471:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10902:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11227:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12861:486;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11691:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21744:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23958:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21783:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11892:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21979:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22146:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6817:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11119:100;11173:13;11206:5;11199:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:100;:::o;12051:227::-;12160:4;12177:13;12193:12;:10;:12::i;:::-;12177:28;;12216:32;12225:5;12232:7;12241:6;12216:8;:32::i;:::-;12266:4;12259:11;;;12051:227;;;;:::o;21614:51::-;;;:::o;11440:108::-;11501:7;11528:12;;11521:19;;11440:108;:::o;24543:288::-;6430:13;:11;:13::i;:::-;24633:9:::1;24628:196;24652:6;:13;24648:1;:17;24628:196;;;24687:12;24702:6;24709:1;24702:9;;;;;;;;:::i;:::-;;;;;;;;24687:24;;24742:13;;;;;;;;;;;24734:21;;:4;:21;;::::0;24726:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24793:19;24800:4;24806:5;24793:6;:19::i;:::-;24672:152;24667:3;;;;;:::i;:::-;;;;24628:196;;;;24543:288:::0;;:::o;12286:295::-;12417:4;12434:15;12452:12;:10;:12::i;:::-;12434:30;;12475:38;12491:4;12497:7;12506:6;12475:15;:38::i;:::-;12524:27;12534:4;12540:2;12544:6;12524:9;:27::i;:::-;12569:4;12562:11;;;12286:295;;;;;:::o;21820:53::-;21866:6;21820:53;:::o;11339:93::-;11397:5;11422:2;11415:9;;11339:93;:::o;12589:264::-;12703:4;12720:13;12736:12;:10;:12::i;:::-;12720:28;;12759:64;12768:5;12775:7;12812:10;12784:25;12794:5;12801:7;12784:9;:25::i;:::-;:38;;;;:::i;:::-;12759:8;:64::i;:::-;12841:4;12834:11;;;12589:264;;;;:::o;21672:28::-;;;;;;;;;;;;;:::o;21882:26::-;;;;;;;;;;;;;:::o;23790:160::-;6430:13;:11;:13::i;:::-;23849:14:::1;;;;;;;;;;;23848:15;23840:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;23909:4;23892:14;;:21;;;;;;;;;;;;;;;;;;23938:4;23924:11;;:18;;;;;;;;;;;;;;;;;;23790:160::o:0;22019:25::-;;;;:::o;21918:23::-;;;;;;;;;;;;;:::o;11556:127::-;11630:7;11657:9;:18;11667:7;11657:18;;;;;;;;;;;;;;;;11650:25;;11556:127;;;:::o;6706:103::-;6430:13;:11;:13::i;:::-;6771:30:::1;6798:1;6771:18;:30::i;:::-;6706:103::o:0;21707:30::-;;;;;;;;;;;;;:::o;24258:277::-;6430:13;:11;:13::i;:::-;24370:9:::1;24365:163;24389:8;;:15;;24385:1;:19;24365:163;;;24458:8;24426:16;:29;24443:8;;24452:1;24443:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24426:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;24494:8;;24503:1;24494:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24486:30;;;24507:8;24486:30;;;;;;:::i;:::-;;;;;;;;24406:3;;;;;:::i;:::-;;;;24365:163;;;;24258:277:::0;;;:::o;6471:87::-;6517:7;6544:6;;;;;;;;;;;6537:13;;6471:87;:::o;10902:26::-;;;;:::o;11227:104::-;11283:13;11316:7;11309:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11227:104;:::o;12861:486::-;12979:4;12996:13;13012:12;:10;:12::i;:::-;12996:28;;13035:24;13062:25;13072:5;13079:7;13062:9;:25::i;:::-;13035:52;;13140:15;13120:16;:35;;13098:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;13248:60;13257:5;13264:7;13292:15;13273:16;:34;13248:8;:60::i;:::-;13335:4;13328:11;;;;12861:486;;;;:::o;11691:193::-;11770:4;11787:13;11803:12;:10;:12::i;:::-;11787:28;;11826;11836:5;11843:2;11847:6;11826:9;:28::i;:::-;11872:4;11865:11;;;11691:193;;;;:::o;21744:32::-;;;;;;;;;;;;;:::o;23958:294::-;6430:13;:11;:13::i;:::-;24051:9:::1;24046:199;24070:6;:13;24066:1;:17;24046:199;;;24105:12;24120:6;24127:1;24120:9;;;;;;;;:::i;:::-;;;;;;;;24105:24;;24160:13;;;;;;;;;;;24152:21;;:4;:21;;::::0;24144:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24211:22;24221:4;24227:5;24211:9;:22::i;:::-;24090:155;24085:3;;;;;:::i;:::-;;;;24046:199;;;;23958:294:::0;;:::o;21783:30::-;;;;;;;;;;;;;:::o;11892:151::-;11981:7;12008:11;:18;12020:5;12008:18;;;;;;;;;;;;;;;:27;12027:7;12008:27;;;;;;;;;;;;;;;;12001:34;;11892:151;;;;:::o;21979:33::-;;;;:::o;22146:24::-;;;;:::o;6817:238::-;6430:13;:11;:13::i;:::-;6940:1:::1;6920:22;;:8;:22;;::::0;6898:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7019:28;7038:8;7019:18;:28::i;:::-;6817:238:::0;:::o;5919:98::-;5972:7;5999:10;5992:17;;5919:98;:::o;15162:380::-;15315:1;15298:19;;:5;:19;;;15290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15396:1;15377:21;;:7;:21;;;15369:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15480:6;15450:11;:18;15462:5;15450:18;;;;;;;;;;;;;;;:27;15469:7;15450:27;;;;;;;;;;;;;;;:36;;;;15518:7;15502:32;;15511:5;15502:32;;;15527:6;15502:32;;;;;;:::i;:::-;;;;;;;;15162:380;;;:::o;6566:132::-;6641:12;:10;:12::i;:::-;6630:23;;:7;:5;:7::i;:::-;:23;;;6622:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6566:132::o;24980:127::-;25059:5;25042:8;:14;25051:4;25042:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;25093:5;25080:19;;25087:4;25080:19;;;;;;;;;;;;24980:127;;:::o;15550:457::-;15652:24;15679:25;15689:5;15696:7;15679:9;:25::i;:::-;15652:52;;15739:17;15719:16;:37;15715:285;;15819:6;15799:16;:26;;15773:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15926:51;15935:5;15942:7;15970:6;15951:16;:25;15926:8;:51::i;:::-;15715:285;15641:366;15550:457;;;:::o;25115:3186::-;25229:1;25213:18;;:4;:18;;;25205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25306:1;25292:16;;:2;:16;;;25284:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;25369:14;;;;;;;;;;;:40;;;;25387:16;:22;25404:4;25387:22;;;;;;;;;;;;;;;;;;;;;;;;;25369:40;:64;;;;25413:16;:20;25430:2;25413:20;;;;;;;;;;;;;;;;;;;;;;;;;25369:64;25361:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;25492:1;25482:6;:11;25478:93;;25510:28;25526:4;25532:2;25536:1;25510:15;:28::i;:::-;25553:7;;25478:93;25583:28;25614:24;25632:4;25614:9;:24::i;:::-;25583:55;;25651:12;25690:18;;25666:20;:42;;25651:57;;25739:7;:35;;;;;25763:11;;;;;;;;;;;25739:35;:48;;;;;25778:9;;;;;;;;;;;25777:10;25739:48;:63;;;;;25789:7;:13;25797:4;25789:13;;;;;;;;;;;;;;;;;;;;;;;;;25739:63;:98;;;;;25815:16;:22;25832:4;25815:22;;;;;;;;;;;;;;;;;;;;;;;;;25814:23;25739:98;:132;;;;;25851:16;:20;25868:2;25851:20;;;;;;;;;;;;;;;;;;;;;;;;;25850:21;25739:132;25721:267;;;25910:4;25898:9;;:16;;;;;;;;;;;;;;;;;;25931:11;:9;:11::i;:::-;25971:5;25959:9;;:17;;;;;;;;;;;;;;;;;;25721:267;26016:7;:35;;;;;26040:11;;;;;;;;;;;26016:35;:48;;;;;26055:9;;;;;;;;;;;26054:10;26016:48;:62;;;;;26066:8;:12;26075:2;26066:12;;;;;;;;;;;;;;;;;;;;;;;;;26016:62;:97;;;;;26091:16;:22;26108:4;26091:22;;;;;;;;;;;;;;;;;;;;;;;;;26090:23;26016:97;:131;;;;;26127:16;:20;26144:2;26127:20;;;;;;;;;;;;;;;;;;;;;;;;;26126:21;26016:131;25998:266;;;26186:4;26174:9;;:16;;;;;;;;;;;;;;;;;;26207:11;:9;:11::i;:::-;26247:5;26235:9;;:17;;;;;;;;;;;;;;;;;;25998:266;26276:12;26292:9;;;;;;;;;;;26291:10;26276:25;;26318:16;:22;26335:4;26318:22;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;26344:16;:20;26361:2;26344:20;;;;;;;;;;;;;;;;;;;;;;;;;26318:46;26314:94;;;26391:5;26381:15;;26314:94;26420:12;26453:7;26449:1763;;;26481:7;:11;26489:2;26481:11;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;26508:1;26496:9;;:13;26481:28;26477:417;;;26537:32;26563:5;26537:21;26548:9;;26537:6;:10;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;26530:39;;26658:9;;26626:11;;26619:4;:18;;;;:::i;:::-;26618:49;;;;:::i;:::-;26588:9;;:79;;;;;;;:::i;:::-;;;;;;;;26756:9;;26725:10;;26718:4;:17;;;;:::i;:::-;26717:48;;;;:::i;:::-;26686:10;;:79;;;;;;;:::i;:::-;;;;;;;;26869:9;;26834:14;;26827:4;:21;;;;:::i;:::-;26826:52;;;;:::i;:::-;26784:21;;:94;;;;;;;:::i;:::-;;;;;;;;26477:417;26914:8;:12;26923:2;26914:12;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;26942:1;26930:9;;:13;26914:29;26910:1153;;;26971:32;26997:5;26971:21;26982:9;;26971:6;:10;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;26964:39;;27092:9;;27060:11;;27053:4;:18;;;;:::i;:::-;27052:49;;;;:::i;:::-;27022:9;;:79;;;;;;;:::i;:::-;;;;;;;;27190:9;;27159:10;;27152:4;:17;;;;:::i;:::-;27151:48;;;;:::i;:::-;27120:10;;:79;;;;;;;:::i;:::-;;;;;;;;27303:9;;27268:14;;27261:4;:21;;;;:::i;:::-;27260:52;;;;:::i;:::-;27218:21;;:94;;;;;;;:::i;:::-;;;;;;;;26910:1153;;;27353:7;:13;27361:4;27353:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;27383:1;27370:10;;:14;27353:31;27349:714;;;27412:33;27439:5;27412:22;27423:10;;27412:6;:10;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;27405:40;;27496:10;;27485:7;;27478:4;:14;;;;:::i;:::-;27477:29;;;;:::i;:::-;27464:9;;:42;;;;;;;:::i;:::-;;;;;;;;27560:10;;27547:9;;27540:4;:16;;;;:::i;:::-;27539:31;;;;:::i;:::-;27525:10;;:45;;;;;;;:::i;:::-;;;;;;;;27670:10;;27639;;27632:4;:17;;;;:::i;:::-;27631:49;;;;:::i;:::-;27589:21;;:91;;;;;;;:::i;:::-;;;;;;;;27349:714;;;27719:8;:14;27728:4;27719:14;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;27750:1;27737:10;;:14;27719:32;27715:348;;;27779:33;27806:5;27779:22;27790:10;;27779:6;:10;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;27772:40;;27863:10;;27852:7;;27845:4;:14;;;;:::i;:::-;27844:29;;;;:::i;:::-;27831:9;;:42;;;;;;;:::i;:::-;;;;;;;;27927:10;;27914:9;;27907:4;:16;;;;:::i;:::-;27906:31;;;;:::i;:::-;27892:10;;:45;;;;;;;:::i;:::-;;;;;;;;28037:10;;28006;;27999:4;:17;;;;:::i;:::-;27998:49;;;;:::i;:::-;27956:21;;:91;;;;;;;:::i;:::-;;;;;;;;27715:348;27349:714;26910:1153;28090:1;28083:4;:8;28079:91;;;28112:42;28128:4;28142;28149;28112:15;:42::i;:::-;28079:91;28196:4;28186:14;;;;;:::i;:::-;;;26449:1763;28224:33;28240:4;28246:2;28250:6;28224:15;:33::i;:::-;28280:13;;28268:9;:25;;;;25194:3107;;;;25115:3186;;;;:::o;7063:191::-;7137:16;7156:6;;;;;;;;;;;7137:25;;7182:8;7173:6;;:17;;;;;;;;;;;;;;;;;;7237:8;7206:40;;7227:8;7206:40;;;;;;;;;;;;7126:128;7063:191;:::o;24839:129::-;24920:5;24904:7;:13;24912:4;24904:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;24954:5;24941:19;;24948:4;24941:19;;;;;;;;;;;;24839:129;;:::o;13355:708::-;13504:1;13488:18;;:4;:18;;;13480:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13591:1;13577:16;;:2;:16;;;13569:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13646:38;13667:4;13673:2;13677:6;13646:20;:38::i;:::-;13697:19;13719:9;:15;13729:4;13719:15;;;;;;;;;;;;;;;;13697:37;;13782:6;13767:11;:21;;13745:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:6;13900:11;:20;13882:9;:15;13892:4;13882:15;;;;;;;;;;;;;;;:38;;;;13948:6;13931:9;:13;13941:2;13931:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13994:2;13979:26;;13988:4;13979:26;;;13998:6;13979:26;;;;;;:::i;:::-;;;;;;;;14018:37;14038:4;14044:2;14048:6;14018:19;:37::i;:::-;13469:594;13355:708;;;:::o;29172:1512::-;29213:23;29239:24;29257:4;29239:9;:24::i;:::-;29213:50;;29274:25;29345:21;;29323:10;;29302:9;;:31;;;;:::i;:::-;:64;;;;:::i;:::-;29274:92;;29377:12;29404:23;29500:1;29471:17;29449:9;;29431:15;:27;;;;:::i;:::-;29430:58;;;;:::i;:::-;:71;;;;:::i;:::-;29404:97;;29512:26;29541:36;29561:15;29541;:19;;:36;;;;:::i;:::-;29512:65;;29590:25;29618:21;29590:49;;29652:37;29670:18;29652:17;:37::i;:::-;29702:18;29723:44;29749:17;29723:21;:25;;:44;;;;:::i;:::-;29702:65;;29780:23;29806:73;29851:17;29806:26;29821:10;;29806;:14;;:26;;;;:::i;:::-;:30;;:73;;;;:::i;:::-;29780:99;;29892:25;29920:84;29976:17;29920:37;29935:21;;29920:10;:14;;:37;;;;:::i;:::-;:41;;:84;;;;:::i;:::-;29892:112;;30017:23;30092:17;30065:15;30043:10;:37;;;;:::i;:::-;:66;;;;:::i;:::-;30017:92;;30134:1;30122:9;:13;;;;30159:1;30146:10;:14;;;;30195:1;30171:21;:25;;;;30231:1;30213:15;:19;:42;;;;;30254:1;30236:15;:19;30213:42;30209:270;;;30272:47;30286:15;30303;30272:13;:47::i;:::-;30339:128;30372:18;30409:15;30443:9;;30339:128;;;;;;;;:::i;:::-;;;;;;;;30209:270;30513:17;;;;;;;;;;;30505:31;;30544:17;30505:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30491:75;;;;;30601:15;;;;;;;;;;;30593:29;;30640:21;30593:83;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30579:97;;;;;29202:1482;;;;;;;;;;29172:1512::o;9665:116::-;9741:7;9772:1;9768;:5;;;;:::i;:::-;9761:12;;9665:116;;;;:::o;9789:::-;9865:7;9896:1;9892;:5;;;;:::i;:::-;9885:12;;9789:116;;;;:::o;16015:91::-;;;;:::o;16114:90::-;;;;:::o;9541:116::-;9617:7;9648:1;9644;:5;;;;:::i;:::-;9637:12;;9541:116;;;;:::o;28309:475::-;28377:21;28415:1;28401:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28377:40;;28446:4;28428;28433:1;28428:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;28472:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28462:4;28467:1;28462:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;28507:62;28524:4;28539:15;28557:11;28507:8;:62::i;:::-;28580:15;:66;;;28661:11;28687:1;28703:4;28730;28750:15;28580:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28366:418;28309:475;:::o;28792:372::-;28875:62;28892:4;28907:15;28925:11;28875:8;:62::i;:::-;28950:15;:31;;;28989:9;29022:4;29042:11;29068:1;29084;29100:15;;;;;;;;;;;29130;28950:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28792:372;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:117::-;4885:1;4882;4875:12;4899:180;4947:77;4944:1;4937:88;5044:4;5041:1;5034:15;5068:4;5065:1;5058:15;5085:281;5168:27;5190:4;5168:27;:::i;:::-;5160:6;5156:40;5298:6;5286:10;5283:22;5262:18;5250:10;5247:34;5244:62;5241:88;;;5309:18;;:::i;:::-;5241:88;5349:10;5345:2;5338:22;5128:238;5085:281;;:::o;5372:129::-;5406:6;5433:20;;:::i;:::-;5423:30;;5462:33;5490:4;5482:6;5462:33;:::i;:::-;5372:129;;;:::o;5507:311::-;5584:4;5674:18;5666:6;5663:30;5660:56;;;5696:18;;:::i;:::-;5660:56;5746:4;5738:6;5734:17;5726:25;;5806:4;5800;5796:15;5788:23;;5507:311;;;:::o;5824:117::-;5933:1;5930;5923:12;5964:710;6060:5;6085:81;6101:64;6158:6;6101:64;:::i;:::-;6085:81;:::i;:::-;6076:90;;6186:5;6215:6;6208:5;6201:21;6249:4;6242:5;6238:16;6231:23;;6302:4;6294:6;6290:17;6282:6;6278:30;6331:3;6323:6;6320:15;6317:122;;;6350:79;;:::i;:::-;6317:122;6465:6;6448:220;6482:6;6477:3;6474:15;6448:220;;;6557:3;6586:37;6619:3;6607:10;6586:37;:::i;:::-;6581:3;6574:50;6653:4;6648:3;6644:14;6637:21;;6524:144;6508:4;6503:3;6499:14;6492:21;;6448:220;;;6452:21;6066:608;;5964:710;;;;;:::o;6697:370::-;6768:5;6817:3;6810:4;6802:6;6798:17;6794:27;6784:122;;6825:79;;:::i;:::-;6784:122;6942:6;6929:20;6967:94;7057:3;7049:6;7042:4;7034:6;7030:17;6967:94;:::i;:::-;6958:103;;6774:293;6697:370;;;;:::o;7073:116::-;7143:21;7158:5;7143:21;:::i;:::-;7136:5;7133:32;7123:60;;7179:1;7176;7169:12;7123:60;7073:116;:::o;7195:133::-;7238:5;7276:6;7263:20;7254:29;;7292:30;7316:5;7292:30;:::i;:::-;7195:133;;;;:::o;7334:678::-;7424:6;7432;7481:2;7469:9;7460:7;7456:23;7452:32;7449:119;;;7487:79;;:::i;:::-;7449:119;7635:1;7624:9;7620:17;7607:31;7665:18;7657:6;7654:30;7651:117;;;7687:79;;:::i;:::-;7651:117;7792:78;7862:7;7853:6;7842:9;7838:22;7792:78;:::i;:::-;7782:88;;7578:302;7919:2;7945:50;7987:7;7978:6;7967:9;7963:22;7945:50;:::i;:::-;7935:60;;7890:115;7334:678;;;;;:::o;8018:619::-;8095:6;8103;8111;8160:2;8148:9;8139:7;8135:23;8131:32;8128:119;;;8166:79;;:::i;:::-;8128:119;8286:1;8311:53;8356:7;8347:6;8336:9;8332:22;8311:53;:::i;:::-;8301:63;;8257:117;8413:2;8439:53;8484:7;8475:6;8464:9;8460:22;8439:53;:::i;:::-;8429:63;;8384:118;8541:2;8567:53;8612:7;8603:6;8592:9;8588:22;8567:53;:::i;:::-;8557:63;;8512:118;8018:619;;;;;:::o;8643:118::-;8730:24;8748:5;8730:24;:::i;:::-;8725:3;8718:37;8643:118;;:::o;8767:222::-;8860:4;8898:2;8887:9;8883:18;8875:26;;8911:71;8979:1;8968:9;8964:17;8955:6;8911:71;:::i;:::-;8767:222;;;;:::o;8995:86::-;9030:7;9070:4;9063:5;9059:16;9048:27;;8995:86;;;:::o;9087:112::-;9170:22;9186:5;9170:22;:::i;:::-;9165:3;9158:35;9087:112;;:::o;9205:214::-;9294:4;9332:2;9321:9;9317:18;9309:26;;9345:67;9409:1;9398:9;9394:17;9385:6;9345:67;:::i;:::-;9205:214;;;;:::o;9425:329::-;9484:6;9533:2;9521:9;9512:7;9508:23;9504:32;9501:119;;;9539:79;;:::i;:::-;9501:119;9659:1;9684:53;9729:7;9720:6;9709:9;9705:22;9684:53;:::i;:::-;9674:63;;9630:117;9425:329;;;;:::o;9760:117::-;9869:1;9866;9859:12;9900:568;9973:8;9983:6;10033:3;10026:4;10018:6;10014:17;10010:27;10000:122;;10041:79;;:::i;:::-;10000:122;10154:6;10141:20;10131:30;;10184:18;10176:6;10173:30;10170:117;;;10206:79;;:::i;:::-;10170:117;10320:4;10312:6;10308:17;10296:29;;10374:3;10366:4;10358:6;10354:17;10344:8;10340:32;10337:41;10334:128;;;10381:79;;:::i;:::-;10334:128;9900:568;;;;;:::o;10474:698::-;10566:6;10574;10582;10631:2;10619:9;10610:7;10606:23;10602:32;10599:119;;;10637:79;;:::i;:::-;10599:119;10785:1;10774:9;10770:17;10757:31;10815:18;10807:6;10804:30;10801:117;;;10837:79;;:::i;:::-;10801:117;10950:80;11022:7;11013:6;11002:9;10998:22;10950:80;:::i;:::-;10932:98;;;;10728:312;11079:2;11105:50;11147:7;11138:6;11127:9;11123:22;11105:50;:::i;:::-;11095:60;;11050:115;10474:698;;;;;:::o;11178:474::-;11246:6;11254;11303:2;11291:9;11282:7;11278:23;11274:32;11271:119;;;11309:79;;:::i;:::-;11271:119;11429:1;11454:53;11499:7;11490:6;11479:9;11475:22;11454:53;:::i;:::-;11444:63;;11400:117;11556:2;11582:53;11627:7;11618:6;11607:9;11603:22;11582:53;:::i;:::-;11572:63;;11527:118;11178:474;;;;;:::o;11658:180::-;11706:77;11703:1;11696:88;11803:4;11800:1;11793:15;11827:4;11824:1;11817:15;11844:320;11888:6;11925:1;11919:4;11915:12;11905:22;;11972:1;11966:4;11962:12;11993:18;11983:81;;12049:4;12041:6;12037:17;12027:27;;11983:81;12111:2;12103:6;12100:14;12080:18;12077:38;12074:84;;12130:18;;:::i;:::-;12074:84;11895:269;11844:320;;;:::o;12170:180::-;12218:77;12215:1;12208:88;12315:4;12312:1;12305:15;12339:4;12336:1;12329:15;12356:168;12496:20;12492:1;12484:6;12480:14;12473:44;12356:168;:::o;12530:366::-;12672:3;12693:67;12757:2;12752:3;12693:67;:::i;:::-;12686:74;;12769:93;12858:3;12769:93;:::i;:::-;12887:2;12882:3;12878:12;12871:19;;12530:366;;;:::o;12902:419::-;13068:4;13106:2;13095:9;13091:18;13083:26;;13155:9;13149:4;13145:20;13141:1;13130:9;13126:17;13119:47;13183:131;13309:4;13183:131;:::i;:::-;13175:139;;12902:419;;;:::o;13327:180::-;13375:77;13372:1;13365:88;13472:4;13469:1;13462:15;13496:4;13493:1;13486:15;13513:233;13552:3;13575:24;13593:5;13575:24;:::i;:::-;13566:33;;13621:66;13614:5;13611:77;13608:103;;13691:18;;:::i;:::-;13608:103;13738:1;13731:5;13727:13;13720:20;;13513:233;;;:::o;13752:191::-;13792:3;13811:20;13829:1;13811:20;:::i;:::-;13806:25;;13845:20;13863:1;13845:20;:::i;:::-;13840:25;;13888:1;13885;13881:9;13874:16;;13909:3;13906:1;13903:10;13900:36;;;13916:18;;:::i;:::-;13900:36;13752:191;;;;:::o;13949:163::-;14089:15;14085:1;14077:6;14073:14;14066:39;13949:163;:::o;14118:366::-;14260:3;14281:67;14345:2;14340:3;14281:67;:::i;:::-;14274:74;;14357:93;14446:3;14357:93;:::i;:::-;14475:2;14470:3;14466:12;14459:19;;14118:366;;;:::o;14490:419::-;14656:4;14694:2;14683:9;14679:18;14671:26;;14743:9;14737:4;14733:20;14729:1;14718:9;14714:17;14707:47;14771:131;14897:4;14771:131;:::i;:::-;14763:139;;14490:419;;;:::o;14915:224::-;15055:34;15051:1;15043:6;15039:14;15032:58;15124:7;15119:2;15111:6;15107:15;15100:32;14915:224;:::o;15145:366::-;15287:3;15308:67;15372:2;15367:3;15308:67;:::i;:::-;15301:74;;15384:93;15473:3;15384:93;:::i;:::-;15502:2;15497:3;15493:12;15486:19;;15145:366;;;:::o;15517:419::-;15683:4;15721:2;15710:9;15706:18;15698:26;;15770:9;15764:4;15760:20;15756:1;15745:9;15741:17;15734:47;15798:131;15924:4;15798:131;:::i;:::-;15790:139;;15517:419;;;:::o;15942:225::-;16082:34;16078:1;16070:6;16066:14;16059:58;16151:8;16146:2;16138:6;16134:15;16127:33;15942:225;:::o;16173:366::-;16315:3;16336:67;16400:2;16395:3;16336:67;:::i;:::-;16329:74;;16412:93;16501:3;16412:93;:::i;:::-;16530:2;16525:3;16521:12;16514:19;;16173:366;;;:::o;16545:419::-;16711:4;16749:2;16738:9;16734:18;16726:26;;16798:9;16792:4;16788:20;16784:1;16773:9;16769:17;16762:47;16826:131;16952:4;16826:131;:::i;:::-;16818:139;;16545:419;;;:::o;16970:223::-;17110:34;17106:1;17098:6;17094:14;17087:58;17179:6;17174:2;17166:6;17162:15;17155:31;16970:223;:::o;17199:366::-;17341:3;17362:67;17426:2;17421:3;17362:67;:::i;:::-;17355:74;;17438:93;17527:3;17438:93;:::i;:::-;17556:2;17551:3;17547:12;17540:19;;17199:366;;;:::o;17571:419::-;17737:4;17775:2;17764:9;17760:18;17752:26;;17824:9;17818:4;17814:20;17810:1;17799:9;17795:17;17788:47;17852:131;17978:4;17852:131;:::i;:::-;17844:139;;17571:419;;;:::o;17996:221::-;18136:34;18132:1;18124:6;18120:14;18113:58;18205:4;18200:2;18192:6;18188:15;18181:29;17996:221;:::o;18223:366::-;18365:3;18386:67;18450:2;18445:3;18386:67;:::i;:::-;18379:74;;18462:93;18551:3;18462:93;:::i;:::-;18580:2;18575:3;18571:12;18564:19;;18223:366;;;:::o;18595:419::-;18761:4;18799:2;18788:9;18784:18;18776:26;;18848:9;18842:4;18838:20;18834:1;18823:9;18819:17;18812:47;18876:131;19002:4;18876:131;:::i;:::-;18868:139;;18595:419;;;:::o;19020:182::-;19160:34;19156:1;19148:6;19144:14;19137:58;19020:182;:::o;19208:366::-;19350:3;19371:67;19435:2;19430:3;19371:67;:::i;:::-;19364:74;;19447:93;19536:3;19447:93;:::i;:::-;19565:2;19560:3;19556:12;19549:19;;19208:366;;;:::o;19580:419::-;19746:4;19784:2;19773:9;19769:18;19761:26;;19833:9;19827:4;19823:20;19819:1;19808:9;19804:17;19797:47;19861:131;19987:4;19861:131;:::i;:::-;19853:139;;19580:419;;;:::o;20005:179::-;20145:31;20141:1;20133:6;20129:14;20122:55;20005:179;:::o;20190:366::-;20332:3;20353:67;20417:2;20412:3;20353:67;:::i;:::-;20346:74;;20429:93;20518:3;20429:93;:::i;:::-;20547:2;20542:3;20538:12;20531:19;;20190:366;;;:::o;20562:419::-;20728:4;20766:2;20755:9;20751:18;20743:26;;20815:9;20809:4;20805:20;20801:1;20790:9;20786:17;20779:47;20843:131;20969:4;20843:131;:::i;:::-;20835:139;;20562:419;;;:::o;20987:224::-;21127:34;21123:1;21115:6;21111:14;21104:58;21196:7;21191:2;21183:6;21179:15;21172:32;20987:224;:::o;21217:366::-;21359:3;21380:67;21444:2;21439:3;21380:67;:::i;:::-;21373:74;;21456:93;21545:3;21456:93;:::i;:::-;21574:2;21569:3;21565:12;21558:19;;21217:366;;;:::o;21589:419::-;21755:4;21793:2;21782:9;21778:18;21770:26;;21842:9;21836:4;21832:20;21828:1;21817:9;21813:17;21806:47;21870:131;21996:4;21870:131;:::i;:::-;21862:139;;21589:419;;;:::o;22014:222::-;22154:34;22150:1;22142:6;22138:14;22131:58;22223:5;22218:2;22210:6;22206:15;22199:30;22014:222;:::o;22242:366::-;22384:3;22405:67;22469:2;22464:3;22405:67;:::i;:::-;22398:74;;22481:93;22570:3;22481:93;:::i;:::-;22599:2;22594:3;22590:12;22583:19;;22242:366;;;:::o;22614:419::-;22780:4;22818:2;22807:9;22803:18;22795:26;;22867:9;22861:4;22857:20;22853:1;22842:9;22838:17;22831:47;22895:131;23021:4;22895:131;:::i;:::-;22887:139;;22614:419;;;:::o;23039:179::-;23179:31;23175:1;23167:6;23163:14;23156:55;23039:179;:::o;23224:366::-;23366:3;23387:67;23451:2;23446:3;23387:67;:::i;:::-;23380:74;;23463:93;23552:3;23463:93;:::i;:::-;23581:2;23576:3;23572:12;23565:19;;23224:366;;;:::o;23596:419::-;23762:4;23800:2;23789:9;23785:18;23777:26;;23849:9;23843:4;23839:20;23835:1;23824:9;23820:17;23813:47;23877:131;24003:4;23877:131;:::i;:::-;23869:139;;23596:419;;;:::o;24021:410::-;24061:7;24084:20;24102:1;24084:20;:::i;:::-;24079:25;;24118:20;24136:1;24118:20;:::i;:::-;24113:25;;24173:1;24170;24166:9;24195:30;24213:11;24195:30;:::i;:::-;24184:41;;24374:1;24365:7;24361:15;24358:1;24355:22;24335:1;24328:9;24308:83;24285:139;;24404:18;;:::i;:::-;24285:139;24069:362;24021:410;;;;:::o;24437:180::-;24485:77;24482:1;24475:88;24582:4;24579:1;24572:15;24606:4;24603:1;24596:15;24623:185;24663:1;24680:20;24698:1;24680:20;:::i;:::-;24675:25;;24714:20;24732:1;24714:20;:::i;:::-;24709:25;;24753:1;24743:35;;24758:18;;:::i;:::-;24743:35;24800:1;24797;24793:9;24788:14;;24623:185;;;;:::o;24814:194::-;24854:4;24874:20;24892:1;24874:20;:::i;:::-;24869:25;;24908:20;24926:1;24908:20;:::i;:::-;24903:25;;24952:1;24949;24945:9;24937:17;;24976:1;24970:4;24967:11;24964:37;;;24981:18;;:::i;:::-;24964:37;24814:194;;;;:::o;25014:234::-;25154:34;25150:1;25142:6;25138:14;25131:58;25223:17;25218:2;25210:6;25206:15;25199:42;25014:234;:::o;25254:366::-;25396:3;25417:67;25481:2;25476:3;25417:67;:::i;:::-;25410:74;;25493:93;25582:3;25493:93;:::i;:::-;25611:2;25606:3;25602:12;25595:19;;25254:366;;;:::o;25626:419::-;25792:4;25830:2;25819:9;25815:18;25807:26;;25879:9;25873:4;25869:20;25865:1;25854:9;25850:17;25843:47;25907:131;26033:4;25907:131;:::i;:::-;25899:139;;25626:419;;;:::o;26051:225::-;26191:34;26187:1;26179:6;26175:14;26168:58;26260:8;26255:2;26247:6;26243:15;26236:33;26051:225;:::o;26282:366::-;26424:3;26445:67;26509:2;26504:3;26445:67;:::i;:::-;26438:74;;26521:93;26610:3;26521:93;:::i;:::-;26639:2;26634:3;26630:12;26623:19;;26282:366;;;:::o;26654:419::-;26820:4;26858:2;26847:9;26843:18;26835:26;;26907:9;26901:4;26897:20;26893:1;26882:9;26878:17;26871:47;26935:131;27061:4;26935:131;:::i;:::-;26927:139;;26654:419;;;:::o;27079:442::-;27228:4;27266:2;27255:9;27251:18;27243:26;;27279:71;27347:1;27336:9;27332:17;27323:6;27279:71;:::i;:::-;27360:72;27428:2;27417:9;27413:18;27404:6;27360:72;:::i;:::-;27442;27510:2;27499:9;27495:18;27486:6;27442:72;:::i;:::-;27079:442;;;;;;:::o;27527:147::-;27628:11;27665:3;27650:18;;27527:147;;;;:::o;27680:114::-;;:::o;27800:398::-;27959:3;27980:83;28061:1;28056:3;27980:83;:::i;:::-;27973:90;;28072:93;28161:3;28072:93;:::i;:::-;28190:1;28185:3;28181:11;28174:18;;27800:398;;;:::o;28204:379::-;28388:3;28410:147;28553:3;28410:147;:::i;:::-;28403:154;;28574:3;28567:10;;28204:379;;;:::o;28589:143::-;28646:5;28677:6;28671:13;28662:22;;28693:33;28720:5;28693:33;:::i;:::-;28589:143;;;;:::o;28738:351::-;28808:6;28857:2;28845:9;28836:7;28832:23;28828:32;28825:119;;;28863:79;;:::i;:::-;28825:119;28983:1;29008:64;29064:7;29055:6;29044:9;29040:22;29008:64;:::i;:::-;28998:74;;28954:128;28738:351;;;;:::o;29095:85::-;29140:7;29169:5;29158:16;;29095:85;;;:::o;29186:158::-;29244:9;29277:61;29295:42;29304:32;29330:5;29304:32;:::i;:::-;29295:42;:::i;:::-;29277:61;:::i;:::-;29264:74;;29186:158;;;:::o;29350:147::-;29445:45;29484:5;29445:45;:::i;:::-;29440:3;29433:58;29350:147;;:::o;29503:114::-;29570:6;29604:5;29598:12;29588:22;;29503:114;;;:::o;29623:184::-;29722:11;29756:6;29751:3;29744:19;29796:4;29791:3;29787:14;29772:29;;29623:184;;;;:::o;29813:132::-;29880:4;29903:3;29895:11;;29933:4;29928:3;29924:14;29916:22;;29813:132;;;:::o;29951:108::-;30028:24;30046:5;30028:24;:::i;:::-;30023:3;30016:37;29951:108;;:::o;30065:179::-;30134:10;30155:46;30197:3;30189:6;30155:46;:::i;:::-;30233:4;30228:3;30224:14;30210:28;;30065:179;;;;:::o;30250:113::-;30320:4;30352;30347:3;30343:14;30335:22;;30250:113;;;:::o;30399:732::-;30518:3;30547:54;30595:5;30547:54;:::i;:::-;30617:86;30696:6;30691:3;30617:86;:::i;:::-;30610:93;;30727:56;30777:5;30727:56;:::i;:::-;30806:7;30837:1;30822:284;30847:6;30844:1;30841:13;30822:284;;;30923:6;30917:13;30950:63;31009:3;30994:13;30950:63;:::i;:::-;30943:70;;31036:60;31089:6;31036:60;:::i;:::-;31026:70;;30882:224;30869:1;30866;30862:9;30857:14;;30822:284;;;30826:14;31122:3;31115:10;;30523:608;;;30399:732;;;;:::o;31137:831::-;31400:4;31438:3;31427:9;31423:19;31415:27;;31452:71;31520:1;31509:9;31505:17;31496:6;31452:71;:::i;:::-;31533:80;31609:2;31598:9;31594:18;31585:6;31533:80;:::i;:::-;31660:9;31654:4;31650:20;31645:2;31634:9;31630:18;31623:48;31688:108;31791:4;31782:6;31688:108;:::i;:::-;31680:116;;31806:72;31874:2;31863:9;31859:18;31850:6;31806:72;:::i;:::-;31888:73;31956:3;31945:9;31941:19;31932:6;31888:73;:::i;:::-;31137:831;;;;;;;;:::o;31974:807::-;32223:4;32261:3;32250:9;32246:19;32238:27;;32275:71;32343:1;32332:9;32328:17;32319:6;32275:71;:::i;:::-;32356:72;32424:2;32413:9;32409:18;32400:6;32356:72;:::i;:::-;32438:80;32514:2;32503:9;32499:18;32490:6;32438:80;:::i;:::-;32528;32604:2;32593:9;32589:18;32580:6;32528:80;:::i;:::-;32618:73;32686:3;32675:9;32671:19;32662:6;32618:73;:::i;:::-;32701;32769:3;32758:9;32754:19;32745:6;32701:73;:::i;:::-;31974:807;;;;;;;;;:::o;32787:143::-;32844:5;32875:6;32869:13;32860:22;;32891:33;32918:5;32891:33;:::i;:::-;32787:143;;;;:::o;32936:663::-;33024:6;33032;33040;33089:2;33077:9;33068:7;33064:23;33060:32;33057:119;;;33095:79;;:::i;:::-;33057:119;33215:1;33240:64;33296:7;33287:6;33276:9;33272:22;33240:64;:::i;:::-;33230:74;;33186:128;33353:2;33379:64;33435:7;33426:6;33415:9;33411:22;33379:64;:::i;:::-;33369:74;;33324:129;33492:2;33518:64;33574:7;33565:6;33554:9;33550:22;33518:64;:::i;:::-;33508:74;;33463:129;32936:663;;;;;:::o
Swarm Source
ipfs://4b90c96f2a2c84c5d5e98ef9f720f01c9a4039a7e10f200d0fe01ee68c67cabe
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.