More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 6 from a total of 6 transactions
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
9774025 | 21 hrs ago | Contract Creation | 0 S |
Loading...
Loading
Contract Name:
Test3
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-24 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; /* ────────────────────────────────────────────────────────────── */ /* CONTEXT & OWNABLE */ /* ────────────────────────────────────────────────────────────── */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_msgSender() == _owner, "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is zero"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } /* ────────────────────────────────────────────────────────────── */ /* ERC20 INTERFACES & IMPLEMENTATION */ /* ────────────────────────────────────────────────────────────── */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from,address indexed to,uint256 value); event Approval(address indexed owner,address indexed spender,uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 internal _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view override returns (string memory) { return _name; } function symbol() public view override returns (string memory) { return _symbol; } function decimals() public pure override returns (uint8) { return 18; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0) && recipient != address(0), "ERC20: zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: insufficient balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to zero"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0) && spender != address(0), "ERC20: zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } /* ────────────────────────────────────────────────────────────── */ /* SAFE MATH LIBRARIES */ /* ────────────────────────────────────────────────────────────── */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if(a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256), "SafeMathInt: multiplication overflow"); require(b == 0 || c / b == a, "SafeMathInt: multiplication overflow"); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256, "SafeMathInt: division overflow"); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a), "SafeMathInt: subtraction overflow"); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a), "SafeMathInt: addition overflow"); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256, "SafeMathInt: abs overflow"); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0, "SafeMathInt: negative to uint"); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0, "SafeMathUint: overflow"); return b; } } /* ────────────────────────────────────────────────────────────── */ /* Uniswap V2 FACTORY & ROUTER INTERFACES (SONIC) */ /* ────────────────────────────────────────────────────────────── */ /* NOTE: The key fix is using WETH() instead of WSONIC(). */ interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); // <--- Use WETH instead of WSONIC function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 tokenAmount, uint256 minETH, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 tokenAmount, uint256 minTokens, address[] calldata path, address to, uint256 deadline ) external; } /* ────────────────────────────────────────────────────────────── */ /* DIVIDEND TRACKER CONTRACT */ /* ────────────────────────────────────────────────────────────── */ contract DividendTracker is Ownable { using SafeMathInt for int256; using SafeMath for uint256; uint256 constant internal magnitude = 2**128; address public rewardToken; uint256 public magnifiedDividendPerShare; mapping(address => uint256) public holderBalance; uint256 public totalBalance; mapping(address => int256) public magnifiedDividendCorrections; mapping(address => uint256) public withdrawnDividends; event DividendsDistributed(address indexed from, uint256 amount); event DividendClaimed(address indexed account, uint256 amount); constructor(address _rewardToken) { rewardToken = _rewardToken; } function distributeDividends(uint256 amount) external onlyOwner { require(totalBalance > 0, "DividendTracker: no holders"); magnifiedDividendPerShare = magnifiedDividendPerShare.add( amount.mul(magnitude).div(totalBalance) ); emit DividendsDistributed(msg.sender, amount); } function setBalance(address account, uint256 newBalance) external onlyOwner { uint256 current = holderBalance[account]; holderBalance[account] = newBalance; if(newBalance > current) { uint256 inc = newBalance.sub(current); magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account].sub( int256(magnifiedDividendPerShare.mul(inc)) ); totalBalance = totalBalance.add(inc); } else if(newBalance < current) { uint256 dec = current.sub(newBalance); magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account].add( int256(magnifiedDividendPerShare.mul(dec)) ); totalBalance = totalBalance.sub(dec); } } function withdrawableDividendOf(address account) public view returns (uint256) { int256 accumulative = int256(holderBalance[account].mul(magnifiedDividendPerShare)) + magnifiedDividendCorrections[account]; if(accumulative < 0) return 0; uint256 totalAccumulated = uint256(accumulative) / magnitude; if(totalAccumulated <= withdrawnDividends[account]) return 0; return totalAccumulated.sub(withdrawnDividends[account]); } function processAccount(address account) external onlyOwner returns (uint256) { uint256 amount = withdrawableDividendOf(account); if(amount > 0) { withdrawnDividends[account] = withdrawnDividends[account].add(amount); IERC20(rewardToken).transfer(account, amount); emit DividendClaimed(account, amount); } return amount; } } /* ────────────────────────────────────────────────────────────── */ /* MAIN TOKEN CONTRACT: TEST3 */ /* ────────────────────────────────────────────────────────────── */ contract Test3 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public UniswapV2Router; address public UniswapV2Pair; // Tax wallet for marketing funds. address public taxWallet; // Reward token (wSONIC) for dividends. address public rewardToken; // Dividend tracker instance. DividendTracker public dividendTracker; // Limits and thresholds. uint256 public maxWallet; uint256 public swapTokensAtAmount; bool public limitsInEffect = true; bool private swapping; // Fee structure (in basis points out of 1000): uint256 public rewardsFeeBuy = 30; // 3% uint256 public taxFeeBuy = 20; // 2% uint256 public totalBuyFees = 50; // 5% uint256 public rewardsFeeSell = 30; // 3% uint256 public taxFeeSell = 20; // 2% uint256 public totalSellFees = 50; // 5% // Accumulated fee counters. uint256 public tokensForRewards; uint256 public tokensForTax; // Mapping to track fee exclusion. mapping(address => bool) private _isExcludedFromFees; constructor() ERC20("Test4", "TEST4") { uint256 totalSupply = 1 * 1e6 * 1e18; // 1,000,000 supply, example _mint(msg.sender, totalSupply); // Set max wallet to 2% of supply. maxWallet = totalSupply.mul(2).div(100); // Set swap threshold to 0.2% of supply. swapTokensAtAmount = totalSupply.mul(2).div(1000); // Set initial tax wallet to deployer. taxWallet = msg.sender; // Hardcode the reward token to wSONIC (the actual address). rewardToken = 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38; // Initialize dividend tracker. dividendTracker = new DividendTracker(rewardToken); // Initialize router & pair - using WETH() instead of WSONIC(). UniswapV2Router = IUniswapV2Router02(0x95a7e403d7cF20F675fF9273D66e94d35ba49fA3); UniswapV2Pair = IUniswapV2Factory(UniswapV2Router.factory()) .createPair(address(this), UniswapV2Router.WETH()); // Exclude owner and contract from fees. _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; } /* ───────────────────────── ADMIN FUNCTIONS ───────────────────────── */ function claim() external { dividendTracker.processAccount(msg.sender); } function removeLimits() external onlyOwner { limitsInEffect = false; } function updateBuyFees(uint256 _newRewardsFeeBuy, uint256 _newTaxFeeBuy) external onlyOwner { rewardsFeeBuy = _newRewardsFeeBuy; taxFeeBuy = _newTaxFeeBuy; totalBuyFees = _newRewardsFeeBuy + _newTaxFeeBuy; require(totalBuyFees <= 100, "Buy fees too high"); } function updateSellFees(uint256 _newRewardsFeeSell, uint256 _newTaxFeeSell) external onlyOwner { rewardsFeeSell = _newRewardsFeeSell; taxFeeSell = _newTaxFeeSell; totalSellFees = _newRewardsFeeSell + _newTaxFeeSell; require(totalSellFees <= 100, "Sell fees too high"); } function updateMaxWalletAmount(uint256 newMaxWallet) external onlyOwner { maxWallet = newMaxWallet; } function updateTaxWallet(address newTaxWallet) external onlyOwner { require(newTaxWallet != address(0), "Zero address"); taxWallet = newTaxWallet; } function updateRewardToken(address newRewardToken) external onlyOwner { require(newRewardToken != address(0), "Zero address"); rewardToken = newRewardToken; dividendTracker = new DividendTracker(newRewardToken); } function updateRouter(address newRouter) external onlyOwner { require(newRouter != address(0), "Zero address"); UniswapV2Router = IUniswapV2Router02(newRouter); UniswapV2Pair = IUniswapV2Factory(UniswapV2Router.factory()) .createPair(address(this), UniswapV2Router.WETH()); } function excludeFromFees(address account, bool excluded) external onlyOwner { _isExcludedFromFees[account] = excluded; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } } /* ───────────────────── CORE TRANSFER & FEE LOGIC ───────────────────── */ // Trading is always enabled. function _transfer(address from, address to, uint256 amount) internal override { // Enforce max wallet if limits are active (except for pair and owner). if(limitsInEffect && to != UniswapV2Pair && to != owner()) { require(balanceOf(to).add(amount) <= maxWallet, "Exceeds max wallet"); } uint256 fees = 0; if(!swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && from != owner() && to != owner()){ if(from == UniswapV2Pair) { // Buy fees = amount.mul(totalBuyFees).div(1000); tokensForRewards = tokensForRewards.add(fees.mul(rewardsFeeBuy).div(totalBuyFees)); tokensForTax = tokensForTax.add(fees.mul(taxFeeBuy).div(totalBuyFees)); } else if(to == UniswapV2Pair) { // Sell fees = amount.mul(totalSellFees).div(1000); tokensForRewards = tokensForRewards.add(fees.mul(rewardsFeeSell).div(totalSellFees)); tokensForTax = tokensForTax.add(fees.mul(taxFeeSell).div(totalSellFees)); } } if(fees > 0) { super._transfer(from, address(this), fees); amount = amount.sub(fees); } super._transfer(from, to, amount); // Update dividend tracker balances. dividendTracker.setBalance(from, balanceOf(from)); dividendTracker.setBalance(to, balanceOf(to)); // Auto-process dividends for both sender and recipient. if(!swapping) { swapping = true; dividendTracker.processAccount(from); dividendTracker.processAccount(to); swapping = false; } // If the contract's token balance exceeds the swap threshold and the transfer is not a buy, trigger swapBack. if(!swapping && balanceOf(address(this)) >= swapTokensAtAmount && from != UniswapV2Pair) { swapBack(); } } /* ───────────────────── SWAP & DIVIDEND PROCESSING ───────────────────── */ function swapBack() private { swapping = true; uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForRewards.add(tokensForTax); if(contractBalance == 0 || totalTokensToSwap == 0) { swapping = false; return; } uint256 taxPortion = tokensForTax; uint256 rewardsPortion = tokensForRewards; tokensForTax = 0; tokensForRewards = 0; // Swap tax portion for ETH and send to tax wallet. swapTokensForEth(taxPortion); (bool sent, ) = taxWallet.call{value: address(this).balance}(""); require(sent, "ETH transfer failed"); // Swap rewards portion for the reward token and distribute dividends. uint256 initialRewardBal = IERC20(rewardToken).balanceOf(address(this)); swapTokensForReward(rewardsPortion); uint256 newRewardBal = IERC20(rewardToken).balanceOf(address(this)).sub(initialRewardBal); if(newRewardBal > 0) { dividendTracker.distributeDividends(newRewardBal); } swapping = false; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); // Use WETH() instead of WSONIC() path[1] = UniswapV2Router.WETH(); _approve(address(this), address(UniswapV2Router), tokenAmount); UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForReward(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); // Use WETH() instead of WSONIC() path[1] = UniswapV2Router.WETH(); path[2] = rewardToken; _approve(address(this), address(UniswapV2Router), tokenAmount); UniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } // Allow the contract to receive ETH from swaps. receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dividendTracker","outputs":[{"internalType":"contract DividendTracker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"taxFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRewardsFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_newTaxFeeBuy","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRewardToken","type":"address"}],"name":"updateRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRewardsFeeSell","type":"uint256"},{"internalType":"uint256","name":"_newTaxFeeSell","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600d805460ff19166001179055601e600e8190556014600f819055603260108190556011929092556012556013553480156200003e575f80fd5b506040518060400160405280600581526020016415195cdd0d60da1b81525060405180604001604052806005815260200164151154d50d60da1b81525081600390816200008c91906200063a565b5060046200009b82826200063a565b50620000a79150503390565b600580546001600160a01b0319166001600160a01b039290921691821790556040515f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a369d3c21bcecceda100000062000107338262000396565b6200012160646200011a8360026200047c565b906200050b565b600b55620001386103e86200011a8360026200047c565b600c5560088054336001600160a01b0319918216179091556009805473039e2fb66102314ce7b64ce5ce3e5183bc94ad389216821790556040516200017d906200058c565b6001600160a01b039091168152602001604051809103905ff080158015620001a7573d5f803e3d5ffd5b50600a80546001600160a01b03929092166001600160a01b0319928316179055600680549091167395a7e403d7cf20f675ff9273d66e94d35ba49fa39081179091556040805163c45a015560e01b8152905163c45a0155916004818101926020929091908290030181865afa15801562000223573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000249919062000702565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000702565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200031a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000340919062000702565b600780546001600160a01b0319166001600160a01b03928316179055600554165f90815260166020526040808220805460ff199081166001908117909255308452919092208054909116909117905550620007db565b6001600160a01b038216620003f25760405162461bcd60e51b815260206004820152601360248201527f45524332303a206d696e7420746f207a65726f0000000000000000000000000060448201526064015b60405180910390fd5b8060025f8282546200040591906200073e565b90915550506001600160a01b0382165f9081526020819052604081208054839290620004339084906200073e565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f825f036200048d57505f62000505565b5f6200049a838562000754565b905082620004a985836200076e565b14620005025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620003e9565b90505b92915050565b5f6200050283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055460201b60201c565b5f8183620005775760405162461bcd60e51b8152600401620003e991906200078e565b506200058483856200076e565b949350505050565b610cf8806200398283390190565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005c357607f821691505b602082108103620005e257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000635575f81815260208120601f850160051c81016020861015620006105750805b601f850160051c820191505b8181101562000631578281556001016200061c565b5050505b505050565b81516001600160401b038111156200065657620006566200059a565b6200066e81620006678454620005ae565b84620005e8565b602080601f831160018114620006a4575f84156200068c5750858301515b5f19600386901b1c1916600185901b17855562000631565b5f85815260208120601f198616915b82811015620006d457888601518255948401946001909101908401620006b3565b5085821015620006f257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000713575f80fd5b81516001600160a01b038116811462000502575f80fd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156200050557620005056200072a565b80820281158282048414176200050557620005056200072a565b5f826200078957634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b81811015620007bb578581018301518582016040015282016200079d565b505f604082860101526040601f19601f8301168501019250505092915050565b61319980620007e95f395ff3fe60806040526004361062000266575f3560e01c8063751039fc1162000142578063d0a3981411620000b6578063f2fde38b1162000076578063f2fde38b146200070c578063f54afa781462000730578063f7c618c11462000747578063f8b45b051462000768578063f8cf31cb146200077f575f80fd5b8063d0a39814146200065e578063d20c50d51462000675578063dd62ed3e1462000696578063e17527e214620006de578063e2f4560514620006f5575f80fd5b8063b9e937001162000102578063b9e9370014620005b7578063c024666814620005ce578063c18bc19514620005f2578063c492f0461462000616578063c851cc32146200063a575f80fd5b8063751039fc14620005225780638da5cb5b146200053957806395d89b411462000558578063a457c2d7146200056f578063a9059cbb1462000593575f80fd5b80633950935111620001da5780636a6a126f116200019a5780636a6a126f14620004815780636d7adcad146200049857806370a0823114620004af578063715018a614620004e757806374c9f60314620004fe575f80fd5b80633950935114620003f05780633978f4e314620004145780634a62bb65146200042b5780634e71d92d146200044657806366ca9b83146200045d575f80fd5b806318160ddd116200022657806318160ddd146200035757806323b872dd146200036d5780632c1f521614620003915780632dc0562d14620003b2578063313ce56714620003d3575f80fd5b806302dbd8f8146200027257806303898c171462000298578063055add0d14620002c257806306fdde0314620002fc578063095ea7b31462000322575f80fd5b366200026e57005b5f80fd5b3480156200027e575f80fd5b50620002966200029036600462002050565b620007a3565b005b348015620002a4575f80fd5b50620002af60115481565b6040519081526020015b60405180910390f35b348015620002ce575f80fd5b50600654620002e3906001600160a01b031681565b6040516001600160a01b039091168152602001620002b9565b34801562000308575f80fd5b506200031362000848565b604051620002b9919062002071565b3480156200032e575f80fd5b506200034662000340366004620020d3565b620008e0565b6040519015158152602001620002b9565b34801562000363575f80fd5b50600254620002af565b34801562000379575f80fd5b50620003466200038b36600462002100565b620008f8565b3480156200039d575f80fd5b50600a54620002e3906001600160a01b031681565b348015620003be575f80fd5b50600854620002e3906001600160a01b031681565b348015620003df575f80fd5b5060405160128152602001620002b9565b348015620003fc575f80fd5b50620003466200040e366004620020d3565b6200099f565b34801562000420575f80fd5b50620002af600f5481565b34801562000437575f80fd5b50600d54620003469060ff1681565b34801562000452575f80fd5b5062000296620009de565b34801562000469575f80fd5b50620002966200047b36600462002050565b62000a4f565b3480156200048d575f80fd5b50620002af60125481565b348015620004a4575f80fd5b50620002af60155481565b348015620004bb575f80fd5b50620002af620004cd36600462002143565b6001600160a01b03165f9081526020819052604090205490565b348015620004f3575f80fd5b506200029662000ae6565b3480156200050a575f80fd5b50620002966200051c36600462002143565b62000b65565b3480156200052e575f80fd5b506200029662000be6565b34801562000545575f80fd5b506005546001600160a01b0316620002e3565b34801562000564575f80fd5b506200031362000c28565b3480156200057b575f80fd5b50620003466200058d366004620020d3565b62000c39565b3480156200059f575f80fd5b5062000346620005b1366004620020d3565b62000cd5565b348015620005c3575f80fd5b50620002af60105481565b348015620005da575f80fd5b5062000296620005ec36600462002176565b62000ce3565b348015620005fe575f80fd5b506200029662000610366004620021ae565b62000d43565b34801562000622575f80fd5b506200029662000634366004620021c6565b62000d7e565b34801562000646575f80fd5b50620002966200065836600462002143565b62000e31565b3480156200066a575f80fd5b50620002af60135481565b34801562000681575f80fd5b50600754620002e3906001600160a01b031681565b348015620006a2575f80fd5b50620002af620006b43660046200224a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015620006ea575f80fd5b50620002af600e5481565b34801562000701575f80fd5b50620002af600c5481565b34801562000718575f80fd5b50620002966200072a36600462002143565b62001028565b3480156200073c575f80fd5b50620002af60145481565b34801562000753575f80fd5b50600954620002e3906001600160a01b031681565b34801562000774575f80fd5b50620002af600b5481565b3480156200078b575f80fd5b50620002966200079d36600462002143565b62001111565b6005546001600160a01b0316336001600160a01b031614620007e25760405162461bcd60e51b8152600401620007d99062002286565b60405180910390fd5b60118290556012819055620007f88183620022cf565b601381905560641015620008445760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401620007d9565b5050565b6060600380546200085990620022e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200088790620022e5565b8015620008d65780601f10620008ac57610100808354040283529160200191620008d6565b820191905f5260205f20905b815481529060010190602001808311620008b857829003601f168201915b5050505050905090565b5f620008ee338484620011e9565b5060015b92915050565b5f62000906848484620012ae565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015620009855760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e73666572206578636565647320616c6c6f77616e636044820152606560f81b6064820152608401620007d9565b620009948533858403620011e9565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091620008ee918590620009d8908690620022cf565b620011e9565b600a5460405163807ab4f760e01b81523360048201526001600160a01b039091169063807ab4f7906024016020604051808303815f875af115801562000a26573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a4c91906200231f565b50565b6005546001600160a01b0316336001600160a01b03161462000a855760405162461bcd60e51b8152600401620007d99062002286565b600e829055600f81905562000a9b8183620022cf565b601081905560641015620008445760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401620007d9565b6005546001600160a01b0316336001600160a01b03161462000b1c5760405162461bcd60e51b8152600401620007d99062002286565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b03161462000b9b5760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03811662000bc45760405162461bcd60e51b8152600401620007d99062002337565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b03161462000c1c5760405162461bcd60e51b8152600401620007d99062002286565b600d805460ff19169055565b6060600480546200085990620022e5565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101562000cbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401620007d9565b62000ccb3385858403620011e9565b5060019392505050565b5f620008ee338484620012ae565b6005546001600160a01b0316336001600160a01b03161462000d195760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316336001600160a01b03161462000d795760405162461bcd60e51b8152600401620007d99062002286565b600b55565b6005546001600160a01b0316336001600160a01b03161462000db45760405162461bcd60e51b8152600401620007d99062002286565b5f5b8281101562000e2b578160165f86868581811062000dd85762000dd86200235d565b905060200201602081019062000def919062002143565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558062000e228162002371565b91505062000db6565b50505050565b6005546001600160a01b0316336001600160a01b03161462000e675760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03811662000e905760405162461bcd60e51b8152600401620007d99062002337565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000ee8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f0e91906200238c565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f6e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f9491906200238c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000fdf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200100591906200238c565b600780546001600160a01b0319166001600160a01b039290921691909117905550565b6005546001600160a01b0316336001600160a01b0316146200105e5760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b038116620010b65760405162461bcd60e51b815260206004820152601a60248201527f4f776e61626c653a206e6577206f776e6572206973207a65726f0000000000006044820152606401620007d9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b031614620011475760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b038116620011705760405162461bcd60e51b8152600401620007d99062002337565b600980546001600160a01b0319166001600160a01b03831617905560405181906200119b9062002042565b6001600160a01b039091168152602001604051809103905ff080158015620011c5573d5f803e3d5ffd5b50600a80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b038316158015906200120a57506001600160a01b03821615155b6200124e5760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f206164647265737360681b6044820152606401620007d9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5460ff168015620012cf57506007546001600160a01b03838116911614155b8015620012ea57506005546001600160a01b03838116911614155b156200136357600b546200131e8262001317856001600160a01b03165f9081526020819052604090205490565b90620017be565b1115620013635760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81b585e081dd85b1b195d60721b6044820152606401620007d9565b600d545f90610100900460ff161580156200139657506001600160a01b0384165f9081526016602052604090205460ff16155b8015620013bb57506001600160a01b0383165f9081526016602052604090205460ff16155b8015620013d657506005546001600160a01b03858116911614155b8015620013f157506005546001600160a01b03848116911614155b1562001511576007546001600160a01b03908116908516036200149457620014336103e86200142c601054856200182790919063ffffffff16565b90620018ad565b905062001461620014576010546200142c600e54856200182790919063ffffffff16565b60145490620017be565b601455601054600f546200148b9162001481916200142c90859062001827565b60155490620017be565b60155562001511565b6007546001600160a01b03908116908416036200151157620014c96103e86200142c601354856200182790919063ffffffff16565b9050620014ed620014576013546200142c601154856200182790919063ffffffff16565b6014556013546012546200150d9162001481916200142c90859062001827565b6015555b8015620015345762001525843083620018f0565b62001531828262001a52565b91505b62001541848484620018f0565b600a546001600160a01b031663e30443bc8562001572816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015620015b6575f80fd5b505af1158015620015c9573d5f803e3d5ffd5b5050600a546001600160a01b0316915063e30443bc90508462001600816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b15801562001644575f80fd5b505af115801562001657573d5f803e3d5ffd5b5050600d54610100900460ff1691506200176a905057600d805461ff001916610100179055600a5460405163807ab4f760e01b81526001600160a01b0386811660048301529091169063807ab4f7906024016020604051808303815f875af1158015620016c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620016ec91906200231f565b50600a5460405163807ab4f760e01b81526001600160a01b0385811660048301529091169063807ab4f7906024016020604051808303815f875af115801562001737573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200175d91906200231f565b50600d805461ff00191690555b600d54610100900460ff16158015620017935750600c54305f9081526020819052604090205410155b8015620017ae57506007546001600160a01b03858116911614155b1562000e2b5762000e2b62001a95565b5f80620017cc8385620022cf565b905083811015620018205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620007d9565b9392505050565b5f825f036200183857505f620008f2565b5f620018458385620023aa565b905082620018548583620023c4565b14620018205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620007d9565b5f6200182083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062001d16565b6001600160a01b038316158015906200191157506001600160a01b03821615155b620019555760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f206164647265737360681b6044820152606401620007d9565b6001600160a01b0383165f9081526020819052604090205481811015620019bf5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e636500000000006044820152606401620007d9565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290620019f7908490620022cf565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162001a4491815260200190565b60405180910390a350505050565b5f6200182083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001d4e565b600d805461ff001916610100179055305f9081526020819052604081205490505f62001acf601554601454620017be90919063ffffffff16565b905081158062001add575080155b1562001af2575050600d805461ff0019169055565b60158054601480545f938490559290559062001b0e8262001d81565b6008546040515f916001600160a01b03169047908381818185875af1925050503d805f811462001b5a576040519150601f19603f3d011682016040523d82523d5f602084013e62001b5f565b606091505b505090508062001ba85760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401620007d9565b6009546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001bef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c1591906200231f565b905062001c228362001ee0565b6009546040516370a0823160e01b81523060048201525f9162001c9d9184916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001c70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c9691906200231f565b9062001a52565b9050801562001d0257600a54604051633243c79160e01b8152600481018390526001600160a01b0390911690633243c791906024015f604051808303815f87803b15801562001cea575f80fd5b505af115801562001cfd573d5f803e3d5ffd5b505050505b5050600d805461ff00191690555050505050565b5f818362001d395760405162461bcd60e51b8152600401620007d9919062002071565b5062001d468385620023c4565b949350505050565b5f818484111562001d745760405162461bcd60e51b8152600401620007d9919062002071565b5062001d468385620023e4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811062001db75762001db76200235d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801562001e0f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e3591906200238c565b8160018151811062001e4b5762001e4b6200235d565b6001600160a01b03928316602091820292909201015260065462001e739130911684620011e9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479062001ead9085905f90869030904290600401620023fa565b5f604051808303815f87803b15801562001ec5575f80fd5b505af115801562001ed8573d5f803e3d5ffd5b505050505050565b604080516003808252608082019092525f916020820160608036833701905050905030815f8151811062001f185762001f186200235d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801562001f70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001f9691906200238c565b8160018151811062001fac5762001fac6200235d565b6001600160a01b03928316602091820292909201015260095482519116908290600290811062001fe05762001fe06200235d565b6001600160a01b039283166020918202929092010152600654620020089130911684620011e9565b600654604051635c11d79560e01b81526001600160a01b0390911690635c11d7959062001ead9085905f90869030904290600401620023fa565b610cf8806200246c83390190565b5f806040838503121562002062575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b818110156200209e5785810183015185820160400152820162002080565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811462000a4c575f80fd5b5f8060408385031215620020e5575f80fd5b8235620020f281620020be565b946020939093013593505050565b5f805f6060848603121562002113575f80fd5b83356200212081620020be565b925060208401356200213281620020be565b929592945050506040919091013590565b5f6020828403121562002154575f80fd5b81356200182081620020be565b8035801515811462002171575f80fd5b919050565b5f806040838503121562002188575f80fd5b82356200219581620020be565b9150620021a56020840162002161565b90509250929050565b5f60208284031215620021bf575f80fd5b5035919050565b5f805f60408486031215620021d9575f80fd5b833567ffffffffffffffff80821115620021f1575f80fd5b818601915086601f83011262002205575f80fd5b81358181111562002214575f80fd5b8760208260051b850101111562002229575f80fd5b60209283019550935062002241918601905062002161565b90509250925092565b5f80604083850312156200225c575f80fd5b82356200226981620020be565b915060208301356200227b81620020be565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115620008f257620008f2620022bb565b600181811c90821680620022fa57607f821691505b6020821081036200231957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002330575f80fd5b5051919050565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201620023855762002385620022bb565b5060010190565b5f602082840312156200239d575f80fd5b81516200182081620020be565b8082028115828204841417620008f257620008f2620022bb565b5f82620023df57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115620008f257620008f2620022bb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156200244a5784516001600160a01b03168352938301939183019160010162002423565b50506001600160a01b0396909616606085015250505060800152939250505056fe608060405234801561000f575f80fd5b50604051610cf8380380610cf883398101604081905261002e91610091565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b03929092169190911790556100be565b5f602082840312156100a1575f80fd5b81516001600160a01b03811681146100b7575f80fd5b9392505050565b610c2d806100cb5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c8063a8b9d24011610088578063de3aaf6111610063578063de3aaf6114610199578063e30443bc146101b8578063f2fde38b146101cb578063f7c618c1146101de575f80fd5b8063a8b9d2401461015e578063ab6ddfa814610171578063ad7a672f14610190575f80fd5b80633243c791146100cf5780633a7960e0146100e4578063715018a614610100578063807ab4f7146101085780638da5cb5b1461011b57806397a067241461013f575b5f80fd5b6100e26100dd366004610a2d565b6101f1565b005b6100ed60025481565b6040519081526020015b60405180910390f35b6100e26102e0565b6100ed610116366004610a5a565b61035a565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b6100ed61014d366004610a5a565b60056020525f908152604090205481565b6100ed61016c366004610a5a565b610496565b6100ed61017f366004610a5a565b60036020525f908152604090205481565b6100ed60045481565b6100ed6101a7366004610a5a565b60066020525f908152604090205481565b6100e26101c6366004610a73565b610549565b6100e26101d9366004610a5a565b610686565b600154610127906001600160a01b031681565b5f546001600160a01b0316336001600160a01b03161461022c5760405162461bcd60e51b815260040161022390610a9b565b60405180910390fd5b5f6004541161027d5760405162461bcd60e51b815260206004820152601b60248201527f4469766964656e64547261636b65723a206e6f20686f6c6465727300000000006044820152606401610223565b6004546102a59061029c9061029684600160801b610767565b906107ee565b6002549061082f565b60025560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a250565b5f546001600160a01b0316336001600160a01b0316146103125760405162461bcd60e51b815260040161022390610a9b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b0316336001600160a01b03161461038d5760405162461bcd60e51b815260040161022390610a9b565b5f61039783610496565b9050801561048e576001600160a01b0383165f908152600660205260409020546103c1908261082f565b6001600160a01b038481165f818152600660205260409081902093909355600154925163a9059cbb60e01b815260048101919091526024810184905291169063a9059cbb906044016020604051808303815f875af1158015610425573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104499190610ad0565b50826001600160a01b03167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c568260405161048591815260200190565b60405180910390a25b90505b919050565b6001600160a01b0381165f9081526005602090815260408083205460025460039093529083205483926104c99190610767565b6104d39190610b03565b90505f8112156104e557505f92915050565b5f6104f4600160801b83610b2a565b6001600160a01b0385165f90815260066020526040902054909150811161051e57505f9392505050565b6001600160a01b0384165f9081526006602052604090205461054190829061088d565b949350505050565b5f546001600160a01b0316336001600160a01b03161461057b5760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b0382165f90815260036020526040902080549082905580821115610611575f6105ab838361088d565b90506105e36105c58260025461076790919063ffffffff16565b6001600160a01b0386165f90815260056020526040902054906108ce565b6001600160a01b0385165f90815260056020526040902055600454610608908261082f565b60045550505050565b80821015610681575f610624828461088d565b905061065c61063e8260025461076790919063ffffffff16565b6001600160a01b0386165f9081526005602052604090205490610956565b6001600160a01b0385165f90815260056020526040902055600454610608908261088d565b505050565b5f546001600160a01b0316336001600160a01b0316146106b85760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b03811661070e5760405162461bcd60e51b815260206004820152601a60248201527f4f776e61626c653a206e6577206f776e6572206973207a65726f0000000000006044820152606401610223565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f0361077657505f6107e8565b5f6107818385610b49565b90508261078e8583610b2a565b146107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b90505b92915050565b5f6107e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109d4565b5f8061083b8385610b60565b9050838110156107e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610223565b5f6107e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109ff565b5f806108da8385610b73565b90505f83121580156108ec5750838113155b8061090057505f8312801561090057508381135b6107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d617468496e743a207375627472616374696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b5f806109628385610b03565b90505f83121580156109745750838112155b8061098857505f8312801561098857508381125b6107e55760405162461bcd60e51b815260206004820152601e60248201527f536166654d617468496e743a206164646974696f6e206f766572666c6f7700006044820152606401610223565b5f81836109f45760405162461bcd60e51b81526004016102239190610b99565b506105418385610b2a565b5f8184841115610a225760405162461bcd60e51b81526004016102239190610b99565b506105418385610be4565b5f60208284031215610a3d575f80fd5b5035919050565b80356001600160a01b0381168114610491575f80fd5b5f60208284031215610a6a575f80fd5b6107e582610a44565b5f8060408385031215610a84575f80fd5b610a8d83610a44565b946020939093013593505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610ae0575f80fd5b815180151581146107e5575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8082018281125f831280158216821582161715610b2257610b22610aef565b505092915050565b5f82610b4457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176107e8576107e8610aef565b808201808211156107e8576107e8610aef565b8181035f831280158383131683831282161715610b9257610b92610aef565b5092915050565b5f6020808352835180828501525f5b81811015610bc457858101830151858201604001528201610ba8565b505f604082860101526040601f19601f8301168501019250505092915050565b818103818111156107e8576107e8610aef56fea2646970667358221220e07ca4e23d43ae05d411fa71dadf97bb053aca6b82c931ad996f69adb341d96064736f6c63430008140033a2646970667358221220240c65a5fdc637cb91a1096513e4cddf1f552e87887580e431e5c547ccc1248164736f6c63430008140033608060405234801561000f575f80fd5b50604051610cf8380380610cf883398101604081905261002e91610091565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b03929092169190911790556100be565b5f602082840312156100a1575f80fd5b81516001600160a01b03811681146100b7575f80fd5b9392505050565b610c2d806100cb5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c8063a8b9d24011610088578063de3aaf6111610063578063de3aaf6114610199578063e30443bc146101b8578063f2fde38b146101cb578063f7c618c1146101de575f80fd5b8063a8b9d2401461015e578063ab6ddfa814610171578063ad7a672f14610190575f80fd5b80633243c791146100cf5780633a7960e0146100e4578063715018a614610100578063807ab4f7146101085780638da5cb5b1461011b57806397a067241461013f575b5f80fd5b6100e26100dd366004610a2d565b6101f1565b005b6100ed60025481565b6040519081526020015b60405180910390f35b6100e26102e0565b6100ed610116366004610a5a565b61035a565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b6100ed61014d366004610a5a565b60056020525f908152604090205481565b6100ed61016c366004610a5a565b610496565b6100ed61017f366004610a5a565b60036020525f908152604090205481565b6100ed60045481565b6100ed6101a7366004610a5a565b60066020525f908152604090205481565b6100e26101c6366004610a73565b610549565b6100e26101d9366004610a5a565b610686565b600154610127906001600160a01b031681565b5f546001600160a01b0316336001600160a01b03161461022c5760405162461bcd60e51b815260040161022390610a9b565b60405180910390fd5b5f6004541161027d5760405162461bcd60e51b815260206004820152601b60248201527f4469766964656e64547261636b65723a206e6f20686f6c6465727300000000006044820152606401610223565b6004546102a59061029c9061029684600160801b610767565b906107ee565b6002549061082f565b60025560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a250565b5f546001600160a01b0316336001600160a01b0316146103125760405162461bcd60e51b815260040161022390610a9b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b0316336001600160a01b03161461038d5760405162461bcd60e51b815260040161022390610a9b565b5f61039783610496565b9050801561048e576001600160a01b0383165f908152600660205260409020546103c1908261082f565b6001600160a01b038481165f818152600660205260409081902093909355600154925163a9059cbb60e01b815260048101919091526024810184905291169063a9059cbb906044016020604051808303815f875af1158015610425573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104499190610ad0565b50826001600160a01b03167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c568260405161048591815260200190565b60405180910390a25b90505b919050565b6001600160a01b0381165f9081526005602090815260408083205460025460039093529083205483926104c99190610767565b6104d39190610b03565b90505f8112156104e557505f92915050565b5f6104f4600160801b83610b2a565b6001600160a01b0385165f90815260066020526040902054909150811161051e57505f9392505050565b6001600160a01b0384165f9081526006602052604090205461054190829061088d565b949350505050565b5f546001600160a01b0316336001600160a01b03161461057b5760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b0382165f90815260036020526040902080549082905580821115610611575f6105ab838361088d565b90506105e36105c58260025461076790919063ffffffff16565b6001600160a01b0386165f90815260056020526040902054906108ce565b6001600160a01b0385165f90815260056020526040902055600454610608908261082f565b60045550505050565b80821015610681575f610624828461088d565b905061065c61063e8260025461076790919063ffffffff16565b6001600160a01b0386165f9081526005602052604090205490610956565b6001600160a01b0385165f90815260056020526040902055600454610608908261088d565b505050565b5f546001600160a01b0316336001600160a01b0316146106b85760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b03811661070e5760405162461bcd60e51b815260206004820152601a60248201527f4f776e61626c653a206e6577206f776e6572206973207a65726f0000000000006044820152606401610223565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f0361077657505f6107e8565b5f6107818385610b49565b90508261078e8583610b2a565b146107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b90505b92915050565b5f6107e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109d4565b5f8061083b8385610b60565b9050838110156107e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610223565b5f6107e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109ff565b5f806108da8385610b73565b90505f83121580156108ec5750838113155b8061090057505f8312801561090057508381135b6107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d617468496e743a207375627472616374696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b5f806109628385610b03565b90505f83121580156109745750838112155b8061098857505f8312801561098857508381125b6107e55760405162461bcd60e51b815260206004820152601e60248201527f536166654d617468496e743a206164646974696f6e206f766572666c6f7700006044820152606401610223565b5f81836109f45760405162461bcd60e51b81526004016102239190610b99565b506105418385610b2a565b5f8184841115610a225760405162461bcd60e51b81526004016102239190610b99565b506105418385610be4565b5f60208284031215610a3d575f80fd5b5035919050565b80356001600160a01b0381168114610491575f80fd5b5f60208284031215610a6a575f80fd5b6107e582610a44565b5f8060408385031215610a84575f80fd5b610a8d83610a44565b946020939093013593505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610ae0575f80fd5b815180151581146107e5575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8082018281125f831280158216821582161715610b2257610b22610aef565b505092915050565b5f82610b4457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176107e8576107e8610aef565b808201808211156107e8576107e8610aef565b8181035f831280158383131683831282161715610b9257610b92610aef565b5092915050565b5f6020808352835180828501525f5b81811015610bc457858101830151858201604001528201610ba8565b505f604082860101526040601f19601f8301168501019250505092915050565b818103818111156107e8576107e8610aef56fea2646970667358221220e07ca4e23d43ae05d411fa71dadf97bb053aca6b82c931ad996f69adb341d96064736f6c63430008140033
Deployed Bytecode
0x60806040526004361062000266575f3560e01c8063751039fc1162000142578063d0a3981411620000b6578063f2fde38b1162000076578063f2fde38b146200070c578063f54afa781462000730578063f7c618c11462000747578063f8b45b051462000768578063f8cf31cb146200077f575f80fd5b8063d0a39814146200065e578063d20c50d51462000675578063dd62ed3e1462000696578063e17527e214620006de578063e2f4560514620006f5575f80fd5b8063b9e937001162000102578063b9e9370014620005b7578063c024666814620005ce578063c18bc19514620005f2578063c492f0461462000616578063c851cc32146200063a575f80fd5b8063751039fc14620005225780638da5cb5b146200053957806395d89b411462000558578063a457c2d7146200056f578063a9059cbb1462000593575f80fd5b80633950935111620001da5780636a6a126f116200019a5780636a6a126f14620004815780636d7adcad146200049857806370a0823114620004af578063715018a614620004e757806374c9f60314620004fe575f80fd5b80633950935114620003f05780633978f4e314620004145780634a62bb65146200042b5780634e71d92d146200044657806366ca9b83146200045d575f80fd5b806318160ddd116200022657806318160ddd146200035757806323b872dd146200036d5780632c1f521614620003915780632dc0562d14620003b2578063313ce56714620003d3575f80fd5b806302dbd8f8146200027257806303898c171462000298578063055add0d14620002c257806306fdde0314620002fc578063095ea7b31462000322575f80fd5b366200026e57005b5f80fd5b3480156200027e575f80fd5b50620002966200029036600462002050565b620007a3565b005b348015620002a4575f80fd5b50620002af60115481565b6040519081526020015b60405180910390f35b348015620002ce575f80fd5b50600654620002e3906001600160a01b031681565b6040516001600160a01b039091168152602001620002b9565b34801562000308575f80fd5b506200031362000848565b604051620002b9919062002071565b3480156200032e575f80fd5b506200034662000340366004620020d3565b620008e0565b6040519015158152602001620002b9565b34801562000363575f80fd5b50600254620002af565b34801562000379575f80fd5b50620003466200038b36600462002100565b620008f8565b3480156200039d575f80fd5b50600a54620002e3906001600160a01b031681565b348015620003be575f80fd5b50600854620002e3906001600160a01b031681565b348015620003df575f80fd5b5060405160128152602001620002b9565b348015620003fc575f80fd5b50620003466200040e366004620020d3565b6200099f565b34801562000420575f80fd5b50620002af600f5481565b34801562000437575f80fd5b50600d54620003469060ff1681565b34801562000452575f80fd5b5062000296620009de565b34801562000469575f80fd5b50620002966200047b36600462002050565b62000a4f565b3480156200048d575f80fd5b50620002af60125481565b348015620004a4575f80fd5b50620002af60155481565b348015620004bb575f80fd5b50620002af620004cd36600462002143565b6001600160a01b03165f9081526020819052604090205490565b348015620004f3575f80fd5b506200029662000ae6565b3480156200050a575f80fd5b50620002966200051c36600462002143565b62000b65565b3480156200052e575f80fd5b506200029662000be6565b34801562000545575f80fd5b506005546001600160a01b0316620002e3565b34801562000564575f80fd5b506200031362000c28565b3480156200057b575f80fd5b50620003466200058d366004620020d3565b62000c39565b3480156200059f575f80fd5b5062000346620005b1366004620020d3565b62000cd5565b348015620005c3575f80fd5b50620002af60105481565b348015620005da575f80fd5b5062000296620005ec36600462002176565b62000ce3565b348015620005fe575f80fd5b506200029662000610366004620021ae565b62000d43565b34801562000622575f80fd5b506200029662000634366004620021c6565b62000d7e565b34801562000646575f80fd5b50620002966200065836600462002143565b62000e31565b3480156200066a575f80fd5b50620002af60135481565b34801562000681575f80fd5b50600754620002e3906001600160a01b031681565b348015620006a2575f80fd5b50620002af620006b43660046200224a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015620006ea575f80fd5b50620002af600e5481565b34801562000701575f80fd5b50620002af600c5481565b34801562000718575f80fd5b50620002966200072a36600462002143565b62001028565b3480156200073c575f80fd5b50620002af60145481565b34801562000753575f80fd5b50600954620002e3906001600160a01b031681565b34801562000774575f80fd5b50620002af600b5481565b3480156200078b575f80fd5b50620002966200079d36600462002143565b62001111565b6005546001600160a01b0316336001600160a01b031614620007e25760405162461bcd60e51b8152600401620007d99062002286565b60405180910390fd5b60118290556012819055620007f88183620022cf565b601381905560641015620008445760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b6044820152606401620007d9565b5050565b6060600380546200085990620022e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200088790620022e5565b8015620008d65780601f10620008ac57610100808354040283529160200191620008d6565b820191905f5260205f20905b815481529060010190602001808311620008b857829003601f168201915b5050505050905090565b5f620008ee338484620011e9565b5060015b92915050565b5f62000906848484620012ae565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015620009855760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e73666572206578636565647320616c6c6f77616e636044820152606560f81b6064820152608401620007d9565b620009948533858403620011e9565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091620008ee918590620009d8908690620022cf565b620011e9565b600a5460405163807ab4f760e01b81523360048201526001600160a01b039091169063807ab4f7906024016020604051808303815f875af115801562000a26573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a4c91906200231f565b50565b6005546001600160a01b0316336001600160a01b03161462000a855760405162461bcd60e51b8152600401620007d99062002286565b600e829055600f81905562000a9b8183620022cf565b601081905560641015620008445760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b6044820152606401620007d9565b6005546001600160a01b0316336001600160a01b03161462000b1c5760405162461bcd60e51b8152600401620007d99062002286565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b03161462000b9b5760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03811662000bc45760405162461bcd60e51b8152600401620007d99062002337565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b03161462000c1c5760405162461bcd60e51b8152600401620007d99062002286565b600d805460ff19169055565b6060600480546200085990620022e5565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101562000cbc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401620007d9565b62000ccb3385858403620011e9565b5060019392505050565b5f620008ee338484620012ae565b6005546001600160a01b0316336001600160a01b03161462000d195760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b0316336001600160a01b03161462000d795760405162461bcd60e51b8152600401620007d99062002286565b600b55565b6005546001600160a01b0316336001600160a01b03161462000db45760405162461bcd60e51b8152600401620007d99062002286565b5f5b8281101562000e2b578160165f86868581811062000dd85762000dd86200235d565b905060200201602081019062000def919062002143565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558062000e228162002371565b91505062000db6565b50505050565b6005546001600160a01b0316336001600160a01b03161462000e675760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b03811662000e905760405162461bcd60e51b8152600401620007d99062002337565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000ee8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f0e91906200238c565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000f6e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f9491906200238c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000fdf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200100591906200238c565b600780546001600160a01b0319166001600160a01b039290921691909117905550565b6005546001600160a01b0316336001600160a01b0316146200105e5760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b038116620010b65760405162461bcd60e51b815260206004820152601a60248201527f4f776e61626c653a206e6577206f776e6572206973207a65726f0000000000006044820152606401620007d9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b031614620011475760405162461bcd60e51b8152600401620007d99062002286565b6001600160a01b038116620011705760405162461bcd60e51b8152600401620007d99062002337565b600980546001600160a01b0319166001600160a01b03831617905560405181906200119b9062002042565b6001600160a01b039091168152602001604051809103905ff080158015620011c5573d5f803e3d5ffd5b50600a80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b038316158015906200120a57506001600160a01b03821615155b6200124e5760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f206164647265737360681b6044820152606401620007d9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600d5460ff168015620012cf57506007546001600160a01b03838116911614155b8015620012ea57506005546001600160a01b03838116911614155b156200136357600b546200131e8262001317856001600160a01b03165f9081526020819052604090205490565b90620017be565b1115620013635760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81b585e081dd85b1b195d60721b6044820152606401620007d9565b600d545f90610100900460ff161580156200139657506001600160a01b0384165f9081526016602052604090205460ff16155b8015620013bb57506001600160a01b0383165f9081526016602052604090205460ff16155b8015620013d657506005546001600160a01b03858116911614155b8015620013f157506005546001600160a01b03848116911614155b1562001511576007546001600160a01b03908116908516036200149457620014336103e86200142c601054856200182790919063ffffffff16565b90620018ad565b905062001461620014576010546200142c600e54856200182790919063ffffffff16565b60145490620017be565b601455601054600f546200148b9162001481916200142c90859062001827565b60155490620017be565b60155562001511565b6007546001600160a01b03908116908416036200151157620014c96103e86200142c601354856200182790919063ffffffff16565b9050620014ed620014576013546200142c601154856200182790919063ffffffff16565b6014556013546012546200150d9162001481916200142c90859062001827565b6015555b8015620015345762001525843083620018f0565b62001531828262001a52565b91505b62001541848484620018f0565b600a546001600160a01b031663e30443bc8562001572816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015620015b6575f80fd5b505af1158015620015c9573d5f803e3d5ffd5b5050600a546001600160a01b0316915063e30443bc90508462001600816001600160a01b03165f9081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b15801562001644575f80fd5b505af115801562001657573d5f803e3d5ffd5b5050600d54610100900460ff1691506200176a905057600d805461ff001916610100179055600a5460405163807ab4f760e01b81526001600160a01b0386811660048301529091169063807ab4f7906024016020604051808303815f875af1158015620016c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620016ec91906200231f565b50600a5460405163807ab4f760e01b81526001600160a01b0385811660048301529091169063807ab4f7906024016020604051808303815f875af115801562001737573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200175d91906200231f565b50600d805461ff00191690555b600d54610100900460ff16158015620017935750600c54305f9081526020819052604090205410155b8015620017ae57506007546001600160a01b03858116911614155b1562000e2b5762000e2b62001a95565b5f80620017cc8385620022cf565b905083811015620018205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620007d9565b9392505050565b5f825f036200183857505f620008f2565b5f620018458385620023aa565b905082620018548583620023c4565b14620018205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620007d9565b5f6200182083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062001d16565b6001600160a01b038316158015906200191157506001600160a01b03821615155b620019555760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f206164647265737360681b6044820152606401620007d9565b6001600160a01b0383165f9081526020819052604090205481811015620019bf5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e636500000000006044820152606401620007d9565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290620019f7908490620022cf565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162001a4491815260200190565b60405180910390a350505050565b5f6200182083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062001d4e565b600d805461ff001916610100179055305f9081526020819052604081205490505f62001acf601554601454620017be90919063ffffffff16565b905081158062001add575080155b1562001af2575050600d805461ff0019169055565b60158054601480545f938490559290559062001b0e8262001d81565b6008546040515f916001600160a01b03169047908381818185875af1925050503d805f811462001b5a576040519150601f19603f3d011682016040523d82523d5f602084013e62001b5f565b606091505b505090508062001ba85760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401620007d9565b6009546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001bef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c1591906200231f565b905062001c228362001ee0565b6009546040516370a0823160e01b81523060048201525f9162001c9d9184916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001c70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c9691906200231f565b9062001a52565b9050801562001d0257600a54604051633243c79160e01b8152600481018390526001600160a01b0390911690633243c791906024015f604051808303815f87803b15801562001cea575f80fd5b505af115801562001cfd573d5f803e3d5ffd5b505050505b5050600d805461ff00191690555050505050565b5f818362001d395760405162461bcd60e51b8152600401620007d9919062002071565b5062001d468385620023c4565b949350505050565b5f818484111562001d745760405162461bcd60e51b8152600401620007d9919062002071565b5062001d468385620023e4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811062001db75762001db76200235d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801562001e0f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e3591906200238c565b8160018151811062001e4b5762001e4b6200235d565b6001600160a01b03928316602091820292909201015260065462001e739130911684620011e9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479062001ead9085905f90869030904290600401620023fa565b5f604051808303815f87803b15801562001ec5575f80fd5b505af115801562001ed8573d5f803e3d5ffd5b505050505050565b604080516003808252608082019092525f916020820160608036833701905050905030815f8151811062001f185762001f186200235d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801562001f70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001f9691906200238c565b8160018151811062001fac5762001fac6200235d565b6001600160a01b03928316602091820292909201015260095482519116908290600290811062001fe05762001fe06200235d565b6001600160a01b039283166020918202929092010152600654620020089130911684620011e9565b600654604051635c11d79560e01b81526001600160a01b0390911690635c11d7959062001ead9085905f90869030904290600401620023fa565b610cf8806200246c83390190565b5f806040838503121562002062575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b818110156200209e5785810183015185820160400152820162002080565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811462000a4c575f80fd5b5f8060408385031215620020e5575f80fd5b8235620020f281620020be565b946020939093013593505050565b5f805f6060848603121562002113575f80fd5b83356200212081620020be565b925060208401356200213281620020be565b929592945050506040919091013590565b5f6020828403121562002154575f80fd5b81356200182081620020be565b8035801515811462002171575f80fd5b919050565b5f806040838503121562002188575f80fd5b82356200219581620020be565b9150620021a56020840162002161565b90509250929050565b5f60208284031215620021bf575f80fd5b5035919050565b5f805f60408486031215620021d9575f80fd5b833567ffffffffffffffff80821115620021f1575f80fd5b818601915086601f83011262002205575f80fd5b81358181111562002214575f80fd5b8760208260051b850101111562002229575f80fd5b60209283019550935062002241918601905062002161565b90509250925092565b5f80604083850312156200225c575f80fd5b82356200226981620020be565b915060208301356200227b81620020be565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115620008f257620008f2620022bb565b600181811c90821680620022fa57607f821691505b6020821081036200231957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002330575f80fd5b5051919050565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201620023855762002385620022bb565b5060010190565b5f602082840312156200239d575f80fd5b81516200182081620020be565b8082028115828204841417620008f257620008f2620022bb565b5f82620023df57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115620008f257620008f2620022bb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156200244a5784516001600160a01b03168352938301939183019160010162002423565b50506001600160a01b0396909616606085015250505060800152939250505056fe608060405234801561000f575f80fd5b50604051610cf8380380610cf883398101604081905261002e91610091565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b03929092169190911790556100be565b5f602082840312156100a1575f80fd5b81516001600160a01b03811681146100b7575f80fd5b9392505050565b610c2d806100cb5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c8063a8b9d24011610088578063de3aaf6111610063578063de3aaf6114610199578063e30443bc146101b8578063f2fde38b146101cb578063f7c618c1146101de575f80fd5b8063a8b9d2401461015e578063ab6ddfa814610171578063ad7a672f14610190575f80fd5b80633243c791146100cf5780633a7960e0146100e4578063715018a614610100578063807ab4f7146101085780638da5cb5b1461011b57806397a067241461013f575b5f80fd5b6100e26100dd366004610a2d565b6101f1565b005b6100ed60025481565b6040519081526020015b60405180910390f35b6100e26102e0565b6100ed610116366004610a5a565b61035a565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016100f7565b6100ed61014d366004610a5a565b60056020525f908152604090205481565b6100ed61016c366004610a5a565b610496565b6100ed61017f366004610a5a565b60036020525f908152604090205481565b6100ed60045481565b6100ed6101a7366004610a5a565b60066020525f908152604090205481565b6100e26101c6366004610a73565b610549565b6100e26101d9366004610a5a565b610686565b600154610127906001600160a01b031681565b5f546001600160a01b0316336001600160a01b03161461022c5760405162461bcd60e51b815260040161022390610a9b565b60405180910390fd5b5f6004541161027d5760405162461bcd60e51b815260206004820152601b60248201527f4469766964656e64547261636b65723a206e6f20686f6c6465727300000000006044820152606401610223565b6004546102a59061029c9061029684600160801b610767565b906107ee565b6002549061082f565b60025560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a250565b5f546001600160a01b0316336001600160a01b0316146103125760405162461bcd60e51b815260040161022390610a9b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b0316336001600160a01b03161461038d5760405162461bcd60e51b815260040161022390610a9b565b5f61039783610496565b9050801561048e576001600160a01b0383165f908152600660205260409020546103c1908261082f565b6001600160a01b038481165f818152600660205260409081902093909355600154925163a9059cbb60e01b815260048101919091526024810184905291169063a9059cbb906044016020604051808303815f875af1158015610425573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104499190610ad0565b50826001600160a01b03167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c568260405161048591815260200190565b60405180910390a25b90505b919050565b6001600160a01b0381165f9081526005602090815260408083205460025460039093529083205483926104c99190610767565b6104d39190610b03565b90505f8112156104e557505f92915050565b5f6104f4600160801b83610b2a565b6001600160a01b0385165f90815260066020526040902054909150811161051e57505f9392505050565b6001600160a01b0384165f9081526006602052604090205461054190829061088d565b949350505050565b5f546001600160a01b0316336001600160a01b03161461057b5760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b0382165f90815260036020526040902080549082905580821115610611575f6105ab838361088d565b90506105e36105c58260025461076790919063ffffffff16565b6001600160a01b0386165f90815260056020526040902054906108ce565b6001600160a01b0385165f90815260056020526040902055600454610608908261082f565b60045550505050565b80821015610681575f610624828461088d565b905061065c61063e8260025461076790919063ffffffff16565b6001600160a01b0386165f9081526005602052604090205490610956565b6001600160a01b0385165f90815260056020526040902055600454610608908261088d565b505050565b5f546001600160a01b0316336001600160a01b0316146106b85760405162461bcd60e51b815260040161022390610a9b565b6001600160a01b03811661070e5760405162461bcd60e51b815260206004820152601a60248201527f4f776e61626c653a206e6577206f776e6572206973207a65726f0000000000006044820152606401610223565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f0361077657505f6107e8565b5f6107818385610b49565b90508261078e8583610b2a565b146107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b90505b92915050565b5f6107e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109d4565b5f8061083b8385610b60565b9050838110156107e55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610223565b5f6107e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109ff565b5f806108da8385610b73565b90505f83121580156108ec5750838113155b8061090057505f8312801561090057508381135b6107e55760405162461bcd60e51b815260206004820152602160248201527f536166654d617468496e743a207375627472616374696f6e206f766572666c6f6044820152607760f81b6064820152608401610223565b5f806109628385610b03565b90505f83121580156109745750838112155b8061098857505f8312801561098857508381125b6107e55760405162461bcd60e51b815260206004820152601e60248201527f536166654d617468496e743a206164646974696f6e206f766572666c6f7700006044820152606401610223565b5f81836109f45760405162461bcd60e51b81526004016102239190610b99565b506105418385610b2a565b5f8184841115610a225760405162461bcd60e51b81526004016102239190610b99565b506105418385610be4565b5f60208284031215610a3d575f80fd5b5035919050565b80356001600160a01b0381168114610491575f80fd5b5f60208284031215610a6a575f80fd5b6107e582610a44565b5f8060408385031215610a84575f80fd5b610a8d83610a44565b946020939093013593505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610ae0575f80fd5b815180151581146107e5575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8082018281125f831280158216821582161715610b2257610b22610aef565b505092915050565b5f82610b4457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176107e8576107e8610aef565b808201808211156107e8576107e8610aef565b8181035f831280158383131683831282161715610b9257610b92610aef565b5092915050565b5f6020808352835180828501525f5b81811015610bc457858101830151858201604001528201610ba8565b505f604082860101526040601f19601f8301168501019250505092915050565b818103818111156107e8576107e8610aef56fea2646970667358221220e07ca4e23d43ae05d411fa71dadf97bb053aca6b82c931ad996f69adb341d96064736f6c63430008140033a2646970667358221220240c65a5fdc637cb91a1096513e4cddf1f552e87887580e431e5c547ccc1248164736f6c63430008140033
Deployed Bytecode Sourcemap
14753:9311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17766:311;;;;;;;;;;-1:-1:-1;17766:311:0;;;;;:::i;:::-;;:::i;:::-;;15538:34;;;;;;;;;;;;;;;;;;;413:25:1;;;401:2;386:18;15538:34:0;;;;;;;;14832:41;;;;;;;;;;-1:-1:-1;14832:41:0;;;;-1:-1:-1;;;;;14832:41:0;;;;;;-1:-1:-1;;;;;640:32:1;;;622:51;;610:2;595:18;14832:41:0;449:230:1;3389:78:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4164:162::-;;;;;;;;;;-1:-1:-1;4164:162:0;;;;;:::i;:::-;;:::i;:::-;;;1858:14:1;;1851:22;1833:41;;1821:2;1806:18;4164:162:0;1693:187:1;3638:86:0;;;;;;;;;;-1:-1:-1;3709:12:0;;3638:86;;4332:417;;;;;;;;;;-1:-1:-1;4332:417:0;;;;;:::i;:::-;;:::i;15105:38::-;;;;;;;;;;-1:-1:-1;15105:38:0;;;;-1:-1:-1;;;;;15105:38:0;;;14961:24;;;;;;;;;;-1:-1:-1;14961:24:0;;;;-1:-1:-1;;;;;14961:24:0;;;3561:71;;;;;;;;;;-1:-1:-1;3561:71:0;;3627:2;2928:36:1;;2916:2;2901:18;3561:71:0;2786:184:1;4755:207:0;;;;;;;;;;-1:-1:-1;4755:207:0;;;;;:::i;:::-;;:::i;15438:29::-;;;;;;;;;;;;;;;;15258:33;;;;;;;;;;-1:-1:-1;15258:33:0;;;;;;;;17278:87;;;;;;;;;;;;;:::i;17461:299::-;;;;;;;;;;-1:-1:-1;17461:299:0;;;;;:::i;:::-;;:::i;15585:30::-;;;;;;;;;;;;;;;;15757:27;;;;;;;;;;;;;;;;3730:105;;;;;;;;;;-1:-1:-1;3730:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;3814:18:0;3796:7;3814:18;;;;;;;;;;;;3730:105;1475:140;;;;;;;;;;;;;:::i;18204:171::-;;;;;;;;;;-1:-1:-1;18204:171:0;;;;;:::i;:::-;;:::i;17371:84::-;;;;;;;;;;;;;:::i;1035:79::-;;;;;;;;;;-1:-1:-1;1100:6:0;;-1:-1:-1;;;;;1100:6:0;1035:79;;3473:82;;;;;;;;;;;;;:::i;4968:381::-;;;;;;;;;;-1:-1:-1;4968:381:0;;;;;:::i;:::-;;:::i;3841:168::-;;;;;;;;;;-1:-1:-1;3841:168:0;;;;;:::i;:::-;;:::i;15485:32::-;;;;;;;;;;;;;;;;18958:134;;;;;;;;;;-1:-1:-1;18958:134:0;;;;;:::i;:::-;;:::i;18083:115::-;;;;;;;;;;-1:-1:-1;18083:115:0;;;;;:::i;:::-;;:::i;19098:238::-;;;;;;;;;;-1:-1:-1;19098:238:0;;;;;:::i;:::-;;:::i;18632:320::-;;;;;;;;;;-1:-1:-1;18632:320:0;;;;;:::i;:::-;;:::i;15632:33::-;;;;;;;;;;;;;;;;14880:28;;;;;;;;;;-1:-1:-1;14880:28:0;;;;-1:-1:-1;;;;;14880:28:0;;;4015:143;;;;;;;;;;-1:-1:-1;4015:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4123:18:0;;;4096:7;4123:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4015:143;15391:33;;;;;;;;;;;;;;;;15218;;;;;;;;;;;;;;;;1245:224;;;;;;;;;;-1:-1:-1;1245:224:0;;;;;:::i;:::-;;:::i;15719:31::-;;;;;;;;;;;;;;;;15037:26;;;;;;;;;;-1:-1:-1;15037:26:0;;;;-1:-1:-1;;;;;15037:26:0;;;15187:24;;;;;;;;;;;;;;;;18381:245;;;;;;;;;;-1:-1:-1;18381:245:0;;;;;:::i;:::-;;:::i;17766:311::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;;;;;;;;;17872:14:::1;:35:::0;;;17918:10:::1;:27:::0;;;17972:35:::1;17931:14:::0;17889:18;17972:35:::1;:::i;:::-;17956:13;:51:::0;;;18043:3:::1;-1:-1:-1::0;18026:20:0::1;18018:51;;;::::0;-1:-1:-1;;;18018:51:0;;5809:2:1;18018:51:0::1;::::0;::::1;5791:21:1::0;5848:2;5828:18;;;5821:30;-1:-1:-1;;;5867:18:1;;;5860:48;5925:18;;18018:51:0::1;5607:342:1::0;18018:51:0::1;17766:311:::0;;:::o;3389:78::-;3435:13;3459:5;3452:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3389:78;:::o;4164:162::-;4239:4;4256:39;634:10;4279:7;4288:6;4256:8;:39::i;:::-;-1:-1:-1;4314:4:0;4164:162;;;;;:::o;4332:417::-;4430:4;4447:36;4457:6;4465:9;4476:6;4447:9;:36::i;:::-;-1:-1:-1;;;;;4521:19:0;;4494:24;4521:19;;;:11;:19;;;;;;;;634:10;4521:33;;;;;;;;4573:26;;;;4565:72;;;;-1:-1:-1;;;4565:72:0;;6541:2:1;4565:72:0;;;6523:21:1;6580:2;6560:18;;;6553:30;6619:34;6599:18;;;6592:62;-1:-1:-1;;;6670:18:1;;;6663:31;6711:19;;4565:72:0;6339:397:1;4565:72:0;4660:57;4669:6;634:10;4710:6;4691:16;:25;4660:8;:57::i;:::-;-1:-1:-1;4737:4:0;;4332:417;-1:-1:-1;;;;4332:417:0:o;4755:207::-;634:10;4835:4;4884:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4884:34:0;;;;;;;;;;4835:4;;4852:80;;4875:7;;4884:47;;4921:10;;4884:47;:::i;:::-;4852:8;:80::i;17278:87::-;17315:15;;:42;;-1:-1:-1;;;17315:42:0;;17346:10;17315:42;;;622:51:1;-1:-1:-1;;;;;17315:15:0;;;;:30;;595:18:1;;17315:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17278:87::o;17461:299::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;17564:13:::1;:33:::0;;;17608:9:::1;:25:::0;;;17659:33:::1;17620:13:::0;17580:17;17659:33:::1;:::i;:::-;17644:12;:48:::0;;;17727:3:::1;-1:-1:-1::0;17711:19:0::1;17703:49;;;::::0;-1:-1:-1;;;17703:49:0;;7132:2:1;17703:49:0::1;::::0;::::1;7114:21:1::0;7171:2;7151:18;;;7144:30;-1:-1:-1;;;7190:18:1;;;7183:47;7247:18;;17703:49:0::1;6930:341:1::0;1475:140:0;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;1558:6:::1;::::0;1537:40:::1;::::0;1574:1:::1;::::0;-1:-1:-1;;;;;1558:6:0::1;::::0;1537:40:::1;::::0;1574:1;;1537:40:::1;1588:6;:19:::0;;-1:-1:-1;;;;;;1588:19:0::1;::::0;;1475:140::o;18204:171::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18289:26:0;::::1;18281:51;;;;-1:-1:-1::0;;;18281:51:0::1;;;;;;;:::i;:::-;18343:9;:24:::0;;-1:-1:-1;;;;;;18343:24:0::1;-1:-1:-1::0;;;;;18343:24:0;;;::::1;::::0;;;::::1;::::0;;18204:171::o;17371:84::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;17425:14:::1;:22:::0;;-1:-1:-1;;17425:22:0::1;::::0;;17371:84::o;3473:82::-;3521:13;3545:7;3538:14;;;;;:::i;4968:381::-;634:10;5053:4;5097:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5097:34:0;;;;;;;;;;5150:35;;;;5142:85;;;;-1:-1:-1;;;5142:85:0;;7819:2:1;5142:85:0;;;7801:21:1;7858:2;7838:18;;;7831:30;7897:34;7877:18;;;7870:62;-1:-1:-1;;;7948:18:1;;;7941:35;7993:19;;5142:85:0;7617:401:1;5142:85:0;5250:67;634:10;5273:7;5301:15;5282:16;:34;5250:8;:67::i;:::-;-1:-1:-1;5337:4:0;;4968:381;-1:-1:-1;;;4968:381:0:o;3841:168::-;3919:4;3936:42;634:10;3960:9;3971:6;3936:9;:42::i;18958:134::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19045:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;19045:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18958:134::o;18083:115::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;18166:9:::1;:24:::0;18083:115::o;19098:238::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;19218:9:::1;19213:116;19233:19:::0;;::::1;19213:116;;;19309:8;19274:19;:32;19294:8;;19303:1;19294:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19274:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19274:32:0;:43;;-1:-1:-1;;19274:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19254:3;::::1;::::0;::::1;:::i;:::-;;;;19213:116;;;;19098:238:::0;;;:::o;18632:320::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18711:23:0;::::1;18703:48;;;;-1:-1:-1::0;;;18703:48:0::1;;;;;;;:::i;:::-;18762:15;:47:::0;;-1:-1:-1;;;;;;18762:47:0::1;-1:-1:-1::0;;;;;18762:47:0;::::1;::::0;;::::1;::::0;;;18854:25:::1;::::0;;-1:-1:-1;;;18854:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;18762:47;18854:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18836:69:0::1;;18914:4;18921:15;;;;;;;;;-1:-1:-1::0;;;;;18921:15:0::1;-1:-1:-1::0;;;;;18921:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18836:108;::::0;-1:-1:-1;;;;;;18836:108:0::1;::::0;;;;;;-1:-1:-1;;;;;8781:15:1;;;18836:108:0::1;::::0;::::1;8763:34:1::0;8833:15;;8813:18;;;8806:43;8698:18;;18836:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18820:13;:124:::0;;-1:-1:-1;;;;;;18820:124:0::1;-1:-1:-1::0;;;;;18820:124:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;18632:320:0:o;1245:224::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1326:22:0;::::1;1318:61;;;::::0;-1:-1:-1;;;1318:61:0;;9062:2:1;1318:61:0::1;::::0;::::1;9044:21:1::0;9101:2;9081:18;;;9074:30;9140:28;9120:18;;;9113:56;9186:18;;1318:61:0::1;8860:350:1::0;1318:61:0::1;1416:6;::::0;1395:38:::1;::::0;-1:-1:-1;;;;;1395:38:0;;::::1;::::0;1416:6:::1;::::0;1395:38:::1;::::0;1416:6:::1;::::0;1395:38:::1;1444:6;:17:::0;;-1:-1:-1;;;;;;1444:17:0::1;-1:-1:-1::0;;;;;1444:17:0;;;::::1;::::0;;;::::1;::::0;;1245:224::o;18381:245::-;1176:6;;-1:-1:-1;;;;;1176:6:0;634:10;-1:-1:-1;;;;;1160:22:0;;1152:67;;;;-1:-1:-1;;;1152:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18470:28:0;::::1;18462:53;;;;-1:-1:-1::0;;;18462:53:0::1;;;;;;;:::i;:::-;18526:11;:28:::0;;-1:-1:-1;;;;;;18526:28:0::1;-1:-1:-1::0;;;;;18526:28:0;::::1;;::::0;;18583:35:::1;::::0;18526:28;;18583:35:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;640:32:1;;;622:51;;610:2;595:18;18583:35:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18565:15:0::1;:53:::0;;-1:-1:-1;;;;;;18565:53:0::1;-1:-1:-1::0;;;;;18565:53:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;18381:245:0:o;6099:273::-;-1:-1:-1;;;;;6201:19:0;;;;;;:44;;-1:-1:-1;;;;;;6224:21:0;;;;6201:44;6193:76;;;;-1:-1:-1;;;6193:76:0;;9417:2:1;6193:76:0;;;9399:21:1;9456:2;9436:18;;;9429:30;-1:-1:-1;;;9475:18:1;;;9468:49;9534:18;;6193:76:0;9215:343:1;6193:76:0;-1:-1:-1;;;;;6280:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6332:32;;413:25:1;;;6332:32:0;;386:18:1;6332:32:0;;;;;;;6099:273;;;:::o;19548:2008::-;19722:14;;;;:37;;;;-1:-1:-1;19746:13:0;;-1:-1:-1;;;;;19740:19:0;;;19746:13;;19740:19;;19722:37;:54;;;;-1:-1:-1;1100:6:0;;-1:-1:-1;;;;;19763:13:0;;;1100:6;;19763:13;;19722:54;19719:155;;;19830:9;;19801:25;19819:6;19801:13;19811:2;-1:-1:-1;;;;;3814:18:0;3796:7;3814:18;;;;;;;;;;;;3730:105;19801:13;:17;;:25::i;:::-;:38;;19793:69;;;;-1:-1:-1;;;19793:69:0;;9765:2:1;19793:69:0;;;9747:21:1;9804:2;9784:18;;;9777:30;-1:-1:-1;;;9823:18:1;;;9816:48;9881:18;;19793:69:0;9563:342:1;19793:69:0;19925:8;;19894:12;;19925:8;;;;;19924:9;:39;;;;-1:-1:-1;;;;;;19938:25:0;;;;;;:19;:25;;;;;;;;19937:26;19924:39;:67;;;;-1:-1:-1;;;;;;19968:23:0;;;;;;:19;:23;;;;;;;;19967:24;19924:67;:86;;;;-1:-1:-1;1100:6:0;;-1:-1:-1;;;;;19995:15:0;;;1100:6;;19995:15;;19924:86;:103;;;;-1:-1:-1;1100:6:0;;-1:-1:-1;;;;;20014:13:0;;;1100:6;;20014:13;;19924:103;19921:741;;;20054:13;;-1:-1:-1;;;;;20054:13:0;;;20046:21;;;;20043:608;;20102:34;20131:4;20102:24;20113:12;;20102:6;:10;;:24;;;;:::i;:::-;:28;;:34::i;:::-;20095:41;;20174:63;20195:41;20223:12;;20195:23;20204:13;;20195:4;:8;;:23;;;;:::i;:41::-;20174:16;;;:20;:63::i;:::-;20155:16;:82;20312:12;;20297:9;;20271:55;;20288:37;;:19;;:4;;:8;:19::i;:37::-;20271:12;;;:16;:55::i;:::-;20256:12;:70;20043:608;;;20357:13;;-1:-1:-1;;;;;20357:13:0;;;20351:19;;;;20348:303;;20406:35;20436:4;20406:25;20417:13;;20406:6;:10;;:25;;;;:::i;:35::-;20399:42;;20479:65;20500:43;20529:13;;20500:24;20509:14;;20500:4;:8;;:24;;;;:::i;20479:65::-;20460:16;:84;20620:13;;20604:10;;20578:57;;20595:39;;:20;;:4;;:8;:20::i;20578:57::-;20563:12;:72;20348:303;20675:8;;20672:122;;20700:42;20716:4;20730;20737;20700:15;:42::i;:::-;20766:16;:6;20777:4;20766:10;:16::i;:::-;20757:25;;20672:122;20804:33;20820:4;20826:2;20830:6;20804:15;:33::i;:::-;20904:15;;-1:-1:-1;;;;;20904:15:0;:26;20931:4;20937:15;20931:4;-1:-1:-1;;;;;3814:18:0;3796:7;3814:18;;;;;;;;;;;;3730:105;20937:15;20904:49;;-1:-1:-1;;;;;;20904:49:0;;;;;;;-1:-1:-1;;;;;10102:32:1;;;20904:49:0;;;10084:51:1;10151:18;;;10144:34;10057:18;;20904:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20964:15:0;;-1:-1:-1;;;;;20964:15:0;;-1:-1:-1;20964:26:0;;-1:-1:-1;20991:2:0;20995:13;20991:2;-1:-1:-1;;;;;3814:18:0;3796:7;3814:18;;;;;;;;;;;;3730:105;20995:13;20964:45;;-1:-1:-1;;;;;;20964:45:0;;;;;;;-1:-1:-1;;;;;10102:32:1;;;20964:45:0;;;10084:51:1;10151:18;;;10144:34;10057:18;;20964:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21100:8:0;;;;;;;;-1:-1:-1;21096:187:0;;-1:-1:-1;21096:187:0;21125:8;:15;;-1:-1:-1;;21125:15:0;;;;;21155;;:36;;-1:-1:-1;;;21155:36:0;;-1:-1:-1;;;;;640:32:1;;;21155:36:0;;;622:51:1;21155:15:0;;;;:30;;595:18:1;;21155:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21206:15:0;;:34;;-1:-1:-1;;;21206:34:0;;-1:-1:-1;;;;;640:32:1;;;21206:34:0;;;622:51:1;21206:15:0;;;;:30;;595:18:1;;21206:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21255:8:0;:16;;-1:-1:-1;;21255:16:0;;;21096:187;21427:8;;;;;;;21426:9;:59;;;;-1:-1:-1;21467:18:0;;21457:4;3796:7;3814:18;;;;;;;;;;;21439:46;;21426:59;:84;;;;-1:-1:-1;21497:13:0;;-1:-1:-1;;;;;21489:21:0;;;21497:13;;21489:21;;21426:84;21423:126;;;21527:10;:8;:10::i;6866:161::-;6924:7;;6956:5;6960:1;6956;:5;:::i;:::-;6944:17;;6976:1;6971;:6;;6963:46;;;;-1:-1:-1;;;6963:46:0;;10391:2:1;6963:46:0;;;10373:21:1;10430:2;10410:18;;;10403:30;10469:29;10449:18;;;10442:57;10516:18;;6963:46:0;10189:351:1;6963:46:0;7018:1;6866:161;-1:-1:-1;;;6866:161:0:o;7348:210::-;7406:7;7429:1;7434;7429:6;7426:19;;-1:-1:-1;7444:1:0;7437:8;;7426:19;7456:9;7468:5;7472:1;7468;:5;:::i;:::-;7456:17;-1:-1:-1;7492:1:0;7483:5;7487:1;7456:17;7483:5;:::i;:::-;:10;7475:56;;;;-1:-1:-1;;;7475:56:0;;11142:2:1;7475:56:0;;;11124:21:1;11181:2;11161:18;;;11154:30;11220:34;11200:18;;;11193:62;-1:-1:-1;;;11271:18:1;;;11264:31;11312:19;;7475:56:0;10940:397:1;7564:132:0;7622:7;7649:39;7653:1;7656;7649:39;;;;;;;;;;;;;;;;;:3;:39::i;5355:470::-;-1:-1:-1;;;;;5461:20:0;;;;;;:47;;-1:-1:-1;;;;;;5485:23:0;;;;5461:47;5453:79;;;;-1:-1:-1;;;5453:79:0;;9417:2:1;5453:79:0;;;9399:21:1;9456:2;9436:18;;;9429:30;-1:-1:-1;;;9475:18:1;;;9468:49;9534:18;;5453:79:0;9215:343:1;5453:79:0;-1:-1:-1;;;;;5567:17:0;;5543:21;5567:17;;;;;;;;;;;5603:23;;;;5595:63;;;;-1:-1:-1;;;5595:63:0;;11544:2:1;5595:63:0;;;11526:21:1;11583:2;11563:18;;;11556:30;11622:29;11602:18;;;11595:57;11669:18;;5595:63:0;11342:351:1;5595:63:0;-1:-1:-1;;;;;5681:17:0;;;:9;:17;;;;;;;;;;;5701:22;;;5681:42;;5736:20;;;;;;;;:30;;5717:6;;5681:9;5736:30;;5717:6;;5736:30;:::i;:::-;;;;;;;;5799:9;-1:-1:-1;;;;;5782:35:0;5791:6;-1:-1:-1;;;;;5782:35:0;;5810:6;5782:35;;;;413:25:1;;401:2;386:18;;267:177;5782:35:0;;;;;;;;5442:383;5355:470;;;:::o;7033:136::-;7091:7;7118:43;7122:1;7125;7118:43;;;;;;;;;;;;;;;;;:3;:43::i;21734:1134::-;21773:8;:15;;-1:-1:-1;;21773:15:0;;;;;21843:4;-1:-1:-1;3814:18:0;;;;;;;;;;;21799:50;;21860:25;21888:34;21909:12;;21888:16;;:20;;:34;;;;:::i;:::-;21860:62;-1:-1:-1;21936:20:0;;;:46;;-1:-1:-1;21960:22:0;;21936:46;21933:80;;;-1:-1:-1;;21986:8:0;:16;;-1:-1:-1;;21986:16:0;;;21734:1134::o;21933:80::-;22054:12;;;22102:16;;;22033:18;22129:16;;;;22156:20;;;22054:12;22258:28;22054:12;22258:16;:28::i;:::-;22313:9;;:48;;22298:9;;-1:-1:-1;;;;;22313:9:0;;22335:21;;22298:9;22313:48;22298:9;22313:48;22335:21;22313:9;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22297:64;;;22380:4;22372:36;;;;-1:-1:-1;;;22372:36:0;;12110:2:1;22372:36:0;;;12092:21:1;12149:2;12129:18;;;12122:30;-1:-1:-1;;;12168:18:1;;;12161:49;12227:18;;22372:36:0;11908:343:1;22372:36:0;22543:11;;22536:44;;-1:-1:-1;;;22536:44:0;;22574:4;22536:44;;;622:51:1;22509:24:0;;-1:-1:-1;;;;;22543:11:0;;22536:29;;595:18:1;;22536:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22509:71;;22591:35;22611:14;22591:19;:35::i;:::-;22667:11;;22660:44;;-1:-1:-1;;;22660:44:0;;22698:4;22660:44;;;622:51:1;22637:20:0;;22660:66;;22709:16;;-1:-1:-1;;;;;22667:11:0;;22660:29;;595:18:1;;22660:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:66::i;:::-;22637:89;-1:-1:-1;22740:16:0;;22737:97;;22773:15;;:49;;-1:-1:-1;;;22773:49:0;;;;;413:25:1;;;-1:-1:-1;;;;;22773:15:0;;;;:35;;386:18:1;;22773:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22737:97;-1:-1:-1;;22844:8:0;:16;;-1:-1:-1;;22844:16:0;;;-1:-1:-1;;;;;21734:1134:0:o;7702:166::-;7788:7;7823:12;7816:5;7808:28;;;;-1:-1:-1;;;7808:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7855:5:0;7859:1;7855;:5;:::i;:::-;7848:12;7702:166;-1:-1:-1;;;;7702:166:0:o;7175:167::-;7261:7;7297:12;7289:6;;;;7281:29;;;;-1:-1:-1;;;7281:29:0;;;;;;;;:::i;:::-;-1:-1:-1;7329:5:0;7333:1;7329;:5;:::i;22874:524::-;22964:16;;;22978:1;22964:16;;;;;;;;22940:21;;22964:16;;;;;;;;;;-1:-1:-1;22964:16:0;22940:40;;23009:4;22991;22996:1;22991:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22991:23:0;;;:7;;;;;;;;;;:23;;;;23078:15;;:22;;;-1:-1:-1;;;23078:22:0;;;;:15;;;;;:20;;:22;;;;;22991:7;;23078:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23068:4;23073:1;23068:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23068:32:0;;;:7;;;;;;;;;:32;23153:15;;23121:62;;23138:4;;23153:15;23171:11;23121:8;:62::i;:::-;23194:15;;:196;;-1:-1:-1;;;23194:196:0;;-1:-1:-1;;;;;23194:15:0;;;;:66;;:196;;23275:11;;23194:15;;23317:4;;23344;;23364:15;;23194:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22929:469;22874:524;:::o;23404:562::-;23497:16;;;23511:1;23497:16;;;;;;;;;23473:21;;23497:16;;;;;;;;;;-1:-1:-1;23497:16:0;23473:40;;23542:4;23524;23529:1;23524:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23524:23:0;;;:7;;;;;;;;;;:23;;;;23611:15;;:22;;;-1:-1:-1;;;23611:22:0;;;;:15;;;;;:20;;:22;;;;;23524:7;;23611:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23601:4;23606:1;23601:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23601:32:0;;;:7;;;;;;;;;:32;23654:11;;23644:7;;23654:11;;;23644:4;;23649:1;;23644:7;;;;;;:::i;:::-;-1:-1:-1;;;;;23644:21:0;;;:7;;;;;;;;;:21;23718:15;;23686:62;;23703:4;;23718:15;23736:11;23686:8;:62::i;:::-;23759:15;;:199;;-1:-1:-1;;;23759:199:0;;-1:-1:-1;;;;;23759:15:0;;;;:69;;:199;;23843:11;;23759:15;;23885:4;;23912;;23932:15;;23759:199;;;:::i;-1:-1:-1:-;;;;;;;;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;684:548::-;796:4;825:2;854;843:9;836:21;886:6;880:13;929:6;924:2;913:9;909:18;902:34;954:1;964:140;978:6;975:1;972:13;964:140;;;1073:14;;;1069:23;;1063:30;1039:17;;;1058:2;1035:26;1028:66;993:10;;964:140;;;968:3;1153:1;1148:2;1139:6;1128:9;1124:22;1120:31;1113:42;1223:2;1216;1212:7;1207:2;1199:6;1195:15;1191:29;1180:9;1176:45;1172:54;1164:62;;;;684:548;;;;:::o;1237:131::-;-1:-1:-1;;;;;1312:31:1;;1302:42;;1292:70;;1358:1;1355;1348:12;1373:315;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;1678:2;1663:18;;;;1650:32;;-1:-1:-1;;;1373:315:1:o;1885:456::-;1962:6;1970;1978;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2086:9;2073:23;2105:31;2130:5;2105:31;:::i;:::-;2155:5;-1:-1:-1;2212:2:1;2197:18;;2184:32;2225:33;2184:32;2225:33;:::i;:::-;1885:456;;2277:7;;-1:-1:-1;;;2331:2:1;2316:18;;;;2303:32;;1885:456::o;2975:247::-;3034:6;3087:2;3075:9;3066:7;3062:23;3058:32;3055:52;;;3103:1;3100;3093:12;3055:52;3142:9;3129:23;3161:31;3186:5;3161:31;:::i;3227:160::-;3292:20;;3348:13;;3341:21;3331:32;;3321:60;;3377:1;3374;3367:12;3321:60;3227:160;;;:::o;3392:315::-;3457:6;3465;3518:2;3506:9;3497:7;3493:23;3489:32;3486:52;;;3534:1;3531;3524:12;3486:52;3573:9;3560:23;3592:31;3617:5;3592:31;:::i;:::-;3642:5;-1:-1:-1;3666:35:1;3697:2;3682:18;;3666:35;:::i;:::-;3656:45;;3392:315;;;;;:::o;3712:180::-;3771:6;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;-1:-1:-1;3863:23:1;;3712:180;-1:-1:-1;3712:180:1:o;3897:689::-;3989:6;3997;4005;4058:2;4046:9;4037:7;4033:23;4029:32;4026:52;;;4074:1;4071;4064:12;4026:52;4114:9;4101:23;4143:18;4184:2;4176:6;4173:14;4170:34;;;4200:1;4197;4190:12;4170:34;4238:6;4227:9;4223:22;4213:32;;4283:7;4276:4;4272:2;4268:13;4264:27;4254:55;;4305:1;4302;4295:12;4254:55;4345:2;4332:16;4371:2;4363:6;4360:14;4357:34;;;4387:1;4384;4377:12;4357:34;4442:7;4435:4;4425:6;4422:1;4418:14;4414:2;4410:23;4406:34;4403:47;4400:67;;;4463:1;4460;4453:12;4400:67;4494:4;4486:13;;;;-1:-1:-1;4518:6:1;-1:-1:-1;4543:37:1;;4559:20;;;-1:-1:-1;4543:37:1;:::i;:::-;4533:47;;3897:689;;;;;:::o;4591:388::-;4659:6;4667;4720:2;4708:9;4699:7;4695:23;4691:32;4688:52;;;4736:1;4733;4726:12;4688:52;4775:9;4762:23;4794:31;4819:5;4794:31;:::i;:::-;4844:5;-1:-1:-1;4901:2:1;4886:18;;4873:32;4914:33;4873:32;4914:33;:::i;:::-;4966:7;4956:17;;;4591:388;;;;;:::o;4984:356::-;5186:2;5168:21;;;5205:18;;;5198:30;5264:34;5259:2;5244:18;;5237:62;5331:2;5316:18;;4984:356::o;5345:127::-;5406:10;5401:3;5397:20;5394:1;5387:31;5437:4;5434:1;5427:15;5461:4;5458:1;5451:15;5477:125;5542:9;;;5563:10;;;5560:36;;;5576:18;;:::i;5954:380::-;6033:1;6029:12;;;;6076;;;6097:61;;6151:4;6143:6;6139:17;6129:27;;6097:61;6204:2;6196:6;6193:14;6173:18;6170:38;6167:161;;6250:10;6245:3;6241:20;6238:1;6231:31;6285:4;6282:1;6275:15;6313:4;6310:1;6303:15;6167:161;;5954:380;;;:::o;6741:184::-;6811:6;6864:2;6852:9;6843:7;6839:23;6835:32;6832:52;;;6880:1;6877;6870:12;6832:52;-1:-1:-1;6903:16:1;;6741:184;-1:-1:-1;6741:184:1:o;7276:336::-;7478:2;7460:21;;;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7551:2:1;7536:18;;7529:42;7603:2;7588:18;;7276:336::o;8023:127::-;8084:10;8079:3;8075:20;8072:1;8065:31;8115:4;8112:1;8105:15;8139:4;8136:1;8129:15;8155:135;8194:3;8215:17;;;8212:43;;8235:18;;:::i;:::-;-1:-1:-1;8282:1:1;8271:13;;8155:135::o;8295:251::-;8365:6;8418:2;8406:9;8397:7;8393:23;8389:32;8386:52;;;8434:1;8431;8424:12;8386:52;8466:9;8460:16;8485:31;8510:5;8485:31;:::i;10545:168::-;10618:9;;;10649;;10666:15;;;10660:22;;10646:37;10636:71;;10687:18;;:::i;10718:217::-;10758:1;10784;10774:132;;10828:10;10823:3;10819:20;10816:1;10809:31;10863:4;10860:1;10853:15;10891:4;10888:1;10881:15;10774:132;-1:-1:-1;10920:9:1;;10718:217::o;12256:128::-;12323:9;;;12344:11;;;12341:37;;;12358:18;;:::i;12521:980::-;12783:4;12831:3;12820:9;12816:19;12862:6;12851:9;12844:25;12888:2;12926:6;12921:2;12910:9;12906:18;12899:34;12969:3;12964:2;12953:9;12949:18;12942:31;12993:6;13028;13022:13;13059:6;13051;13044:22;13097:3;13086:9;13082:19;13075:26;;13136:2;13128:6;13124:15;13110:29;;13157:1;13167:195;13181:6;13178:1;13175:13;13167:195;;;13246:13;;-1:-1:-1;;;;;13242:39:1;13230:52;;13337:15;;;;13302:12;;;;13278:1;13196:9;13167:195;;;-1:-1:-1;;;;;;;13418:32:1;;;;13413:2;13398:18;;13391:60;-1:-1:-1;;;13482:3:1;13467:19;13460:35;13379:3;12521:980;-1:-1:-1;;;12521:980:1:o
Swarm Source
ipfs://e07ca4e23d43ae05d411fa71dadf97bb053aca6b82c931ad996f69adb341d960
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.