Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 KITTY
Holders
60
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
26,404.162297743 KITTYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CTA
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-14 */ /** First FiveM play to earn(P2E) server. Website: http://cta-vicekitty.com/ Telegram: https://t.me/CatTheftAutoV Twitter: https://x.com/CatTheftAutoV Discord: https://discord.gg/YcAYG5eVuR FiveM: https://servers.fivem.net/servers/detail/543kbz Gitbook: https://cattheftauto.gitbook.io/welcome-to-vice-kitty TikTok: https://www.tiktok.com/@ctavicekitty Insta: https://www.instagram.com/ctavicekitty **/ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.26; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } contract CTA is Ownable, ERC20 { address immutable WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "Cat Theft Auto"; string constant _symbol = "KITTY"; uint8 constant _decimals = 9; uint256 constant _totalSupply = 10000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply / 50; uint256 public _maxWalletAmount = _totalSupply / 50; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 private buyMarketingFee = 15; uint256 private buyTeamFee = 10; uint256 public buyTotalFee = buyTeamFee + buyMarketingFee; uint256 private sellMarketingFee = 15; uint256 private sellTeamFee = 10; uint256 public sellTotalFee = sellTeamFee + sellMarketingFee; uint256 constant transferFee = 0; uint256 private lastSwap; address private marketingFeeReceiver; address private teamFeeReceiver; IDEXRouter public router; InterfaceLP private pairContract; address immutable public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 100; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event maxWalletUpdated(uint256 indexed maxWalletAmount); event maxTxUpdated(uint256 indexed maxTxAmount); event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount); event exemptFees(address indexed holder, bool indexed exempt); event exemptTxLimit(address indexed holder, bool indexed exempt); event buyFeesUpdated(uint256 indexed buyTeamFee, uint256 indexed buyMarketingFee); event sellFeesUpdated(uint256 indexed sellTeamFee, uint256 indexed sellMarketingFee); event feesWalletsUpdated(address indexed marketingFeeReceiver, address indexed teamFeeReceiver); event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount); event tradingEnabled(bool indexed enabled, uint256 indexed startTime); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0x7AA30fC45E2FB7F48817A165dB31C69Ea3d945cA; teamFeeReceiver = 0x33A458BaED7AD1864A12C1F7843000Fa84f444CE; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "Spender is the zero address"); _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveAll(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { require(recipient != address(0), "Recipient is the zero address"); return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(sender != address(0), "Sender is the zero address"); require(recipient != address(0), "Recipient is the zero address"); uint256 currentAllowance = _allowances[sender][_msgSender()]; if(currentAllowance != type(uint256).max){ require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _allowances[sender][_msgSender()] = currentAllowance - amount; } } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWalletPercent) external onlyOwner { require(maxWalletPercent >= 5); _maxWalletAmount = (_totalSupply * maxWalletPercent ) / 1000; emit maxWalletUpdated(_maxWalletAmount); } function setMaxTx(uint256 maxTxPercent) external onlyOwner { require(maxTxPercent >= 5); _maxTxAmount = (_totalSupply * maxTxPercent ) / 1000; emit maxTxUpdated(_maxTxAmount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(sender != owner()){ require(TradingOpen,"Trading not open yet"); } checkTxLimit(sender, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); if (sender != owner() && (recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");} if( lastSwap != block.number && _balances[address(this)] >= swapThreshold && swapEnabled && !inSwap && recipient == pair ){ swapBack(); lastSwap = block.number; } unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 feeAmount = 0; if(recipient == pair) { feeAmount = (amount * sellTotalFee) / 100; } else if(sender == pair) { feeAmount = (amount * buyTotalFee) / 100; }else{ feeAmount = (amount * transferFee) / 100; } _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); uint256 notFeeAmount = amount - feeAmount; return notFeeAmount; } function removeMaxLimits() external onlyOwner { _maxWalletAmount = _totalSupply; _maxTxAmount = _totalSupply; emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool) { require(msg.sender == marketingFeeReceiver || msg.sender == teamFeeReceiver); require(address(tokenAddress) != address(this)); if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function WhoLetTheCatOut() external onlyOwner { require(!TradingOpen,"Trading already Enabled."); TradingOpen = true; lastSwap = block.number; emit tradingEnabled(TradingOpen, lastSwap); } function swapBack() internal swapping { uint256 totalFee = buyTotalFee + sellTotalFee; uint256 teamFee = buyTeamFee + sellTeamFee; uint256 amountETHteam = 0; uint256 amountETHMarketing = 0; uint256 amountToSwap = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 totalETHFee = address(this).balance; if(totalFee == 0) { amountETHteam = 0; } else { amountETHteam = (totalETHFee * teamFee) / totalFee; } amountETHMarketing = totalETHFee - amountETHteam; (bool tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); require(tmpSuccess, "Failed to send ether to Team Fee Receiver."); (bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver."); } function exemptAll(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; emit exemptFees(holder, exempt); } function setTxLimitExempt(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isTxLimitExempt[holder] = exempt; emit exemptTxLimit(holder, exempt); } function updateBuyFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner { require( _teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); buyTeamFee = _teamFee; buyMarketingFee = _marketingFee; buyTotalFee =_teamFee+ _marketingFee; emit buyFeesUpdated(buyTeamFee, buyMarketingFee); } function updateSellFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner { require(_teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); sellTeamFee = _teamFee; sellMarketingFee = _marketingFee; sellTotalFee =_teamFee+ _marketingFee; emit sellFeesUpdated(sellTeamFee, sellMarketingFee); } function updateReceiverWallets( address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner { require(_marketingFeeReceiver != address(0) && _teamFeeReceiver != address(0) , "Fee receiver cannot be zero address"); marketingFeeReceiver = _marketingFeeReceiver; teamFeeReceiver = _teamFeeReceiver; emit feesWalletsUpdated(marketingFeeReceiver, teamFeeReceiver); } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount * 10**_decimals; emit swapbackSettingsUpdated(_enabled, _amount); } }
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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"buyMarketingFee","type":"uint256"}],"name":"buyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"teamFeeReceiver","type":"address"}],"name":"feesWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellMarketingFee","type":"uint256"}],"name":"sellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WhoLetTheCatOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveAll","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":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260326100126009600a6104cb565b61001f90629896806104e0565b61002991906104f7565b600155603261003a6009600a6104cb565b61004790629896806104e0565b61005191906104f7565b600255600f600755600a60085560075460085461006e9190610516565b600955600f600a818155600b8190556100879190610516565b600c556011805461ffff60a01b1916600160a81b17905560646100ac6009600a6104cb565b6100b990629896806104e0565b6100c391906104f7565b6012553480156100d1575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015610174573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101989190610529565b6001600160a01b039081166080526010546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156101e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020a9190610529565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015610258573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c9190610529565b6001600160a01b0390811660a0819052601180546001600160a01b03199081168317909155305f8181526004602090815260408083206010548816845282528083205f199055600e80548616737aa30fc45e2fb7f48817a165db31c69ea3d945ca178155600f80549096167333a458baed7ad1864a12c1f7843000fa84f444ce1790955533835260058252808320805460ff1990811660019081179092556006909352818420805484168217905595835280832080548316871790559354909516815282812080548616851790559081522080549092161790556103626009600a6104cb565b61036f90629896806104e0565b335f81815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103af6009600a6104cb565b6103bc90629896806104e0565b60405190815260200160405180910390a361054f565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561042157808504811115610405576104056103d2565b600184161561041357908102905b60019390931c9280026103ea565b935093915050565b5f82610437575060016104c5565b8161044357505f6104c5565b816001811461045957600281146104635761047f565b60019150506104c5565b60ff841115610474576104746103d2565b50506001821b6104c5565b5060208310610133831016604e8410600b84101617156104a2575081810a6104c5565b6104ae5f1984846103e6565b805f19048211156104c1576104c16103d2565b0290505b92915050565b5f6104d960ff841683610429565b9392505050565b80820281158282048414176104c5576104c56103d2565b5f8261051157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156104c5576104c56103d2565b5f60208284031215610539575f80fd5b81516001600160a01b03811681146104d9575f80fd5b60805160a0516120ac61058c5f395f818161054d015281816114b90152818161161b0152818161183c015261188801525f6119f301526120ac5ff3fe6080604052600436106101fe575f3560e01c806370a0823111610113578063a9059cbb1161009d578063dd62ed3e1161006d578063dd62ed3e146105ea578063e5ae73df1461062e578063f2fde38b14610642578063f6a78e1714610661578063f887ea4014610675575f80fd5b8063a9059cbb1461056f578063b2bdfa7b1461058e578063bc337182146105ac578063ccf8c036146105cb575f80fd5b8063893d20e8116100e3578063893d20e8146104a45780638d7a8ba7146104d45780638da5cb5b146104f357806395d89b411461050f578063a8aa1b311461053c575f80fd5b806370a0823114610428578063715018a61461045c57806377b54bad146104705780637d1db4a51461048f575f80fd5b8063121555a6116101945780633705b392116101645780633705b392146103a05780635d0044ca146103b557806366ca9b83146103d45780636c0a24eb146103f35780636ddd171314610408575f80fd5b8063121555a61461033357806318160ddd1461035257806323b872dd14610366578063313ce56714610385575f80fd5b80630621472c116101cf5780630621472c1461028657806306fdde03146102b557806308fd3d05146102f4578063095ea7b314610314575f80fd5b8062afb3251461020957806302dbd8f81461023157806304368f65146102525780630445b66714610271575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b5061021e600c5481565b6040519081526020015b60405180910390f35b34801561023c575f80fd5b5061025061024b366004611c50565b610694565b005b34801561025d575f80fd5b5061025061026c366004611c80565b610769565b34801561027c575f80fd5b5061021e60125481565b348015610291575f80fd5b506102a56102a0366004611cc5565b6107f4565b6040519015158152602001610228565b3480156102c0575f80fd5b5060408051808201909152600e81526d436174205468656674204175746f60901b60208201525b6040516102289190611cde565b3480156102ff575f80fd5b506011546102a590600160a01b900460ff1681565b34801561031f575f80fd5b506102a561032e366004611d13565b610806565b34801561033e575f80fd5b5061025061034d366004611d2d565b6108c0565b34801561035d575f80fd5b5061021e6109be565b348015610371575f80fd5b506102a5610380366004611d5e565b6109dd565b348015610390575f80fd5b5060405160098152602001610228565b3480156103ab575f80fd5b5061021e60095481565b3480156103c0575f80fd5b506102506103cf366004611d98565b610b54565b3480156103df575f80fd5b506102506103ee366004611c50565b610beb565b3480156103fe575f80fd5b5061021e60025481565b348015610413575f80fd5b506011546102a590600160a81b900460ff1681565b348015610433575f80fd5b5061021e610442366004611cc5565b6001600160a01b03165f9081526003602052604090205490565b348015610467575f80fd5b50610250610cb7565b34801561047b575f80fd5b506102a561048a366004611d13565b610d28565b34801561049a575f80fd5b5061021e60015481565b3480156104af575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610228565b3480156104df575f80fd5b506102506104ee366004611daf565b610e47565b3480156104fe575f80fd5b505f546001600160a01b03166104bc565b34801561051a575f80fd5b506040805180820190915260058152644b4954545960d81b60208201526102e7565b348015610547575f80fd5b506104bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057a575f80fd5b506102a5610589366004611d13565b610f19565b348015610599575f80fd5b505f546104bc906001600160a01b031681565b3480156105b7575f80fd5b506102506105c6366004611d98565b610f7b565b3480156105d6575f80fd5b506102506105e5366004611daf565b611012565b3480156105f5575f80fd5b5061021e610604366004611d2d565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610639575f80fd5b506102506110f8565b34801561064d575f80fd5b5061025061065c366004611cc5565b6111ce565b34801561066c575f80fd5b506102506112b5565b348015610680575f80fd5b506010546104bc906001600160a01b031681565b5f546001600160a01b031633146106c65760405162461bcd60e51b81526004016106bd90611de4565b60405180910390fd5b60056106d28284611e2d565b11156107205760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106bd565b600b829055600a8190556107348183611e2d565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107925760405162461bcd60e51b81526004016106bd90611de4565b6011805460ff60a81b1916600160a81b841515021790556107b56009600a611f23565b6107bf9082611f31565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610800825f19610806565b92915050565b5f6001600160a01b03831661085d5760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106bd565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108e95760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b0382161580159061090957506001600160a01b03811615155b6109615760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106bd565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109cb6009600a611f23565b6109d89062989680611f31565b905090565b5f6001600160a01b038416610a345760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b038316610a8a5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106bd565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b3e5782811015610b165760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106bd565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b49858585611345565b9150505b9392505050565b5f546001600160a01b03163314610b7d5760405162461bcd60e51b81526004016106bd90611de4565b6005811015610b8a575f80fd5b6103e881610b9a6009600a611f23565b610ba79062989680611f31565b610bb19190611f31565b610bbb9190611f48565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c145760405162461bcd60e51b81526004016106bd90611de4565b6005610c208284611e2d565b1115610c6e5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106bd565b60088290556007819055610c828183611e2d565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610ce05760405162461bcd60e51b81526004016106bd90611de4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610d4d5750600f546001600160a01b031633145b610d55575f80fd5b306001600160a01b03841603610d69575f80fd5b815f03610dd9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610db2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd69190611f67565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d9190611f7e565b5f546001600160a01b03163314610e705760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b038216610ec65760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b038316610f705760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106bd565b610b4d338484611345565b5f546001600160a01b03163314610fa45760405162461bcd60e51b81526004016106bd90611de4565b6005811015610fb1575f80fd5b6103e881610fc16009600a611f23565b610fce9062989680611f31565b610fd89190611f31565b610fe29190611f48565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b0316331461103b5760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b0382166110915760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b031633146111215760405162461bcd60e51b81526004016106bd90611de4565b601154600160a01b900460ff161561117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106bd565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b031633146111f75760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b03811661125c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bd565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112de5760405162461bcd60e51b81526004016106bd90611de4565b6112ea6009600a611f23565b6112f79062989680611f31565b6002556113066009600a611f23565b6113139062989680611f31565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113645761135d8484846116f7565b9050610b4d565b5f546001600160a01b038581169116146113c857601154600160a01b900460ff166113c85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106bd565b6113d284836117c4565b6001600160a01b0384165f908152600360205260409020548281101561140a5760405162461bcd60e51b81526004016106bd90611f99565b6001600160a01b0385165f9081526005602052604081205460ff168061144757506001600160a01b0385165f9081526005602052604090205460ff165b61145b57611456868587611830565b61145d565b835b90506114705f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561152c57506001600160a01b03851630148015906114b057506001600160a01b03851661dead14155b80156114ee57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156115085750600e546001600160a01b03868116911614155b801561152c57506001600160a01b0385165f9081526006602052604090205460ff16155b156115cc576001600160a01b0385165f908152600360205260409020546002546115568383611e2d565b11156115ca5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106bd565b505b43600d54141580156115ee5750601254305f9081526003602052604090205410155b80156116035750601154600160a81b900460ff165b8015611612575060135460ff16155b801561164f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b156116615761165c611960565b43600d555b6001600160a01b038087165f90815260036020526040808220878603905591871681529081208054839290611697908490611e2d565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116e391815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f908152600360205260408120548281101561172f5760405162461bcd60e51b81526004016106bd90611f99565b6001600160a01b038086165f90815260036020526040808220868503905591861681529081208054859290611765908490611e2d565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117b191815260200190565b60405180910390a3506001949350505050565b600154811115806117ec57506001600160a01b0382165f9081526006602052604090205460ff165b61182c5760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106bd565b5050565b5f806001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611886576064600c54856118759190611f31565b61187f9190611f48565b90506118e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036118cf576064600954856118759190611f31565b60646118db5f86611f31565b6118e59190611f48565b90505b305f9081526003602052604081208054839290611906908490611e2d565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119568286611fdf565b9695505050505050565b6013805460ff19166001179055600c546009545f9161197e91611e2d565b90505f600b546008546119919190611e2d565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f815181106119d1576119d1611ff2565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611a2557611a25611ff2565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611a6a9085905f90869030904290600401612006565b5f604051808303815f87803b158015611a81575f80fd5b505af1158015611a93573d5f803e3d5ffd5b5047925050505f879003611aa9575f9450611ac1565b86611ab48783611f31565b611abe9190611f48565b94505b611acb8582611fdf565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b1a576040519150601f19603f3d011682016040523d82523d5f602084013e611b1f565b606091505b5050905080611b835760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106bd565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611bcd576040519150601f19603f3d011682016040523d82523d5f602084013e611bd2565b606091505b5050905080611c3b5760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106bd565b50506013805460ff1916905550505050505050565b5f8060408385031215611c61575f80fd5b50508035926020909101359150565b8015158114611c7d575f80fd5b50565b5f8060408385031215611c91575f80fd5b8235611c9c81611c70565b946020939093013593505050565b80356001600160a01b0381168114611cc0575f80fd5b919050565b5f60208284031215611cd5575f80fd5b610b4d82611caa565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d24575f80fd5b611c9c83611caa565b5f8060408385031215611d3e575f80fd5b611d4783611caa565b9150611d5560208401611caa565b90509250929050565b5f805f60608486031215611d70575f80fd5b611d7984611caa565b9250611d8760208501611caa565b929592945050506040919091013590565b5f60208284031215611da8575f80fd5b5035919050565b5f8060408385031215611dc0575f80fd5b611dc983611caa565b91506020830135611dd981611c70565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080057610800611e19565b6001815b6001841115611e7b57808504811115611e5f57611e5f611e19565b6001841615611e6d57908102905b60019390931c928002611e44565b935093915050565b5f82611e9157506001610800565b81611e9d57505f610800565b8160018114611eb35760028114611ebd57611ed9565b6001915050610800565b60ff841115611ece57611ece611e19565b50506001821b610800565b5060208310610133831016604e8410600b8410161715611efc575081810a610800565b611f085f198484611e40565b805f1904821115611f1b57611f1b611e19565b029392505050565b5f610b4d60ff841683611e83565b808202811582820484141761080057610800611e19565b5f82611f6257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f77575f80fd5b5051919050565b5f60208284031215611f8e575f80fd5b8151610b4d81611c70565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8181038181111561080057610800611e19565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120565783516001600160a01b031683526020938401939092019160010161202f565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c0416ec679e1e15df76a653206cf50aacb02aa7d0604737e543fe53d35d9c20864736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101fe575f3560e01c806370a0823111610113578063a9059cbb1161009d578063dd62ed3e1161006d578063dd62ed3e146105ea578063e5ae73df1461062e578063f2fde38b14610642578063f6a78e1714610661578063f887ea4014610675575f80fd5b8063a9059cbb1461056f578063b2bdfa7b1461058e578063bc337182146105ac578063ccf8c036146105cb575f80fd5b8063893d20e8116100e3578063893d20e8146104a45780638d7a8ba7146104d45780638da5cb5b146104f357806395d89b411461050f578063a8aa1b311461053c575f80fd5b806370a0823114610428578063715018a61461045c57806377b54bad146104705780637d1db4a51461048f575f80fd5b8063121555a6116101945780633705b392116101645780633705b392146103a05780635d0044ca146103b557806366ca9b83146103d45780636c0a24eb146103f35780636ddd171314610408575f80fd5b8063121555a61461033357806318160ddd1461035257806323b872dd14610366578063313ce56714610385575f80fd5b80630621472c116101cf5780630621472c1461028657806306fdde03146102b557806308fd3d05146102f4578063095ea7b314610314575f80fd5b8062afb3251461020957806302dbd8f81461023157806304368f65146102525780630445b66714610271575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b5061021e600c5481565b6040519081526020015b60405180910390f35b34801561023c575f80fd5b5061025061024b366004611c50565b610694565b005b34801561025d575f80fd5b5061025061026c366004611c80565b610769565b34801561027c575f80fd5b5061021e60125481565b348015610291575f80fd5b506102a56102a0366004611cc5565b6107f4565b6040519015158152602001610228565b3480156102c0575f80fd5b5060408051808201909152600e81526d436174205468656674204175746f60901b60208201525b6040516102289190611cde565b3480156102ff575f80fd5b506011546102a590600160a01b900460ff1681565b34801561031f575f80fd5b506102a561032e366004611d13565b610806565b34801561033e575f80fd5b5061025061034d366004611d2d565b6108c0565b34801561035d575f80fd5b5061021e6109be565b348015610371575f80fd5b506102a5610380366004611d5e565b6109dd565b348015610390575f80fd5b5060405160098152602001610228565b3480156103ab575f80fd5b5061021e60095481565b3480156103c0575f80fd5b506102506103cf366004611d98565b610b54565b3480156103df575f80fd5b506102506103ee366004611c50565b610beb565b3480156103fe575f80fd5b5061021e60025481565b348015610413575f80fd5b506011546102a590600160a81b900460ff1681565b348015610433575f80fd5b5061021e610442366004611cc5565b6001600160a01b03165f9081526003602052604090205490565b348015610467575f80fd5b50610250610cb7565b34801561047b575f80fd5b506102a561048a366004611d13565b610d28565b34801561049a575f80fd5b5061021e60015481565b3480156104af575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610228565b3480156104df575f80fd5b506102506104ee366004611daf565b610e47565b3480156104fe575f80fd5b505f546001600160a01b03166104bc565b34801561051a575f80fd5b506040805180820190915260058152644b4954545960d81b60208201526102e7565b348015610547575f80fd5b506104bc7f000000000000000000000000a402ce61f0e3bdddaff7193931908a4f63f0e13b81565b34801561057a575f80fd5b506102a5610589366004611d13565b610f19565b348015610599575f80fd5b505f546104bc906001600160a01b031681565b3480156105b7575f80fd5b506102506105c6366004611d98565b610f7b565b3480156105d6575f80fd5b506102506105e5366004611daf565b611012565b3480156105f5575f80fd5b5061021e610604366004611d2d565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610639575f80fd5b506102506110f8565b34801561064d575f80fd5b5061025061065c366004611cc5565b6111ce565b34801561066c575f80fd5b506102506112b5565b348015610680575f80fd5b506010546104bc906001600160a01b031681565b5f546001600160a01b031633146106c65760405162461bcd60e51b81526004016106bd90611de4565b60405180910390fd5b60056106d28284611e2d565b11156107205760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106bd565b600b829055600a8190556107348183611e2d565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107925760405162461bcd60e51b81526004016106bd90611de4565b6011805460ff60a81b1916600160a81b841515021790556107b56009600a611f23565b6107bf9082611f31565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610800825f19610806565b92915050565b5f6001600160a01b03831661085d5760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106bd565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108e95760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b0382161580159061090957506001600160a01b03811615155b6109615760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106bd565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109cb6009600a611f23565b6109d89062989680611f31565b905090565b5f6001600160a01b038416610a345760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b038316610a8a5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106bd565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b3e5782811015610b165760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106bd565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b49858585611345565b9150505b9392505050565b5f546001600160a01b03163314610b7d5760405162461bcd60e51b81526004016106bd90611de4565b6005811015610b8a575f80fd5b6103e881610b9a6009600a611f23565b610ba79062989680611f31565b610bb19190611f31565b610bbb9190611f48565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c145760405162461bcd60e51b81526004016106bd90611de4565b6005610c208284611e2d565b1115610c6e5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106bd565b60088290556007819055610c828183611e2d565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610ce05760405162461bcd60e51b81526004016106bd90611de4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610d4d5750600f546001600160a01b031633145b610d55575f80fd5b306001600160a01b03841603610d69575f80fd5b815f03610dd9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610db2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd69190611f67565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4d9190611f7e565b5f546001600160a01b03163314610e705760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b038216610ec65760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b038316610f705760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106bd565b610b4d338484611345565b5f546001600160a01b03163314610fa45760405162461bcd60e51b81526004016106bd90611de4565b6005811015610fb1575f80fd5b6103e881610fc16009600a611f23565b610fce9062989680611f31565b610fd89190611f31565b610fe29190611f48565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b0316331461103b5760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b0382166110915760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106bd565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b031633146111215760405162461bcd60e51b81526004016106bd90611de4565b601154600160a01b900460ff161561117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106bd565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b031633146111f75760405162461bcd60e51b81526004016106bd90611de4565b6001600160a01b03811661125c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bd565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112de5760405162461bcd60e51b81526004016106bd90611de4565b6112ea6009600a611f23565b6112f79062989680611f31565b6002556113066009600a611f23565b6113139062989680611f31565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113645761135d8484846116f7565b9050610b4d565b5f546001600160a01b038581169116146113c857601154600160a01b900460ff166113c85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106bd565b6113d284836117c4565b6001600160a01b0384165f908152600360205260409020548281101561140a5760405162461bcd60e51b81526004016106bd90611f99565b6001600160a01b0385165f9081526005602052604081205460ff168061144757506001600160a01b0385165f9081526005602052604090205460ff165b61145b57611456868587611830565b61145d565b835b90506114705f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561152c57506001600160a01b03851630148015906114b057506001600160a01b03851661dead14155b80156114ee57507f000000000000000000000000a402ce61f0e3bdddaff7193931908a4f63f0e13b6001600160a01b0316856001600160a01b031614155b80156115085750600e546001600160a01b03868116911614155b801561152c57506001600160a01b0385165f9081526006602052604090205460ff16155b156115cc576001600160a01b0385165f908152600360205260409020546002546115568383611e2d565b11156115ca5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106bd565b505b43600d54141580156115ee5750601254305f9081526003602052604090205410155b80156116035750601154600160a81b900460ff165b8015611612575060135460ff16155b801561164f57507f000000000000000000000000a402ce61f0e3bdddaff7193931908a4f63f0e13b6001600160a01b0316856001600160a01b0316145b156116615761165c611960565b43600d555b6001600160a01b038087165f90815260036020526040808220878603905591871681529081208054839290611697908490611e2d565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116e391815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f908152600360205260408120548281101561172f5760405162461bcd60e51b81526004016106bd90611f99565b6001600160a01b038086165f90815260036020526040808220868503905591861681529081208054859290611765908490611e2d565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117b191815260200190565b60405180910390a3506001949350505050565b600154811115806117ec57506001600160a01b0382165f9081526006602052604090205460ff165b61182c5760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106bd565b5050565b5f806001600160a01b037f000000000000000000000000a402ce61f0e3bdddaff7193931908a4f63f0e13b811690841603611886576064600c54856118759190611f31565b61187f9190611f48565b90506118e8565b7f000000000000000000000000a402ce61f0e3bdddaff7193931908a4f63f0e13b6001600160a01b0316856001600160a01b0316036118cf576064600954856118759190611f31565b60646118db5f86611f31565b6118e59190611f48565b90505b305f9081526003602052604081208054839290611906908490611e2d565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119568286611fdf565b9695505050505050565b6013805460ff19166001179055600c546009545f9161197e91611e2d565b90505f600b546008546119919190611e2d565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f815181106119d1576119d1611ff2565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611a2557611a25611ff2565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611a6a9085905f90869030904290600401612006565b5f604051808303815f87803b158015611a81575f80fd5b505af1158015611a93573d5f803e3d5ffd5b5047925050505f879003611aa9575f9450611ac1565b86611ab48783611f31565b611abe9190611f48565b94505b611acb8582611fdf565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b1a576040519150601f19603f3d011682016040523d82523d5f602084013e611b1f565b606091505b5050905080611b835760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106bd565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611bcd576040519150601f19603f3d011682016040523d82523d5f602084013e611bd2565b606091505b5050905080611c3b5760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106bd565b50506013805460ff1916905550505050505050565b5f8060408385031215611c61575f80fd5b50508035926020909101359150565b8015158114611c7d575f80fd5b50565b5f8060408385031215611c91575f80fd5b8235611c9c81611c70565b946020939093013593505050565b80356001600160a01b0381168114611cc0575f80fd5b919050565b5f60208284031215611cd5575f80fd5b610b4d82611caa565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d24575f80fd5b611c9c83611caa565b5f8060408385031215611d3e575f80fd5b611d4783611caa565b9150611d5560208401611caa565b90509250929050565b5f805f60608486031215611d70575f80fd5b611d7984611caa565b9250611d8760208501611caa565b929592945050506040919091013590565b5f60208284031215611da8575f80fd5b5035919050565b5f8060408385031215611dc0575f80fd5b611dc983611caa565b91506020830135611dd981611c70565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080057610800611e19565b6001815b6001841115611e7b57808504811115611e5f57611e5f611e19565b6001841615611e6d57908102905b60019390931c928002611e44565b935093915050565b5f82611e9157506001610800565b81611e9d57505f610800565b8160018114611eb35760028114611ebd57611ed9565b6001915050610800565b60ff841115611ece57611ece611e19565b50506001821b610800565b5060208310610133831016604e8410600b8410161715611efc575081810a610800565b611f085f198484611e40565b805f1904821115611f1b57611f1b611e19565b029392505050565b5f610b4d60ff841683611e83565b808202811582820484141761080057610800611e19565b5f82611f6257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f77575f80fd5b5051919050565b5f60208284031215611f8e575f80fd5b8151610b4d81611c70565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8181038181111561080057610800611e19565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120565783516001600160a01b031683526020938401939092019160010161202f565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c0416ec679e1e15df76a653206cf50aacb02aa7d0604737e543fe53d35d9c20864736f6c634300081a0033
Deployed Bytecode Sourcemap
4065:12584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4990:67;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4990:67:0;;;;;;;;15620:360;;;;;;;;;;-1:-1:-1;15620:360:0;;;;;:::i;:::-;;:::i;:::-;;16414:230;;;;;;;;;;-1:-1:-1;16414:230:0;;;;;:::i;:::-;;:::i;5425:49::-;;;;;;;;;;;;;;;;8235:122;;;;;;;;;;-1:-1:-1;8235:122:0;;;;;:::i;:::-;;:::i;:::-;;;1570:14:1;;1563:22;1545:41;;1533:2;1518:18;8235:122:0;1405:187:1;7517:80:0;;;;;;;;;;-1:-1:-1;7589:5:0;;;;;;;;;;;;-1:-1:-1;;;7589:5:0;;;;7517:80;;;;;;;:::i;5344:31::-;;;;;;;;;;-1:-1:-1;5344:31:0;;;;-1:-1:-1;;;5344:31:0;;;;;;7939:288;;;;;;;;;;-1:-1:-1;7939:288:0;;;;;:::i;:::-;;:::i;15988:418::-;;;;;;;;;;-1:-1:-1;15988:418:0;;;;;:::i;:::-;;:::i;7247:88::-;;;;;;;;;;;;;:::i;8605:668::-;;;;;;;;;;-1:-1:-1;8605:668:0;;;;;:::i;:::-;;:::i;7341:80::-;;;;;;;;;;-1:-1:-1;7341:80:0;;4323:1;3111:36:1;;3099:2;3084:18;7341:80:0;2969:184:1;4824:65:0;;;;;;;;;;;;;;;;9281:244;;;;;;;;;;-1:-1:-1;9281:244:0;;;;;:::i;:::-;;:::i;15258:354::-;;;;;;;;;;-1:-1:-1;15258:354:0;;;;;:::i;:::-;;:::i;4457:51::-;;;;;;;;;;;;;;;;5388:30;;;;;;;;;;-1:-1:-1;5388:30:0;;;;-1:-1:-1;;;5388:30:0;;;;;;7687:105;;;;;;;;;;-1:-1:-1;7687:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7771:18:0;7753:7;7771:18;;;:9;:18;;;;;;;7687:105;2120:150;;;;;;;;;;;;;:::i;12840:411::-;;;;;;;;;;-1:-1:-1;12840:411:0;;;;;:::i;:::-;;:::i;4403:47::-;;;;;;;;;;;;;;;;7603:78;;;;;;;;;;-1:-1:-1;7655:7:0;1971:6;-1:-1:-1;;;;;1971:6:0;7603:78;;;-1:-1:-1;;;;;3553:32:1;;;3535:51;;3523:2;3508:18;7603:78:0;3389:203:1;15008:240:0;;;;;;;;;;-1:-1:-1;15008:240:0;;;;;:::i;:::-;;:::i;1906:79::-;;;;;;;;;;-1:-1:-1;1944:7:0;1971:6;-1:-1:-1;;;;;1971:6:0;1906:79;;7427:84;;;;;;;;;;-1:-1:-1;7501:7:0;;;;;;;;;;;;-1:-1:-1;;;7501:7:0;;;;7427:84;;5302:29;;;;;;;;;;;;;;;8365:232;;;;;;;;;;-1:-1:-1;8365:232:0;;;;;:::i;:::-;;:::i;1622:21::-;;;;;;;;;;-1:-1:-1;1622:21:0;;;;-1:-1:-1;;;;;1622:21:0;;;9533:210;;;;;;;;;;-1:-1:-1;9533:210:0;;;;;:::i;:::-;;:::i;14731:269::-;;;;;;;;;;-1:-1:-1;14731:269:0;;;;;:::i;:::-;;:::i;7798:133::-;;;;;;;;;;-1:-1:-1;7798:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7900:19:0;;;7882:7;7900:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7798:133;13261:229;;;;;;;;;;;;;:::i;2278:244::-;;;;;;;;;;-1:-1:-1;2278:244:0;;;;;:::i;:::-;;:::i;12633:199::-;;;;;;;;;;;;;:::i;5232:24::-;;;;;;;;;;-1:-1:-1;5232:24:0;;;;-1:-1:-1;;;;;5232:24:0;;;15620:360;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;;;;;;;;;15751:1:::1;15723:24;15734:13:::0;15723:8;:24:::1;:::i;:::-;:29;;15715:70;;;::::0;-1:-1:-1;;;15715:70:0;;4968:2:1;15715:70:0::1;::::0;::::1;4950:21:1::0;5007:2;4987:18;;;4980:30;5046;5026:18;;;5019:58;5094:18;;15715:70:0::1;4766:352:1::0;15715:70:0::1;15797:11;:22:::0;;;15830:16:::1;:32:::0;;;15887:23:::1;15849:13:::0;15811:8;15887:23:::1;:::i;:::-;15873:12;:37:::0;15955:16:::1;::::0;15942:11:::1;::::0;15926:46:::1;::::0;::::1;::::0;;;::::1;15620:360:::0;;:::o;16414:230::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;16506:11:::1;:22:::0;;-1:-1:-1;;;;16506:22:0::1;-1:-1:-1::0;;;16506:22:0;::::1;;;;::::0;;16565:13:::1;4323:1;16565:2;:13;:::i;:::-;16555:23;::::0;:7;:23:::1;:::i;:::-;16539:13;:39:::0;16594:42:::1;::::0;16628:7;;16594:42;::::1;;::::0;::::1;::::0;;;::::1;16414:230:::0;;:::o;8235:122::-;8290:4;8314:35;8322:7;-1:-1:-1;;8314:7:0;:35::i;:::-;8307:42;8235:122;-1:-1:-1;;8235:122:0:o;7939:288::-;8014:4;-1:-1:-1;;;;;8039:21:0;;8031:61;;;;-1:-1:-1;;;8031:61:0;;6930:2:1;8031:61:0;;;6912:21:1;6969:2;6949:18;;;6942:30;7008:29;6988:18;;;6981:57;7055:18;;8031:61:0;6728:351:1;8031:61:0;8115:10;8103:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8103:32:0;;;;;;;;;;;;:41;;;8160:37;160:25:1;;;8103:32:0;;8115:10;8160:37;;133:18:1;8160:37:0;;;;;;;-1:-1:-1;8215:4:0;7939:288;;;;:::o;15988:418::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16115:35:0;::::1;::::0;;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;16154:30:0;::::1;::::0;::::1;16115:69;16107:118;;;::::0;-1:-1:-1;;;16107:118:0;;7286:2:1;16107:118:0::1;::::0;::::1;7268:21:1::0;7325:2;7305:18;;;7298:30;7364:34;7344:18;;;7337:62;-1:-1:-1;;;7415:18:1;;;7408:33;7458:19;;16107:118:0::1;7084:399:1::0;16107:118:0::1;16236:20;:44:::0;;-1:-1:-1;;;;;;16236:44:0;;::::1;-1:-1:-1::0;;;;;16236:44:0;;::::1;::::0;;::::1;::::0;;;16291:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;16341:57:::1;::::0;::::1;::::0;-1:-1:-1;;16341:57:0::1;15988:418:::0;;:::o;7247:88::-;7302:7;4381:13;4323:1;4381:2;:13;:::i;:::-;4370:24;;:8;:24;:::i;:::-;7313:19;;7247:88;:::o;8605:668::-;8705:4;-1:-1:-1;;;;;8730:20:0;;8722:59;;;;-1:-1:-1;;;8722:59:0;;7690:2:1;8722:59:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:28;7748:18;;;7741:56;7814:18;;8722:59:0;7488:350:1;8722:59:0;-1:-1:-1;;;;;8800:23:0;;8792:65;;;;-1:-1:-1;;;8792:65:0;;8045:2:1;8792:65:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:31;8103:18;;;8096:59;8172:18;;8792:65:0;7843:353:1;8792:65:0;-1:-1:-1;;;;;8895:19:0;;8868:24;8895:19;;;:11;:19;;;;;;;;1561:10;8895:33;;;;;;;;-1:-1:-1;;8942:37:0;;8939:267;;9023:6;9003:16;:26;;8995:79;;;;-1:-1:-1;;;8995:79:0;;8403:2:1;8995:79:0;;;8385:21:1;8442:2;8422:18;;;8415:30;8481:34;8461:18;;;8454:62;-1:-1:-1;;;8532:18:1;;;8525:38;8580:19;;8995:79:0;8201:404:1;8995:79:0;-1:-1:-1;;;;;9118:19:0;;;;;;:11;:19;;;;;;;;1561:10;9118:33;;;;;;;9154:25;;;9118:61;;8939:267;9225:40;9239:6;9247:9;9258:6;9225:13;:40::i;:::-;9218:47;;;8605:668;;;;;;:::o;9281:244::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;9387:1:::1;9367:16;:21;;9359:30;;;::::0;::::1;;9456:4;9435:16:::0;4381:13:::1;4323:1;4381:2;:13;:::i;:::-;4370:24;::::0;:8:::1;:24;:::i;:::-;9420:31;;;;:::i;:::-;9419:41;;;;:::i;:::-;9400:16;:60:::0;;;9476:34:::1;::::0;::::1;::::0;;;::::1;9281:244:::0;:::o;15258:354::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;15389:1:::1;15361:24;15372:13:::0;15361:8;:24:::1;:::i;:::-;:29;;15352:71;;;::::0;-1:-1:-1;;;15352:71:0;;4968:2:1;15352:71:0::1;::::0;::::1;4950:21:1::0;5007:2;4987:18;;;4980:30;5046;5026:18;;;5019:58;5094:18;;15352:71:0::1;4766:352:1::0;15352:71:0::1;15435:10;:21:::0;;;15467:15:::1;:31:::0;;;15522:23:::1;15485:13:::0;15448:8;15522:23:::1;:::i;:::-;15509:11;:36:::0;15588:15:::1;::::0;15576:10:::1;::::0;15561:43:::1;::::0;::::1;::::0;;;::::1;15258:354:::0;;:::o;2120:150::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;2229:1:::1;2213:6:::0;;2192:40:::1;::::0;-1:-1:-1;;;;;2213:6:0;;::::1;::::0;2192:40:::1;::::0;2229:1;;2192:40:::1;2260:1;2243:19:::0;;-1:-1:-1;;;;;;2243:19:0::1;::::0;;2120:150::o;12840:411::-;12960:20;;12921:4;;-1:-1:-1;;;;;12960:20:0;12946:10;:34;;:67;;-1:-1:-1;12998:15:0;;-1:-1:-1;;;;;12998:15:0;12984:10;:29;12946:67;12938:76;;;;;;13066:4;-1:-1:-1;;;;;13033:38:0;;;13025:47;;;;;;13086:6;13096:1;13086:11;13083:95;;13122:44;;-1:-1:-1;;;13122:44:0;;13160:4;13122:44;;;3535:51:1;-1:-1:-1;;;;;13122:29:0;;;;;3508:18:1;;13122:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13113:53;;13083:95;13195:48;;-1:-1:-1;;;13195:48:0;;13224:10;13195:48;;;9195:51:1;9262:18;;;9255:34;;;-1:-1:-1;;;;;13195:28:0;;;;;9168:18:1;;13195:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15008:240::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15101:20:0;::::1;15093:59;;;::::0;-1:-1:-1;;;15093:59:0;;9752:2:1;15093:59:0::1;::::0;::::1;9734:21:1::0;9791:2;9771:18;;;9764:30;9830:28;9810:18;;;9803:56;9876:18;;15093:59:0::1;9550:350:1::0;15093:59:0::1;-1:-1:-1::0;;;;;15163:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;:32;;-1:-1:-1;;15163:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15211:29;;15163:32;;:23;15211:29:::1;::::0;::::1;15008:240:::0;;:::o;8365:232::-;8445:4;-1:-1:-1;;;;;8470:23:0;;8462:65;;;;-1:-1:-1;;;8462:65:0;;8045:2:1;8462:65:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:31;8103:18;;;8096:59;8172:18;;8462:65:0;7843:353:1;8462:65:0;8545:44;8559:10;8571:9;8582:6;8545:13;:44::i;9533:210::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;9627:1:::1;9611:12;:17;;9603:26;;;::::0;::::1;;9689:4;9672:12:::0;4381:13:::1;4323:1;4381:2;:13;:::i;:::-;4370:24;::::0;:8:::1;:24;:::i;:::-;9657:27;;;;:::i;:::-;9656:37;;;;:::i;:::-;9641:12;:52:::0;;;9709:26:::1;::::0;::::1;::::0;;;::::1;9533:210:::0;:::o;14731:269::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14817:20:0;::::1;14809:59;;;::::0;-1:-1:-1;;;14809:59:0;;9752:2:1;14809:59:0::1;::::0;::::1;9734:21:1::0;9791:2;9771:18;;;9764:30;9830:28;9810:18;;;9803:56;9876:18;;14809:59:0::1;9550:350:1::0;14809:59:0::1;-1:-1:-1::0;;;;;14879:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;14879:28:0;;::::1;::::0;::::1;::::0;;;14918:15:::1;:23:::0;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;14966:26;14879:28;;:19;14966:26:::1;::::0;::::1;14731:269:::0;;:::o;13261:229::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;13327:11:::1;::::0;-1:-1:-1;;;13327:11:0;::::1;;;13326:12;13318:48;;;::::0;-1:-1:-1;;;13318:48:0;;10107:2:1;13318:48:0::1;::::0;::::1;10089:21:1::0;10146:2;10126:18;;;10119:30;10185:26;10165:18;;;10158:54;10229:18;;13318:48:0::1;9905:348:1::0;13318:48:0::1;13377:11;:18:::0;;-1:-1:-1;;;;13377:18:0::1;-1:-1:-1::0;;;13377:18:0;;::::1;::::0;;;;13417:12:::1;13406:8;:23:::0;;;13445:37:::1;::::0;13417:12;;13460:11;;;::::1;13377:18;13460:11;13445:37;;::::0;::::1;::::0;13377:18;;13445:37:::1;13261:229::o:0;2278:244::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2367:22:0;::::1;2359:73;;;::::0;-1:-1:-1;;;2359:73:0;;10460:2:1;2359:73:0::1;::::0;::::1;10442:21:1::0;10499:2;10479:18;;;10472:30;10538:34;10518:18;;;10511:62;-1:-1:-1;;;10589:18:1;;;10582:36;10635:19;;2359:73:0::1;10258:402:1::0;2359:73:0::1;2469:6;::::0;;2448:38:::1;::::0;-1:-1:-1;;;;;2448:38:0;;::::1;::::0;2469:6;::::1;::::0;2448:38:::1;::::0;::::1;2497:6;:17:::0;;-1:-1:-1;;;;;;2497:17:0::1;-1:-1:-1::0;;;;;2497:17:0;;;::::1;::::0;;;::::1;::::0;;2278:244::o;12633:199::-;2033:6;;-1:-1:-1;;;;;2033:6:0;1561:10;2033:22;2025:67;;;;-1:-1:-1;;;2025:67:0;;;;;;;:::i;:::-;4381:13:::1;4323:1;4381:2;:13;:::i;:::-;4370:24;::::0;:8:::1;:24;:::i;:::-;12691:16;:31:::0;4381:13:::1;4323:1;4381:2;:13;:::i;:::-;4370:24;::::0;:8:::1;:24;:::i;:::-;12733:12;:27:::0;;;12793:16:::1;::::0;12776:48:::1;::::0;::::1;::::0;;;::::1;12633:199::o:0;9760:1510::-;9874:6;;9852:4;;9874:6;;9871:63;;;9890:41;9905:6;9913:9;9924:6;9890:14;:41::i;:::-;9883:48;;;;9871:63;1944:7;1971:6;-1:-1:-1;;;;;9949:17:0;;;1971:6;;9949:17;9946:101;;9990:11;;-1:-1:-1;;;9990:11:0;;;;9982:43;;;;-1:-1:-1;;;9982:43:0;;10867:2:1;9982:43:0;;;10849:21:1;10906:2;10886:18;;;10879:30;-1:-1:-1;;;10925:18:1;;;10918:50;10985:18;;9982:43:0;10665:344:1;9982:43:0;10067:28;10080:6;10088;10067:12;:28::i;:::-;-1:-1:-1;;;;;10140:17:0;;10116:21;10140:17;;;:9;:17;;;;;;10176:23;;;;10168:74;;;;-1:-1:-1;;;10168:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10281:19:0;;10255:22;10281:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10304:22:0;;;;;;:11;:22;;;;;;;;10281:45;10280:93;;10339:34;10347:6;10355;10363:9;10339:7;:34::i;:::-;10280:93;;;10330:6;10280:93;10255:118;;10400:7;1944;1971:6;-1:-1:-1;;;;;1971:6:0;;1906:79;10400:7;-1:-1:-1;;;;;10390:17:0;:6;-1:-1:-1;;;;;10390:17:0;;;:169;;;;-1:-1:-1;;;;;;10412:26:0;;10433:4;10412:26;;;;:57;;-1:-1:-1;;;;;;10443:26:0;;4158:42;10443:26;;10412:57;:78;;;;;10486:4;-1:-1:-1;;;;;10473:17:0;:9;-1:-1:-1;;;;;10473:17:0;;;10412:78;:115;;;;-1:-1:-1;10507:20:0;;-1:-1:-1;;;;;10494:33:0;;;10507:20;;10494:33;;10412:115;:146;;;;-1:-1:-1;;;;;;10532:26:0;;;;;;:15;:26;;;;;;;;10531:27;10412:146;10386:370;;;-1:-1:-1;;;;;7771:18:0;;10575;7771;;;:9;:18;;;;;;10672:16;;10640:27;10653:14;7771:18;10640:27;:::i;:::-;10639:49;;10631:123;;;;-1:-1:-1;;;10631:123:0;;11623:2:1;10631:123:0;;;11605:21:1;11662:2;11642:18;;;11635:30;11701:34;11681:18;;;11674:62;11772:32;11752:18;;;11745:60;11822:19;;10631:123:0;11421:426:1;10631:123:0;10560:196;10386:370;10797:12;10785:8;;:24;;:82;;;;-1:-1:-1;10854:13:0;;10844:4;10826:24;;;;:9;:24;;;;;;:41;;10785:82;:110;;;;-1:-1:-1;10884:11:0;;-1:-1:-1;;;10884:11:0;;;;10785:110;:134;;;;-1:-1:-1;10913:6:0;;;;10912:7;10785:134;:168;;;;;10949:4;-1:-1:-1;;;;;10936:17:0;:9;-1:-1:-1;;;;;10936:17:0;;10785:168;10768:272;;;10980:10;:8;:10::i;:::-;11016:12;11005:8;:23;10768:272;-1:-1:-1;;;;;11077:17:0;;;;;;;:9;:17;;;;;;11097:22;;;11077:42;;11141:20;;;;;;;;:38;;11165:14;;11077:17;11141:38;;11165:14;;11141:38;:::i;:::-;;;;;;;;11214:9;-1:-1:-1;;;;;11197:43:0;11206:6;-1:-1:-1;;;;;11197:43:0;;11225:14;11197:43;;;;160:25:1;;148:2;133:18;;14:177;11197:43:0;;;;;;;;-1:-1:-1;11258:4:0;;9760:1510;-1:-1:-1;;;;;9760:1510:0:o;11282:447::-;-1:-1:-1;;;;;11416:17:0;;11375:4;11416:17;;;:9;:17;;;;;;11452:23;;;;11444:74;;;;-1:-1:-1;;;11444:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11554:17:0;;;;;;;:9;:17;;;;;;11574:22;;;11554:42;;11618:20;;;;;;;;:30;;11590:6;;11554:17;11618:30;;11590:6;;11618:30;:::i;:::-;;;;;;;;11681:9;-1:-1:-1;;;;;11664:35:0;11673:6;-1:-1:-1;;;;;11664:35:0;;11692:6;11664:35;;;;160:25:1;;148:2;133:18;;14:177;11664:35:0;;;;;;;;-1:-1:-1;11717:4:0;;11282:447;-1:-1:-1;;;;11282:447:0:o;11737:166::-;11834:12;;11824:6;:22;;:49;;;-1:-1:-1;;;;;;11850:23:0;;;;;;:15;:23;;;;;;;;11824:49;11816:79;;;;-1:-1:-1;;;11816:79:0;;12054:2:1;11816:79:0;;;12036:21:1;12093:2;12073:18;;;12066:30;-1:-1:-1;;;12112:18:1;;;12105:47;12169:18;;11816:79:0;11852:341:1;11816:79:0;11737:166;;:::o;12033:592::-;12119:7;;-1:-1:-1;;;;;12189:4:0;12176:17;;;;;;12173:253;;12248:3;12232:12;;12223:6;:21;;;;:::i;:::-;12222:29;;;;:::i;:::-;12210:41;;12173:253;;;12282:4;-1:-1:-1;;;;;12272:14:0;:6;-1:-1:-1;;;;;12272:14:0;;12269:157;;12340:3;12325:11;;12316:6;:20;;;;:::i;12269:157::-;12411:3;12387:20;5104:1;12387:6;:20;:::i;:::-;12386:28;;;;:::i;:::-;12374:40;;12269:157;12456:4;12438:24;;;;:9;:24;;;;;:37;;12466:9;;12438:24;:37;;12466:9;;12438:37;:::i;:::-;;;;-1:-1:-1;;12491:42:0;;160:25:1;;;12516:4:0;;-1:-1:-1;;;;;12491:42:0;;;;;148:2:1;133:18;12491:42:0;;;;;;;12544:20;12567:18;12576:9;12567:6;:18;:::i;:::-;12544:41;12033:592;-1:-1:-1;;;;;;12033:592:0:o;13498:1225::-;5522:6;:13;;-1:-1:-1;;5522:13:0;5531:4;5522:13;;;13580:12:::1;::::0;13566:11:::1;::::0;5522:6;;13566:26:::1;::::0;::::1;:::i;:::-;13547:45;;13603:15;13634:11;;13621:10;;:24;;;;:::i;:::-;13758:13;::::0;13808:16:::1;::::0;;13822:1:::1;13808:16:::0;;;;;::::1;::::0;;13603:42;;-1:-1:-1;13656:21:0::1;::::0;;;13758:13;13656:21;;13808:16;13822:1;13808:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13808:16:0::1;13784:40;;13853:4;13835;13840:1;13835:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13835:23:0::1;;;-1:-1:-1::0;;;;;13835:23:0::1;;;::::0;::::1;13879:4;13869;13874:1;13869:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13869:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13896:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13896:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13968:12;;13896:6:::1;::::0;14011:4;;14038::::1;::::0;14058:15:::1;::::0;13896:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14119:21:0::1;::::0;-1:-1:-1;;;14097:19:0::1;14156:13:::0;;;14153:145:::1;;14202:1;14186:17;;14153:145;;;14278:8:::0;14253:21:::1;14267:7:::0;14253:11;:21:::1;:::i;:::-;14252:34;;;;:::i;:::-;14236:50;;14153:145;14331:27;14345:13:::0;14331:11;:27:::1;:::i;:::-;14400:15;::::0;14392:55:::1;::::0;14310:48;;-1:-1:-1;14372:15:0::1;::::0;-1:-1:-1;;;;;14400:15:0;;::::1;::::0;14429:13;;14372:15;14392:55;14372:15;14392:55;14429:13;14400:15;14392:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:76;;;14466:10;14458:65;;;::::0;-1:-1:-1;;;14458:65:0;;13971:2:1;14458:65:0::1;::::0;::::1;13953:21:1::0;14010:2;13990:18;;;13983:30;14049:34;14029:18;;;14022:62;-1:-1:-1;;;14100:18:1;;;14093:40;14150:19;;14458:65:0::1;13769:406:1::0;14458:65:0::1;14574:20;::::0;14566:65:::1;::::0;14545:16:::1;::::0;-1:-1:-1;;;;;14574:20:0::1;::::0;14608:18;;14545:16;14566:65;14545:16;14566:65;14608:18;14574:20;14566:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14544:87;;;14650:11;14642:71;;;::::0;-1:-1:-1;;;14642:71:0;;14382:2:1;14642:71:0::1;::::0;::::1;14364:21:1::0;14421:2;14401:18;;;14394:30;14460:34;14440:18;;;14433:62;-1:-1:-1;;;14511:18:1;;;14504:45;14566:19;;14642:71:0::1;14180:411:1::0;14642:71:0::1;-1:-1:-1::0;;5540:6:0;:14;;-1:-1:-1;;5540:14:0;;;-1:-1:-1;;;;;;;13498:1225:0:o;196:346:1:-;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;386:23:1;;;506:2;491:18;;;478:32;;-1:-1:-1;196:346:1:o;547:118::-;633:5;626:13;619:21;612:5;609:32;599:60;;655:1;652;645:12;599:60;547:118;:::o;670:361::-;735:6;743;796:2;784:9;775:7;771:23;767:32;764:52;;;812:1;809;802:12;764:52;851:9;838:23;870:28;892:5;870:28;:::i;:::-;917:5;995:2;980:18;;;;967:32;;-1:-1:-1;;;670:361:1:o;1036:173::-;1104:20;;-1:-1:-1;;;;;1153:31:1;;1143:42;;1133:70;;1199:1;1196;1189:12;1133:70;1036:173;;;:::o;1214:186::-;1273:6;1326:2;1314:9;1305:7;1301:23;1297:32;1294:52;;;1342:1;1339;1332:12;1294:52;1365:29;1384:9;1365:29;:::i;1597:418::-;1746:2;1735:9;1728:21;1709:4;1778:6;1772:13;1821:6;1816:2;1805:9;1801:18;1794:34;1880:6;1875:2;1867:6;1863:15;1858:2;1847:9;1843:18;1837:50;1936:1;1931:2;1922:6;1911:9;1907:22;1903:31;1896:42;2006:2;1999;1995:7;1990:2;1982:6;1978:15;1974:29;1963:9;1959:45;1955:54;1947:62;;;1597:418;;;;:::o;2020:300::-;2088:6;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2188:29;2207:9;2188:29;:::i;2325:260::-;2393:6;2401;2454:2;2442:9;2433:7;2429:23;2425:32;2422:52;;;2470:1;2467;2460:12;2422:52;2493:29;2512:9;2493:29;:::i;:::-;2483:39;;2541:38;2575:2;2564:9;2560:18;2541:38;:::i;:::-;2531:48;;2325:260;;;;;:::o;2590:374::-;2667:6;2675;2683;2736:2;2724:9;2715:7;2711:23;2707:32;2704:52;;;2752:1;2749;2742:12;2704:52;2775:29;2794:9;2775:29;:::i;:::-;2765:39;;2823:38;2857:2;2846:9;2842:18;2823:38;:::i;:::-;2590:374;;2813:48;;-1:-1:-1;;;2930:2:1;2915:18;;;;2902:32;;2590:374::o;3158:226::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;-1:-1:-1;3331:23:1;;3158:226;-1:-1:-1;3158:226:1:o;3597:315::-;3662:6;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3762:29;3781:9;3762:29;:::i;:::-;3752:39;;3841:2;3830:9;3826:18;3813:32;3854:28;3876:5;3854:28;:::i;:::-;3901:5;3891:15;;;3597:315;;;;;:::o;4143:356::-;4345:2;4327:21;;;4364:18;;;4357:30;4423:34;4418:2;4403:18;;4396:62;4490:2;4475:18;;4143:356::o;4504:127::-;4565:10;4560:3;4556:20;4553:1;4546:31;4596:4;4593:1;4586:15;4620:4;4617:1;4610:15;4636:125;4701:9;;;4722:10;;;4719:36;;;4735:18;;:::i;5123:375::-;5211:1;5229:5;5243:249;5264:1;5254:8;5251:15;5243:249;;;5314:4;5309:3;5305:14;5299:4;5296:24;5293:50;;;5323:18;;:::i;:::-;5373:1;5363:8;5359:16;5356:49;;;5387:16;;;;5356:49;5470:1;5466:16;;;;;5426:15;;5243:249;;;5123:375;;;;;;:::o;5503:902::-;5552:5;5582:8;5572:80;;-1:-1:-1;5623:1:1;5637:5;;5572:80;5671:4;5661:76;;-1:-1:-1;5708:1:1;5722:5;;5661:76;5753:4;5771:1;5766:59;;;;5839:1;5834:174;;;;5746:262;;5766:59;5796:1;5787:10;;5810:5;;;5834:174;5871:3;5861:8;5858:17;5855:43;;;5878:18;;:::i;:::-;-1:-1:-1;;5934:1:1;5920:16;;5993:5;;5746:262;;6092:2;6082:8;6079:16;6073:3;6067:4;6064:13;6060:36;6054:2;6044:8;6041:16;6036:2;6030:4;6027:12;6023:35;6020:77;6017:203;;;-1:-1:-1;6129:19:1;;;6205:5;;6017:203;6252:42;-1:-1:-1;;6277:8:1;6271:4;6252:42;:::i;:::-;6330:6;6326:1;6322:6;6318:19;6309:7;6306:32;6303:58;;;6341:18;;:::i;:::-;6379:20;;5503:902;-1:-1:-1;;;5503:902:1:o;6410:140::-;6468:5;6497:47;6538:4;6528:8;6524:19;6518:4;6497:47;:::i;6555:168::-;6628:9;;;6659;;6676:15;;;6670:22;;6656:37;6646:71;;6697:18;;:::i;8610:217::-;8650:1;8676;8666:132;;8720:10;8715:3;8711:20;8708:1;8701:31;8755:4;8752:1;8745:15;8783:4;8780:1;8773:15;8666:132;-1:-1:-1;8812:9:1;;8610:217::o;8832:184::-;8902:6;8955:2;8943:9;8934:7;8930:23;8926:32;8923:52;;;8971:1;8968;8961:12;8923:52;-1:-1:-1;8994:16:1;;8832:184;-1:-1:-1;8832:184:1:o;9300:245::-;9367:6;9420:2;9408:9;9399:7;9395:23;9391:32;9388:52;;;9436:1;9433;9426:12;9388:52;9468:9;9462:16;9487:28;9509:5;9487:28;:::i;11014:402::-;11216:2;11198:21;;;11255:2;11235:18;;;11228:30;11294:34;11289:2;11274:18;;11267:62;-1:-1:-1;;;11360:2:1;11345:18;;11338:36;11406:3;11391:19;;11014:402::o;12198:128::-;12265:9;;;12286:11;;;12283:37;;;12300:18;;:::i;12463:127::-;12524:10;12519:3;12515:20;12512:1;12505:31;12555:4;12552:1;12545:15;12579:4;12576:1;12569:15;12595:959;12857:4;12905:3;12894:9;12890:19;12936:6;12925:9;12918:25;12979:6;12974:2;12963:9;12959:18;12952:34;13022:3;13017:2;13006:9;13002:18;12995:31;13046:6;13081;13075:13;13112:6;13104;13097:22;13150:3;13139:9;13135:19;13128:26;;13189:2;13181:6;13177:15;13163:29;;13210:1;13220:195;13234:6;13231:1;13228:13;13220:195;;;13299:13;;-1:-1:-1;;;;;13295:39:1;13283:52;;13364:2;13390:15;;;;13355:12;;;;13331:1;13249:9;13220:195;;;-1:-1:-1;;;;;;;13471:32:1;;;;13466:2;13451:18;;13444:60;-1:-1:-1;;13535:3:1;13520:19;13513:35;13432:3;12595:959;-1:-1:-1;;;12595:959:1:o
Swarm Source
ipfs://c0416ec679e1e15df76a653206cf50aacb02aa7d0604737e543fe53d35d9c208
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.