Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 EVERGATE
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000076543664009 EVERGATEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EVERGATE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-17 */ /* Telegram: https://t.me/EGATEPORTAL Website: https://evergatecoin.com Twitter: https://twitter.com/EverGateERC .::-===+++++++++===--:.. .:-+*********++++++++++++++++++==-: .-+*#****+==++++***#######**+++==-==++++=-:. :=*####+=++*#%%%%%%%%%%%%%%%%%%%%%%%%#*+==-=+===-. .=*###*+++#%%%%%%#*+=--::......::--=+*#%%%%%%#*=-=====:. -*###*=+*%%%%%#*+:....:-=+++****++==-:....==*#%%%%%#+--===-. -####*=+%%%%%*-...==+#%%%%%%%%%%%%%%%%%%%%#*=:..:=*%%%%%*=-====: -####+=*%%%%*-..:=*%%%%%%%%%#%%%%%%%%%#%%%%%%%%%%*=:..-*%%%%%+-====: .*###*=#%%%%=...=#%%%%%%%%%%%%%%%%**##+%%%%%%%%%%%%%%%#=..-#%%%%%+-===-. =####=*%%%%=-.:*%%%%%%%%%%%%%%%%%%%*#%*%%%%%%#%%%%%%%%%%%%#*--=%%%%%=-===: *%%#+=%%%%+..:#%%%%%*+--:-+#%%%%%%%#-=%##%%%%%%%%%%%%%%%%%%%%#:..+%%%%*:===- .#%%#=*%%%#:..*%%%%%%+-==::=+.-%%%%%%+:+%%#%%%%%%%%%%%%%%%%##%%%%*:.-#%%%%--==-. .#%%#-#%%%+..-%%%%%%%*=......++:=%%%%#:=+=*+%%%%%%#%%%%%%%%%%%%%%%%%-..+%%%%=-==-. .#%%#-#%%%*:.+%%%%%%%%+-.....:=**=%%%%*=##%%%###%%%%%%%%%%%%%%#%%%%%%%+.:+%%%%=-=-- #%%%-#%%%=..#%%%%%%%%%+...:--=#*+#%%%%=..=%%%:%%%%%%%%%%%%%%%%%%%%%#%%%#..=%%%%----- +%%%=*%%%+..*%%%%#%%%%%%#=::=****#%%%%*=-#%%%%:#%%%%%%%%%%%%%%%%%%%%##%%%*..+%%%%:---: :%%%#=%%%#..=%%%%%%%%%%%%%%%%##%%%%%%%%-=-#%%%%==%%#*%%%%%%###%%%%%%#%%%%%%+--#%%%#:---. *%%%-#%%%=:-%%%%%#%%%%%%#%%%%#%%%%%%%#-.=-#%%%%=*=%%%%%%%##%%#%%%%%%%%%%%%%%=-=%%%%----- .%%%#=%%%*..#%%%#%%%%%%%%%%%%%*+##%%%#-..=:+*%%%=+#-%%%%%%=#%##**#%%%%%%%%%%%%##%%%%#:--- =%%%=#%%%:.:%%%%%%%%%%%%%%%%%%*+%%%%%*-..=..-%%%==#*#%%%%%=#%%%%%%%%%%%%#*#%%%::+%%%%:---: +%%%-%%%%..+%%%%%%%%%%%%%%%#%%*+%%#%%*...=..-%%#==*+#%%%%%=#%%#%%%%%%%%%%%%%%%*==%%%%=---- #%%%-%%%*..#%%%%##****#%#%%+%%*+%%%%%*-..=..-%%#-=*+#%%#%%=#%%+%%%%%%%%##%%%%%#**%%%%+---- #%%%-%%%+..%%%********#%%%%+#%*+#####*-..=..-%%#-=*+#%%###=#%#+%%%%%%%%%%%%%%%#::*%%%+---- #%%%-%%%+..%%%######%%%%##%+*%#*#####*-..=..-%%*-=*+#%%%%%+%%*+%%%%%%%%%%%%%%%#:.+%%%+---- +%%%-%%%*--%%%####%%%%####%+*%#+###***+-.=..-%%*-=#+######=%%*+%##%%%%%%%###%%#--*%%%=---- =%%%=#%%#:-#%%####%########+*%#+#######*==..-%%*=+=#######=%%*+%#####%%%####%%*:-#%%%:---: .%%%#=%%%..=%%%##*#*######%+#%#+####*#+==#..-%%*=:.:*#####=%%#+%#######%*##%%%==#%%%#:---. *%%%-#%%#**%%%**+#*###%#%%+*%%+###*%+=++%..-%%%:...-###**=%%++%%#%####%+**%%%*#%%%%----- :%%%#=%%%=+#%%%**%#%#%%**#++%%+##*%*++*#%..-%%%-::.:=#***=%%++#*#%%#%#%**%%%%%%%%%#:---. +%%%=*%%=*#%%%##%##*****#++%#+##*%##*%%%-:=%%#=+**++#***=%%++#*#***##%##%%%%%%%%%:---: #%%%-#%%%%%%%%##+******#++%#+******-#%%%+::+*==*+****+++%%++#*#*+***##%%%%%%%%%----- .#%%#-#%%%%%%%%#*##*****++%#+******-#%#*=..+**=*+******+%%++#*#***#*%#%%%%%%%%=-=-- :#%%#-#%%%%%%%#%##+***#++%#+******+#***=..+++*##*++***+%%++#*#*+*%%%#%%%%%%%=-==-. .#%%#=*%%%%%%#%%##**+*++%#++++********=..++******+++++%%+*#*####%%%#%%%%%%--==-. .*%%#+=%%%%%#%%#%%#*#++%%************=::+*******+++**%%+*###%%#%%%#%%%%*:===- =####=*%%%%%%%%%#%%#%%%****++***+**=-:=+*****====++%%%#%%#%%%%%%%%%%=-===: :*###+=*%%%%%%%%%%%%%%++*+===+++++==-**++*-=*#%%#*##%%%%%%%%%%%##=-===-. -####+=*%%%%%%%%%%######%%#++**++++++++==+%%%%%%%%%%%%%%%%%%#+-====: -####+=+#%%%%%%%%%%%%%#+=+*#++*#**%%%%%#+%%%%%%%%%%%%%%%*=-====: -*###*=+*%%%%#%%%*+++#%#*-=++=****%%%%%#*#%%%%**%%%#+--====: .=####*===*%%%%#%%%%%%%%%%%%%%%%%%%%##%#%%%%%*+=-=====-. :=*####+==++#%%%%%%%%%%%%%%%%%%%%%%%%#*+==-=+===-. .-+*#****+====+++**#######**+++==-==++++=-:. .:=+*********+++++++++++++++++++=-:. .:--==+++++++++++==--::. // SPDX-License-Identifier: MIT */ pragma solidity 0.8.20; 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); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public 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; } 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); uint256 c = a - b; return c; } 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); uint256 c = a / b; return c; } } contract EVERGATE is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "EverGate"; string constant _symbol = "EVERGATE"; uint8 constant _decimals = 18; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 100000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 0; uint256 private marketingFee = 1; uint256 private devFee = 1; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 100; uint256 buypercent = 100; uint256 transferpercent = 0; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 2 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } 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; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x38505B4134824a43bB3166Ecb76E9979b8C7472D; devFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view 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) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 100; emit set_MaxWallet(_maxWalletToken); } function removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner { sellpercent = _percentonsell; buypercent = _percentonbuy; transferpercent = _wallettransfer; } function startTrading() public onlyOwner { TradingOpen = true; buypercent = 100; sellpercent = 100; transferpercent = 0; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); set_fees(); } function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"approveMax","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":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","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":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","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":"totalFee","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000cfb565b64174876e80062000026919062000d4b565b60035562000056606462000047600260035462000a2b60201b90919060201c565b62000aab60201b90919060201c565b60045562000086606462000077600260035462000a2b60201b90919060201c565b62000aab60201b90919060201c565b6005555f600a556001600b556001600c555f600d555f600e55600e54600c54600a54600b54600d54620000ba919062000d95565b620000c6919062000d95565b620000d2919062000d95565b620000de919062000d95565b600f556064601055606460115560646012555f601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e8600260035462000147919062000d4b565b62000153919062000dfc565b601e5534801562000162575f80fd5b505f6200017462000afc60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000343573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000369919062000e98565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000413573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000439919062000e98565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049692919062000ed9565b6020604051808303815f875af1158015620004b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d9919062000e98565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507338505b4134824a43bb3166ecb76e9979b8c7472d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a1d919062000f15565b60405180910390a36200107a565b5f80830362000a3d575f905062000aa5565b5f828462000a4c919062000d4b565b905082848262000a5d919062000dfc565b1462000aa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a979062000fb4565b60405180910390fd5b809150505b92915050565b5f62000af483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b0360201b60201c565b905092915050565b5f33905090565b5f808311829062000b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b43919062001058565b60405180910390fd5b505f838562000b5c919062000dfc565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bf35780860481111562000bcb5762000bca62000b69565b5b600185161562000bdb5780820291505b808102905062000beb8562000b96565b945062000bab565b94509492505050565b5f8262000c0d576001905062000cdf565b8162000c1c575f905062000cdf565b816001811462000c35576002811462000c405762000c76565b600191505062000cdf565b60ff84111562000c555762000c5462000b69565b5b8360020a91508482111562000c6f5762000c6e62000b69565b5b5062000cdf565b5060208310610133831016604e8410600b841016171562000cb05782820a90508381111562000caa5762000ca962000b69565b5b62000cdf565b62000cbf848484600162000ba2565b9250905081840481111562000cd95762000cd862000b69565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d078262000ce6565b915062000d148362000cef565b925062000d437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bfc565b905092915050565b5f62000d578262000ce6565b915062000d648362000ce6565b925082820262000d748162000ce6565b9150828204841483151762000d8e5762000d8d62000b69565b5b5092915050565b5f62000da18262000ce6565b915062000dae8362000ce6565b925082820190508082111562000dc95762000dc862000b69565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e088262000ce6565b915062000e158362000ce6565b92508262000e285762000e2762000dcf565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e628262000e37565b9050919050565b62000e748162000e56565b811462000e7f575f80fd5b50565b5f8151905062000e928162000e69565b92915050565b5f6020828403121562000eb05762000eaf62000e33565b5b5f62000ebf8482850162000e82565b91505092915050565b62000ed38162000e56565b82525050565b5f60408201905062000eee5f83018562000ec8565b62000efd602083018462000ec8565b9392505050565b62000f0f8162000ce6565b82525050565b5f60208201905062000f2a5f83018462000f04565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000f9c60218362000f30565b915062000fa98262000f40565b604082019050919050565b5f6020820190508181035f83015262000fcd8162000f8e565b9050919050565b5f81519050919050565b5f5b8381101562000ffd57808201518184015260208101905062000fe0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010248262000fd4565b62001030818562000f30565b93506200104281856020860162000fde565b6200104d8162001008565b840191505092915050565b5f6020820190508181035f83015262001072818462001018565b905092915050565b613fcf80620010885f395ff3fe608060405260043610610207575f3560e01c8063751039fc11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461074a578063df20fd4914610786578063f2fde38b146107ae578063f4293890146107d6578063f887ea40146107ec5761020e565b8063a9059cbb14610680578063b2bdfa7b146106bc578063c0cbdea4146106e6578063dd62ed3e1461070e5761020e565b806382528791116100e657806382528791146105b0578063893d20e8146105d85780638da5cb5b1461060257806395d89b411461062c578063a8aa1b31146106565761020e565b8063751039fc1461050a57806377b54bad1461052057806378109e541461055c5780637d1db4a5146105865761020e565b8063293230b81161019a578063571ac8b011610169578063571ac8b01461042a5780635d83e1d5146104665780636ddd17131461048e57806370a08231146104b8578063715018a6146104f45761020e565b8063293230b81461038457806330c9a6a01461039a578063313ce567146103d657806355265669146104005761020e565b806318160ddd116101d657806318160ddd146102cc5780631df4ccfc146102f657806323b872dd14610320578063282c87491461035c5761020e565b80630445b6671461021257806306fdde031461023c57806308fd3d0514610266578063095ea7b3146102905761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b50610226610816565b6040516102339190613153565b60405180910390f35b348015610247575f80fd5b5061025061081c565b60405161025d91906131f6565b60405180910390f35b348015610271575f80fd5b5061027a610859565b6040516102879190613230565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b191906132d1565b61086c565b6040516102c39190613230565b60405180910390f35b3480156102d7575f80fd5b506102e0610959565b6040516102ed9190613153565b60405180910390f35b348015610301575f80fd5b5061030a610962565b6040516103179190613153565b60405180910390f35b34801561032b575f80fd5b506103466004803603810190610341919061330f565b610968565b6040516103539190613230565b60405180910390f35b348015610367575f80fd5b50610382600480360381019061037d919061335f565b610b5b565b005b34801561038f575f80fd5b50610398610cca565b005b3480156103a5575f80fd5b506103c060048036038101906103bb91906133e8565b610d92565b6040516103cd9190613153565b60405180910390f35b3480156103e1575f80fd5b506103ea610e02565b6040516103f7919061342e565b60405180910390f35b34801561040b575f80fd5b50610414610e0a565b6040516104219190613153565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190613447565b610e49565b60405161045d9190613230565b60405180910390f35b348015610471575f80fd5b5061048c600480360381019061048791906133e8565b610e7b565b005b348015610499575f80fd5b506104a2610f78565b6040516104af9190613230565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190613447565b610f8b565b6040516104eb9190613153565b60405180910390f35b3480156104ff575f80fd5b50610508610fd1565b005b348015610515575f80fd5b5061051e61111f565b005b34801561052b575f80fd5b50610546600480360381019061054191906132d1565b6111c7565b6040516105539190613230565b60405180910390f35b348015610567575f80fd5b50610570611327565b60405161057d9190613153565b60405180910390f35b348015610591575f80fd5b5061059a61132d565b6040516105a79190613153565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613472565b611333565b005b3480156105e3575f80fd5b506105ec6115cf565b6040516105f991906134f8565b60405180910390f35b34801561060d575f80fd5b506106166115dd565b60405161062391906134f8565b60405180910390f35b348015610637575f80fd5b50610640611604565b60405161064d91906131f6565b60405180910390f35b348015610661575f80fd5b5061066a611641565b60405161067791906134f8565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a191906132d1565b611666565b6040516106b39190613230565b60405180910390f35b3480156106c7575f80fd5b506106d061167a565b6040516106dd91906134f8565b60405180910390f35b3480156106f1575f80fd5b5061070c60048036038101906107079190613511565b61169d565b005b348015610719575f80fd5b50610734600480360381019061072f9190613561565b61174b565b6040516107419190613153565b60405180910390f35b348015610755575f80fd5b50610770600480360381019061076b919061359f565b6117cd565b60405161077d9190613230565b60405180910390f35b348015610791575f80fd5b506107ac60048036038101906107a79190613607565b6117e1565b005b3480156107b9575f80fd5b506107d460048036038101906107cf9190613447565b6118e4565b005b3480156107e1575f80fd5b506107ea611aa1565b005b3480156107f7575f80fd5b50610800611b08565b60405161080d91906136a0565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f4576657247617465000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109479190613153565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b4757610aca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b52848484611b8f565b90509392505050565b610b636121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be690613703565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c5b82610c4d85610c3f88610c318b8d6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b600f81905550806010819055506002601054610c77919061377b565b600f5410610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb1906137f5565b60405180910390fd5b610cc261222a565b505050505050565b610cd26121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590613703565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550606460128190555060646011819055505f601381905550565b5f610dfb610d9e610e0a565b610ded610dde6002610dd0601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8b565b6122e290919063ffffffff16565b856122e290919063ffffffff16565b61235990919063ffffffff16565b9050919050565b5f6012905090565b5f610e44610e175f610f8b565b610e36610e2561dead610f8b565b6003546123a290919063ffffffff16565b6123a290919063ffffffff16565b905090565b5f610e74827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610e836121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690613703565b60405180910390fd5b6001811015610f1c575f80fd5b606481600354610f2c9190613813565b610f36919061377b565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f6d9190613153565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111276121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613703565b60405180910390fd5b600354600481905550600354600581905550565b5f80820361124a578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120891906134f8565b602060405180830381865afa158015611223573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112479190613868565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161127b929190613893565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112df929190613893565b6020604051808303815f875af11580156112fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131f91906138ce565b905092915050565b60055481565b60045481565b61133b6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90613703565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115c094939291906138f9565b60405180910390a15050505050565b5f6115d86115dd565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4556455247415445000000000000000000000000000000000000000000000000815250905090565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611672338484611b8f565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a56121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613703565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826117d883610d92565b11905092915050565b6117e96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613703565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516118d892919061393c565b60405180910390a15050565b6118ec6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd906139d3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611b05573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b91906131f6565b60405180910390fd5b505f8385611b8291906139f1565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611bb657611baf8484846123eb565b90506121bf565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c54575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ca957601d60149054906101000a900460ff16611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613a6e565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d2c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d66575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbf5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e18575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e71575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ec4575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f27575f611ed384610f8b565b90506005548382611ee49190613a8c565b1115611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613b2f565b60405180910390fd5b505b611f3184836125b5565b611f3961264f565b15611f4757611f46612721565b5b611fce826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120ab575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120bf576120ba858486612d1c565b6120c1565b825b90506121138160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121b19190613153565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846121db9190613a8c565b905083811015612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790613b97565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006122756064612267601254600f546122e290919063ffffffff16565b61235990919063ffffffff16565b61229f6064612291601154600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6122c960646122bb601354600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6040516122d893929190613bb5565b60405180910390a1565b5f8083036122f2575f9050612353565b5f82846122ff9190613813565b905082848261230e919061377b565b1461234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590613c5a565b60405180910390fd5b809150505b92915050565b5f61239a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130da565b905092915050565b5f6123e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b2d565b905092915050565b5f612473826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125048260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125a29190613153565b60405180910390a3600190509392505050565b6004548111158061260c575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264290613cc2565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126b95750601f5f9054906101000a900460ff16155b80156126d15750601d60159054906101000a900460ff165b801561271c5750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f61274a601954601a546117cd565b61275657600a54612758565b5f5b90505f6127976002612789600f5461277b86601e546122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6127af82601e546123a290919063ffffffff16565b90505f600267ffffffffffffffff8111156127cd576127cc613ce0565b5b6040519080825280602002602001820160405280156127fb5781602001602082028036833780820191505090505b50905030815f8151811061281257612811613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061288257612881613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612922959493929190613e2a565b5f604051808303815f87803b158015612939575f80fd5b505af115801561294b573d5f803e3d5ffd5b505050505f61296382476123a290919063ffffffff16565b90505f61298e61297d60028961235990919063ffffffff16565b600f546123a290919063ffffffff16565b90505f6129c960026129bb846129ad8c886122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6129f3836129e5600b54876122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a1d84612a0f600d54886122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a4785612a39600c54896122e290919063ffffffff16565b61235990919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a8f90613eaf565b5f6040518083038185875af1925050503d805f8114612ac9576040519150601f19603f3d011682016040523d82523d5f602084013e612ace565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612b1790613eaf565b5f6040518083038185875af1925050503d805f8114612b51576040519150601f19603f3d011682016040523d82523d5f602084013e612b56565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ba190613eaf565b5f6040518083038185875af1925050503d805f8114612bdb576040519150601f19603f3d011682016040523d82523d5f602084013e612be0565b606091505b5050809150505f90505f8b1115612cf557601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c7796959493929190613ec3565b60606040518083038185885af1158015612c93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612cb89190613f22565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612cec929190613f72565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d81576011549050612ddc565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ddb5760125490505b5b5f612e246064601054612def9190613813565b612e1684612e08600f548a6122e290919063ffffffff16565b6122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e50600f54612e42600e54856122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e6682846123a290919063ffffffff16565b9050612eb88160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612f6a8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130299190613153565b60405180910390a35f8211156130ba5761304e826003546123a290919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130b19190613153565b60405180910390a35b6130cd83886123a290919063ffffffff16565b9450505050509392505050565b5f8083118290613120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311791906131f6565b60405180910390fd5b505f838561312e919061377b565b9050809150509392505050565b5f819050919050565b61314d8161313b565b82525050565b5f6020820190506131665f830184613144565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131a3578082015181840152602081019050613188565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131c88261316c565b6131d28185613176565b93506131e2818560208601613186565b6131eb816131ae565b840191505092915050565b5f6020820190508181035f83015261320e81846131be565b905092915050565b5f8115159050919050565b61322a81613216565b82525050565b5f6020820190506132435f830184613221565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6132768261324d565b9050919050565b6132868161326c565b8114613290575f80fd5b50565b5f813590506132a18161327d565b92915050565b6132b08161313b565b81146132ba575f80fd5b50565b5f813590506132cb816132a7565b92915050565b5f80604083850312156132e7576132e6613249565b5b5f6132f485828601613293565b9250506020613305858286016132bd565b9150509250929050565b5f805f6060848603121561332657613325613249565b5b5f61333386828701613293565b935050602061334486828701613293565b9250506040613355868287016132bd565b9150509250925092565b5f805f805f8060c0878903121561337957613378613249565b5b5f61338689828a016132bd565b965050602061339789828a016132bd565b95505060406133a889828a016132bd565b94505060606133b989828a016132bd565b93505060806133ca89828a016132bd565b92505060a06133db89828a016132bd565b9150509295509295509295565b5f602082840312156133fd576133fc613249565b5b5f61340a848285016132bd565b91505092915050565b5f60ff82169050919050565b61342881613413565b82525050565b5f6020820190506134415f83018461341f565b92915050565b5f6020828403121561345c5761345b613249565b5b5f61346984828501613293565b91505092915050565b5f805f805f60a0868803121561348b5761348a613249565b5b5f61349888828901613293565b95505060206134a988828901613293565b94505060406134ba88828901613293565b93505060606134cb88828901613293565b92505060806134dc88828901613293565b9150509295509295909350565b6134f28161326c565b82525050565b5f60208201905061350b5f8301846134e9565b92915050565b5f805f6060848603121561352857613527613249565b5b5f613535868287016132bd565b9350506020613546868287016132bd565b9250506040613557868287016132bd565b9150509250925092565b5f806040838503121561357757613576613249565b5b5f61358485828601613293565b925050602061359585828601613293565b9150509250929050565b5f80604083850312156135b5576135b4613249565b5b5f6135c2858286016132bd565b92505060206135d3858286016132bd565b9150509250929050565b6135e681613216565b81146135f0575f80fd5b50565b5f81359050613601816135dd565b92915050565b5f806040838503121561361d5761361c613249565b5b5f61362a858286016135f3565b925050602061363b858286016132bd565b9150509250929050565b5f819050919050565b5f61366861366361365e8461324d565b613645565b61324d565b9050919050565b5f6136798261364e565b9050919050565b5f61368a8261366f565b9050919050565b61369a81613680565b82525050565b5f6020820190506136b35f830184613691565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ed602083613176565b91506136f8826136b9565b602082019050919050565b5f6020820190508181035f83015261371a816136e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137858261313b565b91506137908361313b565b9250826137a05761379f613721565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6137df601d83613176565b91506137ea826137ab565b602082019050919050565b5f6020820190508181035f83015261380c816137d3565b9050919050565b5f61381d8261313b565b91506138288361313b565b92508282026138368161313b565b9150828204841483151761384d5761384c61374e565b5b5092915050565b5f81519050613862816132a7565b92915050565b5f6020828403121561387d5761387c613249565b5b5f61388a84828501613854565b91505092915050565b5f6040820190506138a65f8301856134e9565b6138b36020830184613144565b9392505050565b5f815190506138c8816135dd565b92915050565b5f602082840312156138e3576138e2613249565b5b5f6138f0848285016138ba565b91505092915050565b5f60808201905061390c5f8301876134e9565b61391960208301866134e9565b61392660408301856134e9565b61393360608301846134e9565b95945050505050565b5f60408201905061394f5f830185613144565b61395c6020830184613221565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139bd602683613176565b91506139c882613963565b604082019050919050565b5f6020820190508181035f8301526139ea816139b1565b9050919050565b5f6139fb8261313b565b9150613a068361313b565b9250828203905081811115613a1e57613a1d61374e565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613a58601483613176565b9150613a6382613a24565b602082019050919050565b5f6020820190508181035f830152613a8581613a4c565b9050919050565b5f613a968261313b565b9150613aa18361313b565b9250828201905080821115613ab957613ab861374e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613b19603e83613176565b9150613b2482613abf565b604082019050919050565b5f6020820190508181035f830152613b4681613b0d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b81601b83613176565b9150613b8c82613b4d565b602082019050919050565b5f6020820190508181035f830152613bae81613b75565b9050919050565b5f606082019050613bc85f83018661341f565b613bd5602083018561341f565b613be2604083018461341f565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c44602183613176565b9150613c4f82613bea565b604082019050919050565b5f6020820190508181035f830152613c7181613c38565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613cac601183613176565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613d5d613d58613d5384613d3a565b613645565b61313b565b9050919050565b613d6d81613d43565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613da58161326c565b82525050565b5f613db68383613d9c565b60208301905092915050565b5f602082019050919050565b5f613dd882613d73565b613de28185613d7d565b9350613ded83613d8d565b805f5b83811015613e1d578151613e048882613dab565b9750613e0f83613dc2565b925050600181019050613df0565b5085935050505092915050565b5f60a082019050613e3d5f830188613144565b613e4a6020830187613d64565b8181036040830152613e5c8186613dce565b9050613e6b60608301856134e9565b613e786080830184613144565b9695505050505050565b5f81905092915050565b50565b5f613e9a5f83613e82565b9150613ea582613e8c565b5f82019050919050565b5f613eb982613e8f565b9150819050919050565b5f60c082019050613ed65f8301896134e9565b613ee36020830188613144565b613ef06040830187613d64565b613efd6060830186613d64565b613f0a60808301856134e9565b613f1760a0830184613144565b979650505050505050565b5f805f60608486031215613f3957613f38613249565b5b5f613f4686828701613854565b9350506020613f5786828701613854565b9250506040613f6886828701613854565b9150509250925092565b5f604082019050613f855f830185613144565b613f926020830184613144565b939250505056fea2646970667358221220e108c3c1e57212a5230e774569f87de76d2223e2d86017be7d716b8f977f64be64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610207575f3560e01c8063751039fc11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461074a578063df20fd4914610786578063f2fde38b146107ae578063f4293890146107d6578063f887ea40146107ec5761020e565b8063a9059cbb14610680578063b2bdfa7b146106bc578063c0cbdea4146106e6578063dd62ed3e1461070e5761020e565b806382528791116100e657806382528791146105b0578063893d20e8146105d85780638da5cb5b1461060257806395d89b411461062c578063a8aa1b31146106565761020e565b8063751039fc1461050a57806377b54bad1461052057806378109e541461055c5780637d1db4a5146105865761020e565b8063293230b81161019a578063571ac8b011610169578063571ac8b01461042a5780635d83e1d5146104665780636ddd17131461048e57806370a08231146104b8578063715018a6146104f45761020e565b8063293230b81461038457806330c9a6a01461039a578063313ce567146103d657806355265669146104005761020e565b806318160ddd116101d657806318160ddd146102cc5780631df4ccfc146102f657806323b872dd14610320578063282c87491461035c5761020e565b80630445b6671461021257806306fdde031461023c57806308fd3d0514610266578063095ea7b3146102905761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b50610226610816565b6040516102339190613153565b60405180910390f35b348015610247575f80fd5b5061025061081c565b60405161025d91906131f6565b60405180910390f35b348015610271575f80fd5b5061027a610859565b6040516102879190613230565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b191906132d1565b61086c565b6040516102c39190613230565b60405180910390f35b3480156102d7575f80fd5b506102e0610959565b6040516102ed9190613153565b60405180910390f35b348015610301575f80fd5b5061030a610962565b6040516103179190613153565b60405180910390f35b34801561032b575f80fd5b506103466004803603810190610341919061330f565b610968565b6040516103539190613230565b60405180910390f35b348015610367575f80fd5b50610382600480360381019061037d919061335f565b610b5b565b005b34801561038f575f80fd5b50610398610cca565b005b3480156103a5575f80fd5b506103c060048036038101906103bb91906133e8565b610d92565b6040516103cd9190613153565b60405180910390f35b3480156103e1575f80fd5b506103ea610e02565b6040516103f7919061342e565b60405180910390f35b34801561040b575f80fd5b50610414610e0a565b6040516104219190613153565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190613447565b610e49565b60405161045d9190613230565b60405180910390f35b348015610471575f80fd5b5061048c600480360381019061048791906133e8565b610e7b565b005b348015610499575f80fd5b506104a2610f78565b6040516104af9190613230565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190613447565b610f8b565b6040516104eb9190613153565b60405180910390f35b3480156104ff575f80fd5b50610508610fd1565b005b348015610515575f80fd5b5061051e61111f565b005b34801561052b575f80fd5b50610546600480360381019061054191906132d1565b6111c7565b6040516105539190613230565b60405180910390f35b348015610567575f80fd5b50610570611327565b60405161057d9190613153565b60405180910390f35b348015610591575f80fd5b5061059a61132d565b6040516105a79190613153565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613472565b611333565b005b3480156105e3575f80fd5b506105ec6115cf565b6040516105f991906134f8565b60405180910390f35b34801561060d575f80fd5b506106166115dd565b60405161062391906134f8565b60405180910390f35b348015610637575f80fd5b50610640611604565b60405161064d91906131f6565b60405180910390f35b348015610661575f80fd5b5061066a611641565b60405161067791906134f8565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a191906132d1565b611666565b6040516106b39190613230565b60405180910390f35b3480156106c7575f80fd5b506106d061167a565b6040516106dd91906134f8565b60405180910390f35b3480156106f1575f80fd5b5061070c60048036038101906107079190613511565b61169d565b005b348015610719575f80fd5b50610734600480360381019061072f9190613561565b61174b565b6040516107419190613153565b60405180910390f35b348015610755575f80fd5b50610770600480360381019061076b919061359f565b6117cd565b60405161077d9190613230565b60405180910390f35b348015610791575f80fd5b506107ac60048036038101906107a79190613607565b6117e1565b005b3480156107b9575f80fd5b506107d460048036038101906107cf9190613447565b6118e4565b005b3480156107e1575f80fd5b506107ea611aa1565b005b3480156107f7575f80fd5b50610800611b08565b60405161080d91906136a0565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f4576657247617465000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109479190613153565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b4757610aca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b52848484611b8f565b90509392505050565b610b636121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be690613703565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c5b82610c4d85610c3f88610c318b8d6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b600f81905550806010819055506002601054610c77919061377b565b600f5410610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb1906137f5565b60405180910390fd5b610cc261222a565b505050505050565b610cd26121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590613703565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550606460128190555060646011819055505f601381905550565b5f610dfb610d9e610e0a565b610ded610dde6002610dd0601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8b565b6122e290919063ffffffff16565b856122e290919063ffffffff16565b61235990919063ffffffff16565b9050919050565b5f6012905090565b5f610e44610e175f610f8b565b610e36610e2561dead610f8b565b6003546123a290919063ffffffff16565b6123a290919063ffffffff16565b905090565b5f610e74827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610e836121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690613703565b60405180910390fd5b6001811015610f1c575f80fd5b606481600354610f2c9190613813565b610f36919061377b565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f6d9190613153565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111276121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613703565b60405180910390fd5b600354600481905550600354600581905550565b5f80820361124a578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120891906134f8565b602060405180830381865afa158015611223573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112479190613868565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161127b929190613893565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112df929190613893565b6020604051808303815f875af11580156112fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131f91906138ce565b905092915050565b60055481565b60045481565b61133b6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90613703565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115c094939291906138f9565b60405180910390a15050505050565b5f6115d86115dd565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4556455247415445000000000000000000000000000000000000000000000000815250905090565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611672338484611b8f565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a56121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613703565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826117d883610d92565b11905092915050565b6117e96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613703565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516118d892919061393c565b60405180910390a15050565b6118ec6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd906139d3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611b05573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b91906131f6565b60405180910390fd5b505f8385611b8291906139f1565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611bb657611baf8484846123eb565b90506121bf565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c54575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ca957601d60149054906101000a900460ff16611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613a6e565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d2c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d66575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbf5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e18575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e71575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ec4575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f27575f611ed384610f8b565b90506005548382611ee49190613a8c565b1115611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613b2f565b60405180910390fd5b505b611f3184836125b5565b611f3961264f565b15611f4757611f46612721565b5b611fce826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120ab575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120bf576120ba858486612d1c565b6120c1565b825b90506121138160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121b19190613153565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846121db9190613a8c565b905083811015612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790613b97565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006122756064612267601254600f546122e290919063ffffffff16565b61235990919063ffffffff16565b61229f6064612291601154600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6122c960646122bb601354600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6040516122d893929190613bb5565b60405180910390a1565b5f8083036122f2575f9050612353565b5f82846122ff9190613813565b905082848261230e919061377b565b1461234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590613c5a565b60405180910390fd5b809150505b92915050565b5f61239a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130da565b905092915050565b5f6123e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b2d565b905092915050565b5f612473826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125048260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125a29190613153565b60405180910390a3600190509392505050565b6004548111158061260c575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264290613cc2565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126b95750601f5f9054906101000a900460ff16155b80156126d15750601d60159054906101000a900460ff165b801561271c5750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f61274a601954601a546117cd565b61275657600a54612758565b5f5b90505f6127976002612789600f5461277b86601e546122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6127af82601e546123a290919063ffffffff16565b90505f600267ffffffffffffffff8111156127cd576127cc613ce0565b5b6040519080825280602002602001820160405280156127fb5781602001602082028036833780820191505090505b50905030815f8151811061281257612811613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061288257612881613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612922959493929190613e2a565b5f604051808303815f87803b158015612939575f80fd5b505af115801561294b573d5f803e3d5ffd5b505050505f61296382476123a290919063ffffffff16565b90505f61298e61297d60028961235990919063ffffffff16565b600f546123a290919063ffffffff16565b90505f6129c960026129bb846129ad8c886122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6129f3836129e5600b54876122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a1d84612a0f600d54886122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a4785612a39600c54896122e290919063ffffffff16565b61235990919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a8f90613eaf565b5f6040518083038185875af1925050503d805f8114612ac9576040519150601f19603f3d011682016040523d82523d5f602084013e612ace565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612b1790613eaf565b5f6040518083038185875af1925050503d805f8114612b51576040519150601f19603f3d011682016040523d82523d5f602084013e612b56565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ba190613eaf565b5f6040518083038185875af1925050503d805f8114612bdb576040519150601f19603f3d011682016040523d82523d5f602084013e612be0565b606091505b5050809150505f90505f8b1115612cf557601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c7796959493929190613ec3565b60606040518083038185885af1158015612c93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612cb89190613f22565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612cec929190613f72565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d81576011549050612ddc565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ddb5760125490505b5b5f612e246064601054612def9190613813565b612e1684612e08600f548a6122e290919063ffffffff16565b6122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e50600f54612e42600e54856122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e6682846123a290919063ffffffff16565b9050612eb88160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612f6a8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130299190613153565b60405180910390a35f8211156130ba5761304e826003546123a290919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130b19190613153565b60405180910390a35b6130cd83886123a290919063ffffffff16565b9450505050509392505050565b5f8083118290613120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311791906131f6565b60405180910390fd5b505f838561312e919061377b565b9050809150509392505050565b5f819050919050565b61314d8161313b565b82525050565b5f6020820190506131665f830184613144565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131a3578082015181840152602081019050613188565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131c88261316c565b6131d28185613176565b93506131e2818560208601613186565b6131eb816131ae565b840191505092915050565b5f6020820190508181035f83015261320e81846131be565b905092915050565b5f8115159050919050565b61322a81613216565b82525050565b5f6020820190506132435f830184613221565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6132768261324d565b9050919050565b6132868161326c565b8114613290575f80fd5b50565b5f813590506132a18161327d565b92915050565b6132b08161313b565b81146132ba575f80fd5b50565b5f813590506132cb816132a7565b92915050565b5f80604083850312156132e7576132e6613249565b5b5f6132f485828601613293565b9250506020613305858286016132bd565b9150509250929050565b5f805f6060848603121561332657613325613249565b5b5f61333386828701613293565b935050602061334486828701613293565b9250506040613355868287016132bd565b9150509250925092565b5f805f805f8060c0878903121561337957613378613249565b5b5f61338689828a016132bd565b965050602061339789828a016132bd565b95505060406133a889828a016132bd565b94505060606133b989828a016132bd565b93505060806133ca89828a016132bd565b92505060a06133db89828a016132bd565b9150509295509295509295565b5f602082840312156133fd576133fc613249565b5b5f61340a848285016132bd565b91505092915050565b5f60ff82169050919050565b61342881613413565b82525050565b5f6020820190506134415f83018461341f565b92915050565b5f6020828403121561345c5761345b613249565b5b5f61346984828501613293565b91505092915050565b5f805f805f60a0868803121561348b5761348a613249565b5b5f61349888828901613293565b95505060206134a988828901613293565b94505060406134ba88828901613293565b93505060606134cb88828901613293565b92505060806134dc88828901613293565b9150509295509295909350565b6134f28161326c565b82525050565b5f60208201905061350b5f8301846134e9565b92915050565b5f805f6060848603121561352857613527613249565b5b5f613535868287016132bd565b9350506020613546868287016132bd565b9250506040613557868287016132bd565b9150509250925092565b5f806040838503121561357757613576613249565b5b5f61358485828601613293565b925050602061359585828601613293565b9150509250929050565b5f80604083850312156135b5576135b4613249565b5b5f6135c2858286016132bd565b92505060206135d3858286016132bd565b9150509250929050565b6135e681613216565b81146135f0575f80fd5b50565b5f81359050613601816135dd565b92915050565b5f806040838503121561361d5761361c613249565b5b5f61362a858286016135f3565b925050602061363b858286016132bd565b9150509250929050565b5f819050919050565b5f61366861366361365e8461324d565b613645565b61324d565b9050919050565b5f6136798261364e565b9050919050565b5f61368a8261366f565b9050919050565b61369a81613680565b82525050565b5f6020820190506136b35f830184613691565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ed602083613176565b91506136f8826136b9565b602082019050919050565b5f6020820190508181035f83015261371a816136e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137858261313b565b91506137908361313b565b9250826137a05761379f613721565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6137df601d83613176565b91506137ea826137ab565b602082019050919050565b5f6020820190508181035f83015261380c816137d3565b9050919050565b5f61381d8261313b565b91506138288361313b565b92508282026138368161313b565b9150828204841483151761384d5761384c61374e565b5b5092915050565b5f81519050613862816132a7565b92915050565b5f6020828403121561387d5761387c613249565b5b5f61388a84828501613854565b91505092915050565b5f6040820190506138a65f8301856134e9565b6138b36020830184613144565b9392505050565b5f815190506138c8816135dd565b92915050565b5f602082840312156138e3576138e2613249565b5b5f6138f0848285016138ba565b91505092915050565b5f60808201905061390c5f8301876134e9565b61391960208301866134e9565b61392660408301856134e9565b61393360608301846134e9565b95945050505050565b5f60408201905061394f5f830185613144565b61395c6020830184613221565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139bd602683613176565b91506139c882613963565b604082019050919050565b5f6020820190508181035f8301526139ea816139b1565b9050919050565b5f6139fb8261313b565b9150613a068361313b565b9250828203905081811115613a1e57613a1d61374e565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613a58601483613176565b9150613a6382613a24565b602082019050919050565b5f6020820190508181035f830152613a8581613a4c565b9050919050565b5f613a968261313b565b9150613aa18361313b565b9250828201905080821115613ab957613ab861374e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613b19603e83613176565b9150613b2482613abf565b604082019050919050565b5f6020820190508181035f830152613b4681613b0d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b81601b83613176565b9150613b8c82613b4d565b602082019050919050565b5f6020820190508181035f830152613bae81613b75565b9050919050565b5f606082019050613bc85f83018661341f565b613bd5602083018561341f565b613be2604083018461341f565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c44602183613176565b9150613c4f82613bea565b604082019050919050565b5f6020820190508181035f830152613c7181613c38565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613cac601183613176565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613d5d613d58613d5384613d3a565b613645565b61313b565b9050919050565b613d6d81613d43565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613da58161326c565b82525050565b5f613db68383613d9c565b60208301905092915050565b5f602082019050919050565b5f613dd882613d73565b613de28185613d7d565b9350613ded83613d8d565b805f5b83811015613e1d578151613e048882613dab565b9750613e0f83613dc2565b925050600181019050613df0565b5085935050505092915050565b5f60a082019050613e3d5f830188613144565b613e4a6020830187613d64565b8181036040830152613e5c8186613dce565b9050613e6b60608301856134e9565b613e786080830184613144565b9695505050505050565b5f81905092915050565b50565b5f613e9a5f83613e82565b9150613ea582613e8c565b5f82019050919050565b5f613eb982613e8f565b9150819050919050565b5f60c082019050613ed65f8301896134e9565b613ee36020830188613144565b613ef06040830187613d64565b613efd6060830186613d64565b613f0a60808301856134e9565b613f1760a0830184613144565b979650505050505050565b5f805f60608486031215613f3957613f38613249565b5b5f613f4686828701613854565b9350506020613f5786828701613854565b9250506040613f6886828701613854565b9150509250925092565b5f604082019050613f855f830185613144565b613f926020830184613144565b939250505056fea2646970667358221220e108c3c1e57212a5230e774569f87de76d2223e2d86017be7d716b8f977f64be64736f6c63430008140033
Deployed Bytecode Sourcemap
9250:13475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11575:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12996:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11497:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13418:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12726:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10868:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13936:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20904:591;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18574:195;;;;;;;;;;;;;:::i;:::-;;22425:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12820:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22586:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13642:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14318:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11538:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13166:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6164:148;;;;;;;;;;;;;:::i;:::-;;14574:139;;;;;;;;;;;;;:::i;:::-;;17956:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10373:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10308:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21508:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13082:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5950:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12906:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11465:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13772:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5570:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18302:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13277:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22282:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22063:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6320:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17817:132;;;;;;;;;;;;;:::i;:::-;;11395:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11575:54;;;;:::o;12996:80::-;13044:13;13068:5;;;;;;;;;;;;;;;;;13061:12;;12996:80;:::o;11497:31::-;;;;;;;;;;;;;:::o;13418:216::-;13493:4;13545:6;13510:11;:23;13522:10;13510:23;;;;;;;;;;;;;;;:32;13534:7;13510:32;;;;;;;;;;;;;;;:41;;;;13588:7;13567:37;;13576:10;13567:37;;;13597:6;13567:37;;;;;;:::i;:::-;;;;;;;;13622:4;13615:11;;13418:216;;;;:::o;12726:88::-;12781:7;12799:12;;12792:19;;12726:88;:::o;10868:93::-;;;;:::o;13936:370::-;14036:4;14091:17;14056:11;:19;14068:6;14056:19;;;;;;;;;;;;;;;:31;14076:10;14056:31;;;;;;;;;;;;;;;;:52;14053:186;;14158:69;14194:6;14158:69;;;;;;;;;;;;;;;;;:11;:19;14170:6;14158:19;;;;;;;;;;;;;;;:31;14178:10;14158:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;14124:11;:19;14136:6;14124:19;;;;;;;;;;;;;;;:31;14144:10;14124:31;;;;;;;;;;;;;;;:103;;;;14053:186;14258:40;14272:6;14280:9;14291:6;14258:13;:40::i;:::-;14251:47;;13936:370;;;;;:::o;20904:591::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21099:13:::1;21084:12;:28;;;;21136:11;21123:10;:24;;;;21173:13;21158:12;:28;;;;21206:7;21197:6;:16;;;;21234:8;21224:7;:18;;;;21264:76;21331:8;21264:62;21318:7;21264:49;21299:13;21264:30;21282:11;21264:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;21253:8;:87;;;;21368:15;21351:14;:32;;;;21430:1;21413:14;;:18;;;;:::i;:::-;21402:8;;:29;21394:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21477:10;:8;:10::i;:::-;20904:591:::0;;;;;;:::o;18574:195::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18640:4:::1;18626:11;;:18;;;;;;;;;;;;;;;;;;18668:3;18655:10;:16;;;;18696:3;18682:11;:17;;;;18728:1;18710:15;:19;;;;18574:195::o:0;22425:149::-;22485:7;22512:54;22553:12;:10;:12::i;:::-;22512:36;22525:22;22545:1;22525:15;22535:4;;;;;;;;;;;22525:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;22512:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;22505:61;;22425:149;;;:::o;12820:80::-;12872:5;9614:2;12881:16;;12820:80;:::o;22586:132::-;22629:7;22656:54;22694:15;9446:42;22694:9;:15::i;:::-;22656:33;22673:15;9373:42;22673:9;:15::i;:::-;22656:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;22649:61;;22586:132;:::o;13642:122::-;13697:4;13721:35;13729:7;13738:17;13721:7;:35::i;:::-;13714:42;;13642:122;;;:::o;14318:246::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14422:1:::1;14404:14;:19;;14396:28;;;::::0;::::1;;14489:3;14470:14;14455:12;;:29;;;;:::i;:::-;14454:38;;;;:::i;:::-;14436:15;:56;;;;14508:30;14522:15;;14508:30;;;;;;:::i;:::-;;;;;;;;14318:246:::0;:::o;11538:30::-;;;;;;;;;;;;;:::o;13166:105::-;13232:7;13250:9;:18;13260:7;13250:18;;;;;;;;;;;;;;;;13243:25;;13166:105;;;:::o;6164:148::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6271:1:::1;6234:40;;6255:6;::::0;::::1;;;;;;;;6234:40;;;;;;;;;;;;6302:1;6285:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6164:148::o:0;14574:139::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14648:12:::1;;14633;:27;;;;14693:12;;14675:15;:30;;;;14574:139::o:0;17956:338::-;18037:12;18080:1;18070:6;:11;18067:95;;18112:12;18106:29;;;18144:4;18106:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18097:53;;18067:95;18177:32;18188:12;18202:6;18177:32;;;;;;;:::i;:::-;;;;;;;;18233:12;18227:28;;;18256:21;;;;;;;;;;;18279:6;18227:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18220:66;;17956:338;;;;:::o;10373:61::-;;;;:::o;10308:58::-;;;;:::o;21508:547::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21725:22:::1;21701:21;;:46;;;;;;;;;;;;;;;;;;21781:21;21758:20;;:44;;;;;;;;;;;;;;;;;;21830:15;21813:14;;:32;;;;;;;;;;;;;;;;;;21874:16;21856:15;;:34;;;;;;;;;;;;;;;;;;21922:19;21901:18;;:40;;;;;;;;;;;;;;;;;;21959:88;21973:20;;;;;;;;;;;21995:18;;;;;;;;;;;22015:15;;;;;;;;;;;22032:14;;;;;;;;;;;21959:88;;;;;;;;;:::i;:::-;;;;;;;;21508:547:::0;;;;;:::o;13082:78::-;13134:7;13151;:5;:7::i;:::-;13144:14;;13082:78;:::o;5950:79::-;5988:7;6015:6;;;;;;;;;;;6008:13;;5950:79;:::o;12906:84::-;12956:13;12980:7;;;;;;;;;;;;;;;;;12973:14;;12906:84;:::o;11465:19::-;;;;;;;;;;;;;:::o;13772:156::-;13852:4;13876:44;13890:10;13902:9;13913:6;13876:13;:44::i;:::-;13869:51;;13772:156;;;;:::o;5570:21::-;;;;;;;;;;;;:::o;18302:257::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18440:14:::1;18426:11;:28;;;;18478:13;18465:10;:26;;;;18520:15;18502;:33;;;;18302:257:::0;;;:::o;13277:133::-;13361:7;13379:11;:19;13391:6;13379:19;;;;;;;;;;;;;;;:28;13399:7;13379:28;;;;;;;;;;;;;;;;13372:35;;13277:133;;;;:::o;22282:135::-;22356:4;22404:5;22380:21;22392:8;22380:11;:21::i;:::-;:29;22373:36;;22282:135;;;;:::o;22063:211::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22168:8:::1;22154:11;;:22;;;;;;;;;;;;;;;;;;22203:7;22187:13;:23;;;;22226:40;22239:13;;22254:11;;;;;;;;;;;22226:40;;;;;;;:::i;:::-;;;;;;;;22063:211:::0;;:::o;6320:244::-;6087:12;:10;:12::i;:::-;6077:22;;:6;;;;;;;;;;:22;;;6069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6429:1:::1;6409:22;;:8;:22;;::::0;6401:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6519:8;6490:38;;6511:6;::::0;::::1;;;;;;;;6490:38;;;;;;;;;;;;6548:8;6539:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6320:244:::0;:::o;17817:132::-;17873:21;;;;;;;;;;;17865:39;;:62;17905:21;17865:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17817:132::o;11395:24::-;;;;;;;;;;;;;:::o;8462:192::-;8548:7;8581:1;8576;:6;;8584:12;8568:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8608:9;8624:1;8620;:5;;;;:::i;:::-;8608:17;;8645:1;8638:8;;;8462:192;;;;;:::o;14729:1238::-;14821:4;14841:6;;;;;;;;;;;14838:63;;;14857:41;14872:6;14880:9;14891:6;14857:14;:41::i;:::-;14850:48;;;;14838:63;14917:14;:22;14932:6;14917:22;;;;;;;;;;;;;;;;;;;;;;;;;14916:23;:53;;;;;14944:14;:25;14959:9;14944:25;;;;;;;;;;;;;;;;;;;;;;;;;14943:26;14916:53;14913:139;;;14993:11;;;;;;;;;;;14985:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14913:139;15094:14;:22;15109:6;15094:22;;;;;;;;;;;;;;;;;;;;;;;;;15093:23;:53;;;;;15141:4;15120:26;;:9;:26;;;;15093:53;:84;;;;;9373:42;15151:26;;:9;:26;;;;15093:84;:105;;;;;15194:4;;;;;;;;;;;15181:17;;:9;:17;;;;15093:105;:137;;;;;15215:15;;;;;;;;;;;15202:28;;:9;:28;;;;15093:137;:174;;;;;15247:20;;;;;;;;;;;15234:33;;:9;:33;;;;15093:174;:207;;;;;15272:17;:28;15290:9;15272:28;;;;;;;;;;;;;;;;;;;;;;;;;15271:29;15093:207;15089:399;;;15316:18;15337:20;15347:9;15337;:20::i;:::-;15316:41;;15405:15;;15394:6;15381:10;:19;;;;:::i;:::-;15380:40;;15372:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;15301:187;15089:399;15500:28;15513:6;15521;15500:12;:28::i;:::-;15546:16;:14;:16::i;:::-;15543:35;;;15565:10;:8;:10::i;:::-;15543:35;15608:53;15630:6;15608:53;;;;;;;;;;;;;;;;;:9;:17;15618:6;15608:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15588:9;:17;15598:6;15588:17;;;;;;;;;;;;;;;:73;;;;15674:22;15700:16;:24;15717:6;15700:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;15728:16;:27;15745:9;15728:27;;;;;;;;;;;;;;;;;;;;;;;;;15700:55;15699:103;;15768:34;15776:6;15784;15792:9;15768:7;:34::i;:::-;15699:103;;;15759:6;15699:103;15674:128;;15836:40;15861:14;15836:9;:20;15846:9;15836:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15813:9;:20;15823:9;15813:20;;;;;;;;;;;;;;;:63;;;;15911:9;15894:43;;15903:6;15894:43;;;15922:14;15894:43;;;;;;:::i;:::-;;;;;;;;15955:4;15948:11;;;14729:1238;;;;;;:::o;5291:115::-;5344:15;5387:10;5372:26;;5291:115;:::o;8133:181::-;8191:7;8211:9;8227:1;8223;:5;;;;:::i;:::-;8211:17;;8252:1;8247;:6;;8239:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8305:1;8298:8;;;8133:181;;;;:::o;20651:241::-;20704:180;20719:33;20748:3;20719:24;20732:10;;20719:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;20774:34;20804:3;20774:25;20787:11;;20774:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20830:38;20864:3;20830:29;20843:15;;20830:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;20704:180;;;;;;;;:::i;:::-;;;;;;;;20651:241::o;8660:250::-;8718:7;8747:1;8742;:6;8738:47;;8772:1;8765:8;;;;8738:47;8797:9;8813:1;8809;:5;;;;:::i;:::-;8797:17;;8842:1;8837;8833;:5;;;;:::i;:::-;:10;8825:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8901:1;8894:8;;;8660:250;;;;;:::o;8916:132::-;8974:7;9001:39;9005:1;9008;9001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8994:46;;8916:132;;;;:::o;8320:136::-;8378:7;8405:43;8409:1;8412;8405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;8398:50;;8320:136;;;;:::o;15976:330::-;16069:4;16106:53;16128:6;16106:53;;;;;;;;;;;;;;;;;:9;:17;16116:6;16106:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16086:9;:17;16096:6;16086:17;;;;;;;;;;;;;;;:73;;;;16193:32;16218:6;16193:9;:20;16203:9;16193:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16170:9;:20;16180:9;16170:20;;;;;;;;;;;;;;;:55;;;;16258:9;16241:35;;16250:6;16241:35;;;16269:6;16241:35;;;;;;:::i;:::-;;;;;;;;16294:4;16287:11;;15976:330;;;;;:::o;16314:168::-;16411:12;;16401:6;:22;;:51;;;;16427:17;:25;16445:6;16427:25;;;;;;;;;;;;;;;;;;;;;;;;;16401:51;16393:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16314:168;;:::o;17607:197::-;17656:4;17694;;;;;;;;;;;17680:18;;:10;:18;;;;:38;;;;;17712:6;;;;;;;;;;;17711:7;17680:38;:62;;;;;17731:11;;;;;;;;;;;17680:62;:116;;;;;17783:13;;17755:9;:24;17773:4;17755:24;;;;;;;;;;;;;;;;:41;;17680:116;17673:123;;17607:197;:::o;18781:1854::-;11686:4;11677:6;;:13;;;;;;;;;;;;;;;;;;18830:27:::1;18860:41;18871:8;;18881:19;;18860:10;:41::i;:::-;:60;;18908:12;;18860:60;;;18904:1;18860:60;18830:90;;18931:23;18957:59;19014:1;18957:52;19000:8;;18957:38;18975:19;18957:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18931:85;;19027:20;19050:34;19068:15;19050:13;;:17;;:34;;;;:::i;:::-;19027:57;;19097:21;19135:1;19121:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19097:40;;19166:4;19148;19153:1;19148:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19192:4;;;;;;;;;;;19182;19187:1;19182:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;19209:21;19233;19209:45;;19267:6;;;;;;;;;;;:57;;;19339:12;19366:1;19382:4;19409;19429:15;19267:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19468:17;19488:40;19514:13;19488:21;:25;;:40;;;;:::i;:::-;19468:60;;19541:19;19563:40;19576:26;19600:1;19576:19;:23;;:26;;;;:::i;:::-;19563:8;;:12;;:40;;;;:::i;:::-;19541:62;;19624:26;19653:58;19709:1;19653:51;19692:11;19653:34;19667:19;19653:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;19624:87;;19722:26;19751:44;19783:11;19751:27;19765:12;;19751:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;19722:73;;19806:24;19833:42;19863:11;19833:25;19847:10;;19833:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;19806:69;;19886:20;19909:38;19935:11;19909:21;19923:6;;19909:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;19886:61;;19961:15;19989:20;;;;;;;;;;;19981:34;;20023:18;19981:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19960:86;;;20081:14;;;;;;;;;;;20073:28;;20109:12;20073:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20057:69;;;;;20161:18;;;;;;;;;;;20153:32;;20193:16;20153:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20137:77;;;;;20248:5;20235:18;;20287:1;20269:15;:19;20266:362;;;20304:6;;;;;;;;;;;:22;;;20334:18;20380:4;20404:15;20438:1;20458::::0;20478:21:::1;;;;;;;;;;;20518:15;20304:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20568:48;20580:18;20600:15;20568:48;;;;;;;:::i;:::-;;;;;;;;20266:362;18819:1816;;;;;;;;;;;;11704:5:::0;11695:6;;:14;;;;;;;;;;;;;;;;;;18781:1854::o;16617:982::-;16703:7;16733:15;16751;;16733:33;;16793:4;;;;;;;;;;;16780:17;;:9;:17;;;16777:142;;16824:11;;16814:21;;16777:142;;;16866:4;;;;;;;;;;;16856:14;;:6;:14;;;16853:66;;16897:10;;16887:20;;16853:66;16777:142;16931:17;16951:59;17006:3;16989:14;;:20;;;;:::i;:::-;16951:33;16976:7;16951:20;16962:8;;16951:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:59;;;;:::i;:::-;16931:79;;17021:18;17042:36;17069:8;;17042:22;17056:7;;17042:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;17021:57;;17089:22;17114:25;17128:10;17114:9;:13;;:25;;;;:::i;:::-;17089:50;;17177:44;17206:14;17177:9;:24;17195:4;17177:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;17150:9;:24;17168:4;17150:24;;;;;;;;;;;;;;;:71;;;;17261:42;17292:10;17261:9;:26;17271:15;;;;;;;;;;;17261:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;17232:9;:26;17242:15;;;;;;;;;;;17232:26;;;;;;;;;;;;;;;:71;;;;17344:4;17319:47;;17328:6;17319:47;;;17351:14;17319:47;;;;;;:::i;:::-;;;;;;;;17413:1;17400:10;:14;17397:154;;;17445:28;17462:10;17445:12;;:16;;:28;;;;:::i;:::-;17430:12;:43;;;;9446:42;17493:34;;17502:6;17493:34;;;17516:10;17493:34;;;;;;:::i;:::-;;;;;;;;17397:154;17570:21;17581:9;17570:6;:10;;:21;;;;:::i;:::-;17563:28;;;;;;16617:982;;;;;:::o;9054:189::-;9140:7;9172:1;9168;:5;9175:12;9160:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9199:9;9215:1;9211;:5;;;;:::i;:::-;9199:17;;9234:1;9227:8;;;9054:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:1057::-;4527:6;4535;4543;4551;4559;4567;4616:3;4604:9;4595:7;4591:23;4587:33;4584:120;;;4623:79;;:::i;:::-;4584:120;4743:1;4768:53;4813:7;4804:6;4793:9;4789:22;4768:53;:::i;:::-;4758:63;;4714:117;4870:2;4896:53;4941:7;4932:6;4921:9;4917:22;4896:53;:::i;:::-;4886:63;;4841:118;4998:2;5024:53;5069:7;5060:6;5049:9;5045:22;5024:53;:::i;:::-;5014:63;;4969:118;5126:2;5152:53;5197:7;5188:6;5177:9;5173:22;5152:53;:::i;:::-;5142:63;;5097:118;5254:3;5281:53;5326:7;5317:6;5306:9;5302:22;5281:53;:::i;:::-;5271:63;;5225:119;5383:3;5410:53;5455:7;5446:6;5435:9;5431:22;5410:53;:::i;:::-;5400:63;;5354:119;4423:1057;;;;;;;;:::o;5486:329::-;5545:6;5594:2;5582:9;5573:7;5569:23;5565:32;5562:119;;;5600:79;;:::i;:::-;5562:119;5720:1;5745:53;5790:7;5781:6;5770:9;5766:22;5745:53;:::i;:::-;5735:63;;5691:117;5486:329;;;;:::o;5821:86::-;5856:7;5896:4;5889:5;5885:16;5874:27;;5821:86;;;:::o;5913:112::-;5996:22;6012:5;5996:22;:::i;:::-;5991:3;5984:35;5913:112;;:::o;6031:214::-;6120:4;6158:2;6147:9;6143:18;6135:26;;6171:67;6235:1;6224:9;6220:17;6211:6;6171:67;:::i;:::-;6031:214;;;;:::o;6251:329::-;6310:6;6359:2;6347:9;6338:7;6334:23;6330:32;6327:119;;;6365:79;;:::i;:::-;6327:119;6485:1;6510:53;6555:7;6546:6;6535:9;6531:22;6510:53;:::i;:::-;6500:63;;6456:117;6251:329;;;;:::o;6586:911::-;6681:6;6689;6697;6705;6713;6762:3;6750:9;6741:7;6737:23;6733:33;6730:120;;;6769:79;;:::i;:::-;6730:120;6889:1;6914:53;6959:7;6950:6;6939:9;6935:22;6914:53;:::i;:::-;6904:63;;6860:117;7016:2;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6987:118;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;7272:2;7298:53;7343:7;7334:6;7323:9;7319:22;7298:53;:::i;:::-;7288:63;;7243:118;7400:3;7427:53;7472:7;7463:6;7452:9;7448:22;7427:53;:::i;:::-;7417:63;;7371:119;6586:911;;;;;;;;:::o;7503:118::-;7590:24;7608:5;7590:24;:::i;:::-;7585:3;7578:37;7503:118;;:::o;7627:222::-;7720:4;7758:2;7747:9;7743:18;7735:26;;7771:71;7839:1;7828:9;7824:17;7815:6;7771:71;:::i;:::-;7627:222;;;;:::o;7855:619::-;7932:6;7940;7948;7997:2;7985:9;7976:7;7972:23;7968:32;7965:119;;;8003:79;;:::i;:::-;7965:119;8123:1;8148:53;8193:7;8184:6;8173:9;8169:22;8148:53;:::i;:::-;8138:63;;8094:117;8250:2;8276:53;8321:7;8312:6;8301:9;8297:22;8276:53;:::i;:::-;8266:63;;8221:118;8378:2;8404:53;8449:7;8440:6;8429:9;8425:22;8404:53;:::i;:::-;8394:63;;8349:118;7855:619;;;;;:::o;8480:474::-;8548:6;8556;8605:2;8593:9;8584:7;8580:23;8576:32;8573:119;;;8611:79;;:::i;:::-;8573:119;8731:1;8756:53;8801:7;8792:6;8781:9;8777:22;8756:53;:::i;:::-;8746:63;;8702:117;8858:2;8884:53;8929:7;8920:6;8909:9;8905:22;8884:53;:::i;:::-;8874:63;;8829:118;8480:474;;;;;:::o;8960:::-;9028:6;9036;9085:2;9073:9;9064:7;9060:23;9056:32;9053:119;;;9091:79;;:::i;:::-;9053:119;9211:1;9236:53;9281:7;9272:6;9261:9;9257:22;9236:53;:::i;:::-;9226:63;;9182:117;9338:2;9364:53;9409:7;9400:6;9389:9;9385:22;9364:53;:::i;:::-;9354:63;;9309:118;8960:474;;;;;:::o;9440:116::-;9510:21;9525:5;9510:21;:::i;:::-;9503:5;9500:32;9490:60;;9546:1;9543;9536:12;9490:60;9440:116;:::o;9562:133::-;9605:5;9643:6;9630:20;9621:29;;9659:30;9683:5;9659:30;:::i;:::-;9562:133;;;;:::o;9701:468::-;9766:6;9774;9823:2;9811:9;9802:7;9798:23;9794:32;9791:119;;;9829:79;;:::i;:::-;9791:119;9949:1;9974:50;10016:7;10007:6;9996:9;9992:22;9974:50;:::i;:::-;9964:60;;9920:114;10073:2;10099:53;10144:7;10135:6;10124:9;10120:22;10099:53;:::i;:::-;10089:63;;10044:118;9701:468;;;;;:::o;10175:60::-;10203:3;10224:5;10217:12;;10175:60;;;:::o;10241:142::-;10291:9;10324:53;10342:34;10351:24;10369:5;10351:24;:::i;:::-;10342:34;:::i;:::-;10324:53;:::i;:::-;10311:66;;10241:142;;;:::o;10389:126::-;10439:9;10472:37;10503:5;10472:37;:::i;:::-;10459:50;;10389:126;;;:::o;10521:144::-;10589:9;10622:37;10653:5;10622:37;:::i;:::-;10609:50;;10521:144;;;:::o;10671:167::-;10776:55;10825:5;10776:55;:::i;:::-;10771:3;10764:68;10671:167;;:::o;10844:258::-;10955:4;10993:2;10982:9;10978:18;10970:26;;11006:89;11092:1;11081:9;11077:17;11068:6;11006:89;:::i;:::-;10844:258;;;;:::o;11108:182::-;11248:34;11244:1;11236:6;11232:14;11225:58;11108:182;:::o;11296:366::-;11438:3;11459:67;11523:2;11518:3;11459:67;:::i;:::-;11452:74;;11535:93;11624:3;11535:93;:::i;:::-;11653:2;11648:3;11644:12;11637:19;;11296:366;;;:::o;11668:419::-;11834:4;11872:2;11861:9;11857:18;11849:26;;11921:9;11915:4;11911:20;11907:1;11896:9;11892:17;11885:47;11949:131;12075:4;11949:131;:::i;:::-;11941:139;;11668:419;;;:::o;12093:180::-;12141:77;12138:1;12131:88;12238:4;12235:1;12228:15;12262:4;12259:1;12252:15;12279:180;12327:77;12324:1;12317:88;12424:4;12421:1;12414:15;12448:4;12445:1;12438:15;12465:185;12505:1;12522:20;12540:1;12522:20;:::i;:::-;12517:25;;12556:20;12574:1;12556:20;:::i;:::-;12551:25;;12595:1;12585:35;;12600:18;;:::i;:::-;12585:35;12642:1;12639;12635:9;12630:14;;12465:185;;;;:::o;12656:179::-;12796:31;12792:1;12784:6;12780:14;12773:55;12656:179;:::o;12841:366::-;12983:3;13004:67;13068:2;13063:3;13004:67;:::i;:::-;12997:74;;13080:93;13169:3;13080:93;:::i;:::-;13198:2;13193:3;13189:12;13182:19;;12841:366;;;:::o;13213:419::-;13379:4;13417:2;13406:9;13402:18;13394:26;;13466:9;13460:4;13456:20;13452:1;13441:9;13437:17;13430:47;13494:131;13620:4;13494:131;:::i;:::-;13486:139;;13213:419;;;:::o;13638:410::-;13678:7;13701:20;13719:1;13701:20;:::i;:::-;13696:25;;13735:20;13753:1;13735:20;:::i;:::-;13730:25;;13790:1;13787;13783:9;13812:30;13830:11;13812:30;:::i;:::-;13801:41;;13991:1;13982:7;13978:15;13975:1;13972:22;13952:1;13945:9;13925:83;13902:139;;14021:18;;:::i;:::-;13902:139;13686:362;13638:410;;;;:::o;14054:143::-;14111:5;14142:6;14136:13;14127:22;;14158:33;14185:5;14158:33;:::i;:::-;14054:143;;;;:::o;14203:351::-;14273:6;14322:2;14310:9;14301:7;14297:23;14293:32;14290:119;;;14328:79;;:::i;:::-;14290:119;14448:1;14473:64;14529:7;14520:6;14509:9;14505:22;14473:64;:::i;:::-;14463:74;;14419:128;14203:351;;;;:::o;14560:332::-;14681:4;14719:2;14708:9;14704:18;14696:26;;14732:71;14800:1;14789:9;14785:17;14776:6;14732:71;:::i;:::-;14813:72;14881:2;14870:9;14866:18;14857:6;14813:72;:::i;:::-;14560:332;;;;;:::o;14898:137::-;14952:5;14983:6;14977:13;14968:22;;14999:30;15023:5;14999:30;:::i;:::-;14898:137;;;;:::o;15041:345::-;15108:6;15157:2;15145:9;15136:7;15132:23;15128:32;15125:119;;;15163:79;;:::i;:::-;15125:119;15283:1;15308:61;15361:7;15352:6;15341:9;15337:22;15308:61;:::i;:::-;15298:71;;15254:125;15041:345;;;;:::o;15392:553::-;15569:4;15607:3;15596:9;15592:19;15584:27;;15621:71;15689:1;15678:9;15674:17;15665:6;15621:71;:::i;:::-;15702:72;15770:2;15759:9;15755:18;15746:6;15702:72;:::i;:::-;15784;15852:2;15841:9;15837:18;15828:6;15784:72;:::i;:::-;15866;15934:2;15923:9;15919:18;15910:6;15866:72;:::i;:::-;15392:553;;;;;;;:::o;15951:320::-;16066:4;16104:2;16093:9;16089:18;16081:26;;16117:71;16185:1;16174:9;16170:17;16161:6;16117:71;:::i;:::-;16198:66;16260:2;16249:9;16245:18;16236:6;16198:66;:::i;:::-;15951:320;;;;;:::o;16277:225::-;16417:34;16413:1;16405:6;16401:14;16394:58;16486:8;16481:2;16473:6;16469:15;16462:33;16277:225;:::o;16508:366::-;16650:3;16671:67;16735:2;16730:3;16671:67;:::i;:::-;16664:74;;16747:93;16836:3;16747:93;:::i;:::-;16865:2;16860:3;16856:12;16849:19;;16508:366;;;:::o;16880:419::-;17046:4;17084:2;17073:9;17069:18;17061:26;;17133:9;17127:4;17123:20;17119:1;17108:9;17104:17;17097:47;17161:131;17287:4;17161:131;:::i;:::-;17153:139;;16880:419;;;:::o;17305:194::-;17345:4;17365:20;17383:1;17365:20;:::i;:::-;17360:25;;17399:20;17417:1;17399:20;:::i;:::-;17394:25;;17443:1;17440;17436:9;17428:17;;17467:1;17461:4;17458:11;17455:37;;;17472:18;;:::i;:::-;17455:37;17305:194;;;;:::o;17505:170::-;17645:22;17641:1;17633:6;17629:14;17622:46;17505:170;:::o;17681:366::-;17823:3;17844:67;17908:2;17903:3;17844:67;:::i;:::-;17837:74;;17920:93;18009:3;17920:93;:::i;:::-;18038:2;18033:3;18029:12;18022:19;;17681:366;;;:::o;18053:419::-;18219:4;18257:2;18246:9;18242:18;18234:26;;18306:9;18300:4;18296:20;18292:1;18281:9;18277:17;18270:47;18334:131;18460:4;18334:131;:::i;:::-;18326:139;;18053:419;;;:::o;18478:191::-;18518:3;18537:20;18555:1;18537:20;:::i;:::-;18532:25;;18571:20;18589:1;18571:20;:::i;:::-;18566:25;;18614:1;18611;18607:9;18600:16;;18635:3;18632:1;18629:10;18626:36;;;18642:18;;:::i;:::-;18626:36;18478:191;;;;:::o;18675:249::-;18815:34;18811:1;18803:6;18799:14;18792:58;18884:32;18879:2;18871:6;18867:15;18860:57;18675:249;:::o;18930:366::-;19072:3;19093:67;19157:2;19152:3;19093:67;:::i;:::-;19086:74;;19169:93;19258:3;19169:93;:::i;:::-;19287:2;19282:3;19278:12;19271:19;;18930:366;;;:::o;19302:419::-;19468:4;19506:2;19495:9;19491:18;19483:26;;19555:9;19549:4;19545:20;19541:1;19530:9;19526:17;19519:47;19583:131;19709:4;19583:131;:::i;:::-;19575:139;;19302:419;;;:::o;19727:177::-;19867:29;19863:1;19855:6;19851:14;19844:53;19727:177;:::o;19910:366::-;20052:3;20073:67;20137:2;20132:3;20073:67;:::i;:::-;20066:74;;20149:93;20238:3;20149:93;:::i;:::-;20267:2;20262:3;20258:12;20251:19;;19910:366;;;:::o;20282:419::-;20448:4;20486:2;20475:9;20471:18;20463:26;;20535:9;20529:4;20525:20;20521:1;20510:9;20506:17;20499:47;20563:131;20689:4;20563:131;:::i;:::-;20555:139;;20282:419;;;:::o;20707:418::-;20844:4;20882:2;20871:9;20867:18;20859:26;;20895:67;20959:1;20948:9;20944:17;20935:6;20895:67;:::i;:::-;20972:68;21036:2;21025:9;21021:18;21012:6;20972:68;:::i;:::-;21050;21114:2;21103:9;21099:18;21090:6;21050:68;:::i;:::-;20707:418;;;;;;:::o;21131:220::-;21271:34;21267:1;21259:6;21255:14;21248:58;21340:3;21335:2;21327:6;21323:15;21316:28;21131:220;:::o;21357:366::-;21499:3;21520:67;21584:2;21579:3;21520:67;:::i;:::-;21513:74;;21596:93;21685:3;21596:93;:::i;:::-;21714:2;21709:3;21705:12;21698:19;;21357:366;;;:::o;21729:419::-;21895:4;21933:2;21922:9;21918:18;21910:26;;21982:9;21976:4;21972:20;21968:1;21957:9;21953:17;21946:47;22010:131;22136:4;22010:131;:::i;:::-;22002:139;;21729:419;;;:::o;22154:167::-;22294:19;22290:1;22282:6;22278:14;22271:43;22154:167;:::o;22327:366::-;22469:3;22490:67;22554:2;22549:3;22490:67;:::i;:::-;22483:74;;22566:93;22655:3;22566:93;:::i;:::-;22684:2;22679:3;22675:12;22668:19;;22327:366;;;:::o;22699:419::-;22865:4;22903:2;22892:9;22888:18;22880:26;;22952:9;22946:4;22942:20;22938:1;22927:9;22923:17;22916:47;22980:131;23106:4;22980:131;:::i;:::-;22972:139;;22699:419;;;:::o;23124:180::-;23172:77;23169:1;23162:88;23269:4;23266:1;23259:15;23293:4;23290:1;23283:15;23310:180;23358:77;23355:1;23348:88;23455:4;23452:1;23445:15;23479:4;23476:1;23469:15;23496:85;23541:7;23570:5;23559:16;;23496:85;;;:::o;23587:158::-;23645:9;23678:61;23696:42;23705:32;23731:5;23705:32;:::i;:::-;23696:42;:::i;:::-;23678:61;:::i;:::-;23665:74;;23587:158;;;:::o;23751:147::-;23846:45;23885:5;23846:45;:::i;:::-;23841:3;23834:58;23751:147;;:::o;23904:114::-;23971:6;24005:5;23999:12;23989:22;;23904:114;;;:::o;24024:184::-;24123:11;24157:6;24152:3;24145:19;24197:4;24192:3;24188:14;24173:29;;24024:184;;;;:::o;24214:132::-;24281:4;24304:3;24296:11;;24334:4;24329:3;24325:14;24317:22;;24214:132;;;:::o;24352:108::-;24429:24;24447:5;24429:24;:::i;:::-;24424:3;24417:37;24352:108;;:::o;24466:179::-;24535:10;24556:46;24598:3;24590:6;24556:46;:::i;:::-;24634:4;24629:3;24625:14;24611:28;;24466:179;;;;:::o;24651:113::-;24721:4;24753;24748:3;24744:14;24736:22;;24651:113;;;:::o;24800:732::-;24919:3;24948:54;24996:5;24948:54;:::i;:::-;25018:86;25097:6;25092:3;25018:86;:::i;:::-;25011:93;;25128:56;25178:5;25128:56;:::i;:::-;25207:7;25238:1;25223:284;25248:6;25245:1;25242:13;25223:284;;;25324:6;25318:13;25351:63;25410:3;25395:13;25351:63;:::i;:::-;25344:70;;25437:60;25490:6;25437:60;:::i;:::-;25427:70;;25283:224;25270:1;25267;25263:9;25258:14;;25223:284;;;25227:14;25523:3;25516:10;;24924:608;;;24800:732;;;;:::o;25538:831::-;25801:4;25839:3;25828:9;25824:19;25816:27;;25853:71;25921:1;25910:9;25906:17;25897:6;25853:71;:::i;:::-;25934:80;26010:2;25999:9;25995:18;25986:6;25934:80;:::i;:::-;26061:9;26055:4;26051:20;26046:2;26035:9;26031:18;26024:48;26089:108;26192:4;26183:6;26089:108;:::i;:::-;26081:116;;26207:72;26275:2;26264:9;26260:18;26251:6;26207:72;:::i;:::-;26289:73;26357:3;26346:9;26342:19;26333:6;26289:73;:::i;:::-;25538:831;;;;;;;;:::o;26375:147::-;26476:11;26513:3;26498:18;;26375:147;;;;:::o;26528:114::-;;:::o;26648:398::-;26807:3;26828:83;26909:1;26904:3;26828:83;:::i;:::-;26821:90;;26920:93;27009:3;26920:93;:::i;:::-;27038:1;27033:3;27029:11;27022:18;;26648:398;;;:::o;27052:379::-;27236:3;27258:147;27401:3;27258:147;:::i;:::-;27251:154;;27422:3;27415:10;;27052:379;;;:::o;27437:807::-;27686:4;27724:3;27713:9;27709:19;27701:27;;27738:71;27806:1;27795:9;27791:17;27782:6;27738:71;:::i;:::-;27819:72;27887:2;27876:9;27872:18;27863:6;27819:72;:::i;:::-;27901:80;27977:2;27966:9;27962:18;27953:6;27901:80;:::i;:::-;27991;28067:2;28056:9;28052:18;28043:6;27991:80;:::i;:::-;28081:73;28149:3;28138:9;28134:19;28125:6;28081:73;:::i;:::-;28164;28232:3;28221:9;28217:19;28208:6;28164:73;:::i;:::-;27437:807;;;;;;;;;:::o;28250:663::-;28338:6;28346;28354;28403:2;28391:9;28382:7;28378:23;28374:32;28371:119;;;28409:79;;:::i;:::-;28371:119;28529:1;28554:64;28610:7;28601:6;28590:9;28586:22;28554:64;:::i;:::-;28544:74;;28500:128;28667:2;28693:64;28749:7;28740:6;28729:9;28725:22;28693:64;:::i;:::-;28683:74;;28638:129;28806:2;28832:64;28888:7;28879:6;28868:9;28864:22;28832:64;:::i;:::-;28822:74;;28777:129;28250:663;;;;;:::o;28919:332::-;29040:4;29078:2;29067:9;29063:18;29055:26;;29091:71;29159:1;29148:9;29144:17;29135:6;29091:71;:::i;:::-;29172:72;29240:2;29229:9;29225:18;29216:6;29172:72;:::i;:::-;28919:332;;;;;:::o
Swarm Source
ipfs://e108c3c1e57212a5230e774569f87de76d2223e2d86017be7d716b8f977f64be
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.