ERC-20
Overview
Max Total Supply
500,000,000,000 STORM
Holders
44
Total Transfers
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Stormheim
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-25 */ /* | | _) __| __| _ \ __| __ `__ \ __ \ _ \ | __ `__ \ \__ \ | ( | | | | | | | | __/ | | | | ____/ \__| \___/ _| _| _| _| _| |_| \___| _| _| _| _| Dev Announcements - https://t.me/StormHeimInfo TG Community - https://t.me/StormHeimChat */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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 Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() public virtual onlyOwner() { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } abstract contract IERC20Extented is IERC20 { function decimals() external view virtual returns (uint8); function name() external view virtual returns (string memory); function symbol() external view virtual returns (string memory); } contract Stormheim is Context, IERC20, IERC20Extented, Ownable { using SafeMath for uint256; string private constant _name = "Stormheim"; string private constant _symbol = "STORM"; uint8 private constant _decimals = 18; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant _tTotal = 500000000000 * 10**18; // 500 Billion uint256 private _firstBlock; uint256 private _botBlocks; uint256 public _maxWalletAmount; uint256 private _maxSell; uint256 private _maxBuy; uint256 public numTokensToSwap = 1000000000 * 10**18; // 0.2% // buy fees uint256 public _buyLiquidityFee = 0; // divided by 1000 uint256 private _previousBuyLiquidityFee = _buyLiquidityFee; uint256 public _buyEcosystemFee = 0; // divided by 1000 uint256 private _previousBuyEcosystemFee = _buyEcosystemFee; uint256 public _buyMarketingFee = 0; // divided by 1000 uint256 private _previousBuyMarketingFee = _buyMarketingFee; uint256 public _buyTeamFee = 0; // divided by 1000 uint256 private _previousBuyTeamFee = _buyTeamFee; // sell fees uint256 public _sellLiquidityFee = 0; // divided by 1000 uint256 private _previousSellLiquidityFee = _sellLiquidityFee; uint256 public _sellEcosystemFee = 0; // divided by 1000 uint256 private _previousSellEcosystemFee = _sellEcosystemFee; uint256 public _sellMarketingFee = 0; // divided by 1000 uint256 private _previousSellMarketingFee = _sellMarketingFee; uint256 public _sellTeamFee = 0; // divided by 1000 uint256 private _previousSellTeamFee = _sellTeamFee; uint256 public transferFeeIncreaseFactor = 100; // divided by 100 struct FeeBreakdown { uint256 tLiquidity; uint256 tMarketing; uint256 tTeam; uint256 tEcosystem; uint256 tAmount; } mapping(address => bool) private bots; address payable private _marketingAddress = payable(0x000000000000000000000000000000000000dEaD); address payable private _teamAddress = payable(0x000000000000000000000000000000000000dEaD); address payable private _ecosystemAddress = payable(0x000000000000000000000000000000000000dEaD); address payable private _lpRecipient = payable(0x000000000000000000000000000000000000dEaD); IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; uint256 private _maxTxAmount; bool public tradingOpen = false; bool private inSwap = false; bool public canPause = true; event MaxTxAmountUpdated(uint256 _maxTxAmount); event BuyFeesUpdated(uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _buyTeamFee, uint256 _buyEcosystemFee); event SellFeesUpdated(uint256 _sellMarketingFee, uint256 _sellLiquidityFee, uint256 _sellTeamFee, uint256 _sellEcosystemFee); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max); _maxTxAmount = _tTotal; // start off transaction limit at 100% of total supply _maxWalletAmount = _tTotal; // 100% _maxBuy = _tTotal; // 100% _maxSell = _tTotal; // 100% _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[_teamAddress] = true; _isExcludedFromFee[_ecosystemAddress] = true; _isExcludedFromFee[_lpRecipient] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() override external pure returns (string memory) { return _name; } function symbol() override external pure returns (string memory) { return _symbol; } function decimals() override external pure returns (uint8) { return _decimals; } function totalSupply() external pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function isBot(address account) public view returns (bool) { return bots[account]; } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { _transfer(sender, recipient, amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance")); return true; } function removeAllFee() private { _previousBuyMarketingFee = _buyMarketingFee; _previousBuyLiquidityFee = _buyLiquidityFee; _previousBuyTeamFee = _buyTeamFee; _previousBuyEcosystemFee = _buyEcosystemFee; _buyMarketingFee = 0; _buyLiquidityFee = 0; _buyTeamFee = 0; _buyEcosystemFee = 0; _previousSellMarketingFee = _sellMarketingFee; _previousSellLiquidityFee = _sellLiquidityFee; _previousSellTeamFee = _sellTeamFee; _previousSellEcosystemFee = _sellEcosystemFee; _sellMarketingFee = 0; _sellLiquidityFee = 0; _sellTeamFee = 0; _sellEcosystemFee = 0; } function restoreAllFee() private { _buyMarketingFee = _previousBuyMarketingFee; _buyLiquidityFee = _previousBuyLiquidityFee; _buyTeamFee = _previousBuyTeamFee; _buyEcosystemFee = _previousBuyEcosystemFee; _sellMarketingFee = _previousSellMarketingFee; _sellLiquidityFee = _previousSellLiquidityFee; _sellTeamFee = _previousSellTeamFee; _sellEcosystemFee = _previousSellEcosystemFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool takeFee = true; if (from != owner() && to != owner() && from != address(this) && to != address(this)) { require(tradingOpen, "Trading is not active"); if (from == uniswapV2Pair && to != address(uniswapV2Router)) {//buys if (block.timestamp <= _firstBlock.add(_botBlocks)) { bots[to] = true; } require(balanceOf(to).add(amount) <= _maxWalletAmount, "wallet balance after transfer must be less than max wallet amount"); require(amount <= _maxBuy, "Amount exceeds maximum buy limit"); } if (!inSwap && from != uniswapV2Pair && to == uniswapV2Pair) { //sells require(!bots[from] && !bots[to]); require(amount <= _maxSell, "Amount exceeds maximum sell limit"); uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= numTokensToSwap) { if (contractTokenBalance > 0) { if (_sellMarketingFee.add(_sellTeamFee).add(_sellEcosystemFee).add(_sellLiquidityFee) > 0) { uint256 autoLPamount = _sellLiquidityFee.mul(contractTokenBalance).div(_sellMarketingFee.add(_sellTeamFee).add(_sellEcosystemFee).add(_sellLiquidityFee)); uint256 minusLP = 0; if (contractTokenBalance >= autoLPamount) { minusLP = contractTokenBalance.sub(autoLPamount); } swapAndLiquify(autoLPamount, minusLP); } } uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(from != uniswapV2Pair && to != uniswapV2Pair) { //transfers require(balanceOf(to).add(amount) <= _maxWalletAmount, "wallet balance after transfer must be less than max wallet amount"); } } if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable _lpRecipient, block.timestamp ); } function swapAndLiquify(uint256 lpAmount, uint256 contractTokenBalance) private lockTheSwap { // split the contract balance into halves uint256 half = lpAmount.div(2); uint256 otherHalf = lpAmount.sub(half); // capture the contract's current ETH balance. // this is so that we can capture exactly the amount of ETH that the // swap creates, and not make the liquidity event include any ETH that // has been manually sent to the contract uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(contractTokenBalance.add(half)); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); // add liquidity to pancakeswap if (otherHalf > 0) { addLiquidity(otherHalf, newBalance.mul(half).div(contractTokenBalance.add(half))); } } function sendETHToFee(uint256 amount) private { uint256 totalFees = _sellMarketingFee.add(_sellEcosystemFee).add(_sellTeamFee); if (totalFees != 0) { uint256 marketingPortion = amount.mul(_sellMarketingFee).div(totalFees); uint256 teamPortion = amount.mul(_sellTeamFee).div(totalFees); uint256 ecoPortion = amount.sub(marketingPortion).sub(teamPortion); if (marketingPortion > 0) { _marketingAddress.transfer(marketingPortion); } if (teamPortion > 0) { _teamAddress.transfer(teamPortion); } if (ecoPortion > 0) { _ecosystemAddress.transfer(ecoPortion); } } } function openTrading(uint256 botBlocks) external onlyOwner() { _firstBlock = block.timestamp; _botBlocks = botBlocks; tradingOpen = true; } function enableToken() external onlyOwner() { tradingOpen = true; } function disableToken() external onlyOwner() { require(canPause, "this contract cannot be paused"); tradingOpen = false; } function disablePauseAbility() onlyOwner() external { canPause = false; } function manualswap() external onlyOwner() { uint256 contractBalance = balanceOf(address(this)); if (contractBalance > 0) { swapTokensForEth(contractBalance); } } function manualsend() external onlyOwner() { uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { payable(address(owner())).transfer(contractETHBalance); } } function manualSendToken(address token) external onlyOwner() { uint256 amount = IERC20(token).balanceOf(address(this)); IERC20(token).transfer(owner(), amount); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee) { removeAllFee(); } _transferStandard(sender, recipient, amount); restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 amount) private { FeeBreakdown memory fees; if (sender == uniswapV2Pair && recipient != address(uniswapV2Router)) {//buys fees.tMarketing = amount.mul(_buyMarketingFee).div(1000); fees.tLiquidity = amount.mul(_buyLiquidityFee).div(1000); fees.tTeam = amount.mul(_buyTeamFee).div(1000); fees.tEcosystem = amount.mul(_buyEcosystemFee).div(1000); } if (sender != uniswapV2Pair && recipient == uniswapV2Pair) {//sells fees.tMarketing = amount.mul(_sellMarketingFee).div(1000); fees.tLiquidity = amount.mul(_sellLiquidityFee).div(1000); fees.tTeam = amount.mul(_sellTeamFee).div(1000); fees.tEcosystem = amount.mul(_sellEcosystemFee).div(1000); } if (sender != uniswapV2Pair && recipient != uniswapV2Pair) {//transfer fees.tMarketing = (amount.mul(_sellMarketingFee).div(1000)).mul(transferFeeIncreaseFactor).div(100); fees.tLiquidity = (amount.mul(_sellLiquidityFee).div(1000)).mul(transferFeeIncreaseFactor).div(100); fees.tTeam = (amount.mul(_sellTeamFee).div(1000)).mul(transferFeeIncreaseFactor).div(100); fees.tEcosystem = (amount.mul(_sellEcosystemFee).div(1000)).mul(transferFeeIncreaseFactor).div(100); } fees.tAmount = amount.sub(fees.tMarketing).sub(fees.tLiquidity).sub(fees.tTeam).sub(fees.tEcosystem); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(fees.tAmount); _balances[address(this)] = _balances[address(this)].add(fees.tMarketing.add(fees.tLiquidity).add(fees.tTeam).add(fees.tEcosystem)); emit Transfer(sender, recipient, fees.tAmount); } receive() external payable {} function excludeFromFee(address account) public onlyOwner() { _isExcludedFromFee[account] = true; } function includeInFee(address account) external onlyOwner() { _isExcludedFromFee[account] = false; } function removeBot(address account) external onlyOwner() { bots[account] = false; } function addBot(address account) external onlyOwner() { bots[account] = true; } function setTransferTransactionMultiplier(uint256 _multiplier) external onlyOwner() { transferFeeIncreaseFactor = _multiplier; } function setMaxWalletAmount(uint256 maxWalletAmount) external onlyOwner() { require(maxWalletAmount >= _tTotal.div(1000), "Amount must be greater than 0.1% of supply"); require(maxWalletAmount <= _tTotal, "Amount must be less than or equal to totalSupply"); _maxWalletAmount = maxWalletAmount; } function setBuyTaxes(uint256 marketingFee, uint256 liquidityFee, uint256 teamFee, uint256 ecosystemFee) external onlyOwner() { uint256 totalFee = marketingFee.add(liquidityFee).add(teamFee).add(ecosystemFee); require(totalFee <= 200, "Sum of buy fees must be less than or equal to 20%"); _buyMarketingFee = marketingFee; _buyLiquidityFee = liquidityFee; _buyTeamFee = teamFee; _buyEcosystemFee = ecosystemFee; _previousBuyMarketingFee = _buyMarketingFee; _previousBuyLiquidityFee = _buyLiquidityFee; _previousBuyTeamFee = _buyTeamFee; _previousBuyEcosystemFee = _buyEcosystemFee; emit BuyFeesUpdated(marketingFee, liquidityFee, teamFee, ecosystemFee); } function setSellTaxes(uint256 marketingFee, uint256 liquidityFee, uint256 teamFee, uint256 ecosystemFee) external onlyOwner() { uint256 totalFee = marketingFee.add(liquidityFee).add(teamFee).add(ecosystemFee); require(totalFee <= 250, "Sum of buy fees must be less than or equal to 25%"); _sellMarketingFee = marketingFee; _sellLiquidityFee = liquidityFee; _sellTeamFee = teamFee; _sellEcosystemFee = ecosystemFee; _previousSellMarketingFee = _sellMarketingFee; _previousSellLiquidityFee = _sellLiquidityFee; _previousSellTeamFee = _sellTeamFee; _previousSellEcosystemFee = _sellEcosystemFee; emit SellFeesUpdated(marketingFee, liquidityFee, teamFee, ecosystemFee); } function updateMaxSell(uint256 maxSell) external onlyOwner() { require(maxSell >= _tTotal.div(1000) , "cant make the limit lower than 0.1% of the supply"); _maxSell = maxSell; } function updateMaxBuy(uint256 maxBuy) external onlyOwner() { require(maxBuy >= _tTotal.div(1000) , "cant make the limit lower than 0.1% of the supply"); _maxBuy = maxBuy; } function updateEcosystemAddress(address payable ecosystemAddress) external onlyOwner() { _ecosystemAddress = ecosystemAddress; } function updateMarketingAddress(address payable marketingAddress) external onlyOwner() { _marketingAddress = marketingAddress; } function updateTeamAddress(address payable teamAddress) external onlyOwner() { _teamAddress = teamAddress; } function updateLpRecipient(address payable lpRecipient) external onlyOwner() { _lpRecipient = lpRecipient; } function updateNumTokensToSwap(uint256 numTokens) external onlyOwner() { numTokensToSwap = numTokens; } }
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":"_buyMarketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_buyTeamFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_buyEcosystemFee","type":"uint256"}],"name":"BuyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":false,"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sellTeamFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sellEcosystemFee","type":"uint256"}],"name":"SellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyEcosystemFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellEcosystemFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canPause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablePauseAbility","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"manualSendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"botBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"teamFee","type":"uint256"},{"internalType":"uint256","name":"ecosystemFee","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"teamFee","type":"uint256"},{"internalType":"uint256","name":"ecosystemFee","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"setTransferTransactionMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferFeeIncreaseFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"ecosystemAddress","type":"address"}],"name":"updateEcosystemAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"lpRecipient","type":"address"}],"name":"updateLpRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingAddress","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"updateMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numTokens","type":"uint256"}],"name":"updateNumTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"teamAddress","type":"address"}],"name":"updateTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526b033b2e3c9fd0803ce8000000600a556000600b819055600c819055600d819055600e819055600f8190556010819055601181905560128190556013819055601481905560158190556016819055601781905560188190556019819055601a556064601b55601d80546001600160a01b031990811661dead908117909255601e8054821683179055601f80548216831790556020805490911690911790556024805462ffffff191662010000179055348015620000c057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200014530826c064f964e68233a76f5200000006200044e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017f57600080fd5b505afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba91906200057a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020357600080fd5b505afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e91906200057a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028757600080fd5b505af11580156200029c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c291906200057a565b602280546001600160a01b0319166001600160a01b0392831690811790915560215460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b390604401602060405180830381600087803b1580156200032557600080fd5b505af11580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003609190620005aa565b506c064f964e68233a76f520000000602381905560078190556009819055600881905533600081815260026020908152604080832085905582546001600160a01b03908116845260048352818420805460ff1990811660019081179092553086528386208054821683179055601d54831686528386208054821683179055601e54831686528386208054821683179055601f5483168652838620805482168317905584549092168552828520805490921617905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005cc565b6001600160a01b038316620004b65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004ad565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000602082840312156200058c578081fd5b81516001600160a01b0381168114620005a3578182fd5b9392505050565b600060208284031215620005bc578081fd5b81518015158114620005a3578182fd5b6129e180620005dc6000396000f3fe6080604052600436106102b25760003560e01c806372b2aecc11610175578063cab03471116100dc578063e315a6da11610095578063f2fde38b1161006f578063f2fde38b14610863578063f480fec214610883578063ffb54a99146108a3578063ffecf516146108bd57600080fd5b8063e315a6da14610803578063e4bf1bed14610823578063ea2f0b371461084357600080fd5b8063cab0347114610731578063cdb3858f14610747578063d163364914610767578063db0045ec14610787578063dc44b6a0146107a7578063dd62ed3e146107bd57600080fd5b8063a850673d1161012e578063a850673d1461069a578063a9059cbb146106ba578063c3c8cd80146106da578063c469b6dd146106ef578063c5d2418914610705578063c86079521461071b57600080fd5b806372b2aecc146105ed57806388790a68146106035780638da5cb5b146106195780638e360253146106375780639164f9db1461064c57806395d89b411461066c57600080fd5b8063323be1c5116102195780635fecd926116101d25780635fecd926146105425780636aabff3f146105625780636c0a24eb146105775780636fc3eaec1461058d57806370a08231146105a2578063715018a6146105d857600080fd5b8063323be1c51461045c5780633bbac5791461047c5780633e0f966d146104b5578063437823ec146104ca57806349bd5a5e146104ea578063588813041461052257600080fd5b806323b872dd1161026b57806323b872dd146103b4578063248dd232146103d457806327a14fc2146103ea5780632843631d1461040a5780632940939514610420578063313ce5671461044057600080fd5b806301a6c43b146102be57806306fdde03146102e7578063095ea7b31461032257806314eb76ac1461035257806318160ddd146103745780632369bf831461039457600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d4600a5481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5060408051808201909152600981526853746f726d6865696d60b81b60208201525b6040516102de919061273a565b34801561032e57600080fd5b5061034261033d366004612661565b6108dd565b60405190151581526020016102de565b34801561035e57600080fd5b5061037261036d3660046125b1565b6108f4565b005b34801561038057600080fd5b506c064f964e68233a76f5200000006102d4565b3480156103a057600080fd5b506103726103af3660046125b1565b610949565b3480156103c057600080fd5b506103426103cf366004612621565b610995565b3480156103e057600080fd5b506102d460155481565b3480156103f657600080fd5b506103726104053660046126ac565b6109fe565b34801561041657600080fd5b506102d4600d5481565b34801561042c57600080fd5b5061037261043b3660046125b1565b610b1e565b34801561044c57600080fd5b50604051601281526020016102de565b34801561046857600080fd5b506024546103429062010000900460ff1681565b34801561048857600080fd5b506103426104973660046125b1565b6001600160a01b03166000908152601c602052604090205460ff1690565b3480156104c157600080fd5b50610372610c6a565b3480156104d657600080fd5b506103726104e53660046125b1565b610cf8565b3480156104f657600080fd5b5060225461050a906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561052e57600080fd5b5061037261053d3660046126ac565b610d46565b34801561054e57600080fd5b5061037261055d3660046125b1565b610dad565b34801561056e57600080fd5b50610372610df8565b34801561058357600080fd5b506102d460075481565b34801561059957600080fd5b50610372610e30565b3480156105ae57600080fd5b506102d46105bd3660046125b1565b6001600160a01b031660009081526002602052604090205490565b3480156105e457600080fd5b50610372610e9f565b3480156105f957600080fd5b506102d4601b5481565b34801561060f57600080fd5b506102d460135481565b34801561062557600080fd5b506000546001600160a01b031661050a565b34801561064357600080fd5b50610372610f13565b34801561065857600080fd5b506103726106673660046126ac565b610f4c565b34801561067857600080fd5b5060408051808201909152600581526453544f524d60d81b6020820152610315565b3480156106a657600080fd5b506103726106b53660046126ac565b610fb3565b3480156106c657600080fd5b506103426106d5366004612661565b610fe2565b3480156106e657600080fd5b50610372610fef565b3480156106fb57600080fd5b506102d460115481565b34801561071157600080fd5b506102d4600f5481565b34801561072757600080fd5b506102d460175481565b34801561073d57600080fd5b506102d460195481565b34801561075357600080fd5b506103726107623660046125b1565b611038565b34801561077357600080fd5b506103726107823660046126ac565b611084565b34801561079357600080fd5b506103726107a23660046125b1565b6110c4565b3480156107b357600080fd5b506102d4600b5481565b3480156107c957600080fd5b506102d46107d83660046125e9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561080f57600080fd5b5061037261081e3660046126ac565b611110565b34801561082f57600080fd5b5061037261083e366004612709565b61113f565b34801561084f57600080fd5b5061037261085e3660046125b1565b611266565b34801561086f57600080fd5b5061037261087e3660046125b1565b6112b1565b34801561088f57600080fd5b5061037261089e366004612709565b611349565b3480156108af57600080fd5b506024546103429060ff1681565b3480156108c957600080fd5b506103726108d83660046125b1565b61145f565b60006108ea3384846114ad565b5060015b92915050565b6000546001600160a01b031633146109275760405162461bcd60e51b815260040161091e906127f4565b60405180910390fd5b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109735760405162461bcd60e51b815260040161091e906127f4565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006109a28484846115d1565b6109f484336109ef85604051806060016040528060288152602001612984602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611b2c565b6114ad565b5060019392505050565b6000546001600160a01b03163314610a285760405162461bcd60e51b815260040161091e906127f4565b610a416c064f964e68233a76f5200000006103e8611b66565b811015610aa35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3125604482015269206f6620737570706c7960b01b606482015260840161091e565b6c064f964e68233a76f520000000811115610b195760405162461bcd60e51b815260206004820152603060248201527f416d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526f6c20746f20746f74616c537570706c7960801b606482015260840161091e565b600755565b6000546001600160a01b03163314610b485760405162461bcd60e51b815260040161091e906127f4565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610b8a57600080fd5b505afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc291906126c4565b9050816001600160a01b031663a9059cbb610be56000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c65919061268c565b505050565b6000546001600160a01b03163314610c945760405162461bcd60e51b815260040161091e906127f4565b60245462010000900460ff16610cec5760405162461bcd60e51b815260206004820152601e60248201527f7468697320636f6e74726163742063616e6e6f74206265207061757365640000604482015260640161091e565b6024805460ff19169055565b6000546001600160a01b03163314610d225760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610d705760405162461bcd60e51b815260040161091e906127f4565b610d896c064f964e68233a76f5200000006103e8611b66565b811015610da85760405162461bcd60e51b815260040161091e90612829565b600955565b6000546001600160a01b03163314610dd75760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152601c60205260409020805460ff19169055565b6000546001600160a01b03163314610e225760405162461bcd60e51b815260040161091e906127f4565b6024805462ff000019169055565b6000546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161091e906127f4565b478015610e9c57600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610e9a573d6000803e3d6000fd5b505b50565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161091e906127f4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f3d5760405162461bcd60e51b815260040161091e906127f4565b6024805460ff19166001179055565b6000546001600160a01b03163314610f765760405162461bcd60e51b815260040161091e906127f4565b610f8f6c064f964e68233a76f5200000006103e8611b66565b811015610fae5760405162461bcd60e51b815260040161091e90612829565b600855565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b815260040161091e906127f4565b601b55565b60006108ea3384846115d1565b6000546001600160a01b031633146110195760405162461bcd60e51b815260040161091e906127f4565b306000908152600260205260409020548015610e9c57610e9c81611baf565b6000546001600160a01b031633146110625760405162461bcd60e51b815260040161091e906127f4565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110ae5760405162461bcd60e51b815260040161091e906127f4565b426005556006556024805460ff19166001179055565b6000546001600160a01b031633146110ee5760405162461bcd60e51b815260040161091e906127f4565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461113a5760405162461bcd60e51b815260040161091e906127f4565b600a55565b6000546001600160a01b031633146111695760405162461bcd60e51b815260040161091e906127f4565b60006111818261117b85818989611d4e565b90611d4e565b905060c88111156111ee5760405162461bcd60e51b815260206004820152603160248201527f53756d206f66206275792066656573206d757374206265206c657373207468616044820152706e206f7220657175616c20746f2032302560781b606482015260840161091e565b600f859055600b8490556011839055600d8290556010859055600c8490556012839055600e8290556040805186815260208101869052908101849052606081018390527f892b2caa2d791bf7b8d9a49c4db7a4513ff1ae2e0e068ed217f9d5ab4c1a28f0906080015b60405180910390a15050505050565b6000546001600160a01b031633146112905760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146112db5760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b0381166113405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091e565b610e9c81611dad565b6000546001600160a01b031633146113735760405162461bcd60e51b815260040161091e906127f4565b60006113858261117b85818989611d4e565b905060fa8111156113f25760405162461bcd60e51b815260206004820152603160248201527f53756d206f66206275792066656573206d757374206265206c657373207468616044820152706e206f7220657175616c20746f2032352560781b606482015260840161091e565b601785905560138490556019839055601582905560188590556014849055601a83905560168290556040805186815260208101869052908101849052606081018390527f439932620c72dddea29980c098bca1a482729646d1216b226d723c6d278a30d190608001611257565b6000546001600160a01b031633146114895760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152601c60205260409020805460ff19166001179055565b6001600160a01b03831661150f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091e565b6001600160a01b0382166115705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091e565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091e565b6001600160a01b0382166116975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091e565b600081116116f95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161091e565b600161170d6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561173c57506000546001600160a01b03848116911614155b801561175157506001600160a01b0384163014155b801561176657506001600160a01b0383163014155b15611ad25760245460ff166117b55760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b604482015260640161091e565b6022546001600160a01b0385811691161480156117e057506021546001600160a01b03848116911614155b156118b4576006546005546117f491611d4e565b421161181e576001600160a01b0383166000908152601c60205260409020805460ff191660011790555b6007546118448361117b866001600160a01b031660009081526002602052604090205490565b11156118625760405162461bcd60e51b815260040161091e9061278d565b6009548211156118b45760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d6178696d756d20627579206c696d6974604482015260640161091e565b602454610100900460ff161580156118da57506022546001600160a01b03858116911614155b80156118f357506022546001600160a01b038481169116145b15611a5d576001600160a01b0384166000908152601c602052604090205460ff1615801561193a57506001600160a01b0383166000908152601c602052604090205460ff16155b61194357600080fd5b60085482111561199f5760405162461bcd60e51b815260206004820152602160248201527f416d6f756e742065786365656473206d6178696d756d2073656c6c206c696d696044820152601d60fa1b606482015260840161091e565b30600090815260026020526040902054600a548110611a5b578015611a495760006119e360135461117b60155461117b601954601754611d4e90919063ffffffff16565b1115611a49576000611a24611a1160135461117b60155461117b601954601754611d4e90919063ffffffff16565b601354611a1e9085611dfd565b90611b66565b90506000818310611a3c57611a398383611e7c565b90505b611a468282611ebe565b50505b478015611a5957611a5947611f31565b505b505b6022546001600160a01b03858116911614801590611a8957506022546001600160a01b03848116911614155b15611ad257600754611ab48361117b866001600160a01b031660009081526002602052604090205490565b1115611ad25760405162461bcd60e51b815260040161091e9061278d565b6001600160a01b03841660009081526004602052604090205460ff1680611b1157506001600160a01b03831660009081526004602052604090205460ff165b15611b1a575060005b611b2684848484612077565b50505050565b60008184841115611b505760405162461bcd60e51b815260040161091e919061273a565b506000611b5d8486612941565b95945050505050565b6000611ba883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612115565b9392505050565b6024805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c5557600080fd5b505afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d91906125cd565b81600181518110611cae57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602154611cd491309116846114ad565b60215460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d0d90859060009086903090429060040161287a565b600060405180830381600087803b158015611d2757600080fd5b505af1158015611d3b573d6000803e3d6000fd5b50506024805461ff001916905550505050565b600080611d5b83856128ea565b905083811015611ba85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082611e0c575060006108ee565b6000611e188385612922565b905082611e258583612902565b14611ba85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091e565b6000611ba883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b2c565b6024805461ff0019166101001790556000611eda836002611b66565b90506000611ee88483611e7c565b905047611efd611ef88585611d4e565b611baf565b6000611f094783611e7c565b90508215611d3b57611d3b83611f2c611f228888611d4e565b611a1e8589611dfd565b612143565b6000611f5060195461117b601554601754611d4e90919063ffffffff16565b90508015610e9a576000611f7382611a1e60175486611dfd90919063ffffffff16565b90506000611f9083611a1e60195487611dfd90919063ffffffff16565b90506000611fa882611fa28786611e7c565b90611e7c565b90508215611fec57601d546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611fea573d6000803e3d6000fd5b505b811561202e57601e546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561202c573d6000803e3d6000fd5b505b801561207057601f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561206e573d6000803e3d6000fd5b505b5050505050565b806120d5576120d5600f8054601055600b8054600c5560118054601255600d8054600e5560009384905591839055829055819055601780546018556013805460145560198054601a5560158054601655928490559083905582905555565b6120e08484846121ff565b611b26601054600f55600c54600b55601254601155600e54600d55601854601755601454601355601a54601955601654601555565b600081836121365760405162461bcd60e51b815260040161091e919061273a565b506000611b5d8486612902565b60215461215b9030906001600160a01b0316846114ad565b60215460205460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b1580156121c657600080fd5b505af11580156121da573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207091906126dc565b6122316040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6022546001600160a01b03858116911614801561225c57506021546001600160a01b03848116911614155b156122d05761227c6103e8611a1e600f5485611dfd90919063ffffffff16565b6020820152600b54612297906103e890611a1e908590611dfd565b81526011546122af906103e890611a1e908590611dfd565b6040820152600d546122ca906103e890611a1e908590611dfd565b60608201525b6022546001600160a01b038581169116148015906122fb57506022546001600160a01b038481169116145b1561236f5761231b6103e8611a1e60175485611dfd90919063ffffffff16565b6020820152601354612336906103e890611a1e908590611dfd565b815260195461234e906103e890611a1e908590611dfd565b6040820152601554612369906103e890611a1e908590611dfd565b60608201525b6022546001600160a01b0385811691161480159061239b57506022546001600160a01b03848116911614155b15612455576123cc6064611a1e601b546123c66103e8611a1e60175489611dfd90919063ffffffff16565b90611dfd565b8160200181815250506123fb6064611a1e601b546123c66103e8611a1e60135489611dfd90919063ffffffff16565b8152601b5460195461242091606491611a1e91906123c6906103e89084908990611dfd565b81604001818152505061244f6064611a1e601b546123c66103e8611a1e60155489611dfd90919063ffffffff16565b60608201525b6124848160600151611fa28360400151611fa28560000151611fa2876020015189611e7c90919063ffffffff16565b60808201526001600160a01b0384166000908152600260205260409020546124ac9083611e7c565b6001600160a01b03808616600090815260026020526040808220939093556080840151918616815291909120546124e291611d4e565b60026000856001600160a01b03166001600160a01b031681526020019081526020016000208190555061254f612539826060015161117b846040015161117b86600001518760200151611d4e90919063ffffffff16565b3060009081526002602052604090205490611d4e565b3060009081526002602090815260409182902092909255608083015190519081526001600160a01b0385811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6000602082840312156125c2578081fd5b8135611ba88161296e565b6000602082840312156125de578081fd5b8151611ba88161296e565b600080604083850312156125fb578081fd5b82356126068161296e565b915060208301356126168161296e565b809150509250929050565b600080600060608486031215612635578081fd5b83356126408161296e565b925060208401356126508161296e565b929592945050506040919091013590565b60008060408385031215612673578182fd5b823561267e8161296e565b946020939093013593505050565b60006020828403121561269d578081fd5b81518015158114611ba8578182fd5b6000602082840312156126bd578081fd5b5035919050565b6000602082840312156126d5578081fd5b5051919050565b6000806000606084860312156126f0578283fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561271e578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127665785810183015185820160400152820161274a565b818111156127775783604083870101525b50601f01601f1916929092016040019392505050565b60208082526041908201527f77616c6c65742062616c616e6365206166746572207472616e73666572206d7560408201527f7374206265206c657373207468616e206d61782077616c6c657420616d6f756e6060820152601d60fa1b608082015260a00190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f63616e74206d616b6520746865206c696d6974206c6f776572207468616e20306040820152702e3125206f662074686520737570706c7960781b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128c95784516001600160a01b0316835293830193918301916001016128a4565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128fd576128fd612958565b500190565b60008261291d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561293c5761293c612958565b500290565b60008282101561295357612953612958565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610e9c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220afbd94d6d613a1f107d9d136d668c004e2764b1081b38856b579c1bbcf2debb964736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c806372b2aecc11610175578063cab03471116100dc578063e315a6da11610095578063f2fde38b1161006f578063f2fde38b14610863578063f480fec214610883578063ffb54a99146108a3578063ffecf516146108bd57600080fd5b8063e315a6da14610803578063e4bf1bed14610823578063ea2f0b371461084357600080fd5b8063cab0347114610731578063cdb3858f14610747578063d163364914610767578063db0045ec14610787578063dc44b6a0146107a7578063dd62ed3e146107bd57600080fd5b8063a850673d1161012e578063a850673d1461069a578063a9059cbb146106ba578063c3c8cd80146106da578063c469b6dd146106ef578063c5d2418914610705578063c86079521461071b57600080fd5b806372b2aecc146105ed57806388790a68146106035780638da5cb5b146106195780638e360253146106375780639164f9db1461064c57806395d89b411461066c57600080fd5b8063323be1c5116102195780635fecd926116101d25780635fecd926146105425780636aabff3f146105625780636c0a24eb146105775780636fc3eaec1461058d57806370a08231146105a2578063715018a6146105d857600080fd5b8063323be1c51461045c5780633bbac5791461047c5780633e0f966d146104b5578063437823ec146104ca57806349bd5a5e146104ea578063588813041461052257600080fd5b806323b872dd1161026b57806323b872dd146103b4578063248dd232146103d457806327a14fc2146103ea5780632843631d1461040a5780632940939514610420578063313ce5671461044057600080fd5b806301a6c43b146102be57806306fdde03146102e7578063095ea7b31461032257806314eb76ac1461035257806318160ddd146103745780632369bf831461039457600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d4600a5481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b5060408051808201909152600981526853746f726d6865696d60b81b60208201525b6040516102de919061273a565b34801561032e57600080fd5b5061034261033d366004612661565b6108dd565b60405190151581526020016102de565b34801561035e57600080fd5b5061037261036d3660046125b1565b6108f4565b005b34801561038057600080fd5b506c064f964e68233a76f5200000006102d4565b3480156103a057600080fd5b506103726103af3660046125b1565b610949565b3480156103c057600080fd5b506103426103cf366004612621565b610995565b3480156103e057600080fd5b506102d460155481565b3480156103f657600080fd5b506103726104053660046126ac565b6109fe565b34801561041657600080fd5b506102d4600d5481565b34801561042c57600080fd5b5061037261043b3660046125b1565b610b1e565b34801561044c57600080fd5b50604051601281526020016102de565b34801561046857600080fd5b506024546103429062010000900460ff1681565b34801561048857600080fd5b506103426104973660046125b1565b6001600160a01b03166000908152601c602052604090205460ff1690565b3480156104c157600080fd5b50610372610c6a565b3480156104d657600080fd5b506103726104e53660046125b1565b610cf8565b3480156104f657600080fd5b5060225461050a906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561052e57600080fd5b5061037261053d3660046126ac565b610d46565b34801561054e57600080fd5b5061037261055d3660046125b1565b610dad565b34801561056e57600080fd5b50610372610df8565b34801561058357600080fd5b506102d460075481565b34801561059957600080fd5b50610372610e30565b3480156105ae57600080fd5b506102d46105bd3660046125b1565b6001600160a01b031660009081526002602052604090205490565b3480156105e457600080fd5b50610372610e9f565b3480156105f957600080fd5b506102d4601b5481565b34801561060f57600080fd5b506102d460135481565b34801561062557600080fd5b506000546001600160a01b031661050a565b34801561064357600080fd5b50610372610f13565b34801561065857600080fd5b506103726106673660046126ac565b610f4c565b34801561067857600080fd5b5060408051808201909152600581526453544f524d60d81b6020820152610315565b3480156106a657600080fd5b506103726106b53660046126ac565b610fb3565b3480156106c657600080fd5b506103426106d5366004612661565b610fe2565b3480156106e657600080fd5b50610372610fef565b3480156106fb57600080fd5b506102d460115481565b34801561071157600080fd5b506102d4600f5481565b34801561072757600080fd5b506102d460175481565b34801561073d57600080fd5b506102d460195481565b34801561075357600080fd5b506103726107623660046125b1565b611038565b34801561077357600080fd5b506103726107823660046126ac565b611084565b34801561079357600080fd5b506103726107a23660046125b1565b6110c4565b3480156107b357600080fd5b506102d4600b5481565b3480156107c957600080fd5b506102d46107d83660046125e9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561080f57600080fd5b5061037261081e3660046126ac565b611110565b34801561082f57600080fd5b5061037261083e366004612709565b61113f565b34801561084f57600080fd5b5061037261085e3660046125b1565b611266565b34801561086f57600080fd5b5061037261087e3660046125b1565b6112b1565b34801561088f57600080fd5b5061037261089e366004612709565b611349565b3480156108af57600080fd5b506024546103429060ff1681565b3480156108c957600080fd5b506103726108d83660046125b1565b61145f565b60006108ea3384846114ad565b5060015b92915050565b6000546001600160a01b031633146109275760405162461bcd60e51b815260040161091e906127f4565b60405180910390fd5b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109735760405162461bcd60e51b815260040161091e906127f4565b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006109a28484846115d1565b6109f484336109ef85604051806060016040528060288152602001612984602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611b2c565b6114ad565b5060019392505050565b6000546001600160a01b03163314610a285760405162461bcd60e51b815260040161091e906127f4565b610a416c064f964e68233a76f5200000006103e8611b66565b811015610aa35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3125604482015269206f6620737570706c7960b01b606482015260840161091e565b6c064f964e68233a76f520000000811115610b195760405162461bcd60e51b815260206004820152603060248201527f416d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526f6c20746f20746f74616c537570706c7960801b606482015260840161091e565b600755565b6000546001600160a01b03163314610b485760405162461bcd60e51b815260040161091e906127f4565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610b8a57600080fd5b505afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc291906126c4565b9050816001600160a01b031663a9059cbb610be56000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c65919061268c565b505050565b6000546001600160a01b03163314610c945760405162461bcd60e51b815260040161091e906127f4565b60245462010000900460ff16610cec5760405162461bcd60e51b815260206004820152601e60248201527f7468697320636f6e74726163742063616e6e6f74206265207061757365640000604482015260640161091e565b6024805460ff19169055565b6000546001600160a01b03163314610d225760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610d705760405162461bcd60e51b815260040161091e906127f4565b610d896c064f964e68233a76f5200000006103e8611b66565b811015610da85760405162461bcd60e51b815260040161091e90612829565b600955565b6000546001600160a01b03163314610dd75760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152601c60205260409020805460ff19169055565b6000546001600160a01b03163314610e225760405162461bcd60e51b815260040161091e906127f4565b6024805462ff000019169055565b6000546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161091e906127f4565b478015610e9c57600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610e9a573d6000803e3d6000fd5b505b50565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161091e906127f4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f3d5760405162461bcd60e51b815260040161091e906127f4565b6024805460ff19166001179055565b6000546001600160a01b03163314610f765760405162461bcd60e51b815260040161091e906127f4565b610f8f6c064f964e68233a76f5200000006103e8611b66565b811015610fae5760405162461bcd60e51b815260040161091e90612829565b600855565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b815260040161091e906127f4565b601b55565b60006108ea3384846115d1565b6000546001600160a01b031633146110195760405162461bcd60e51b815260040161091e906127f4565b306000908152600260205260409020548015610e9c57610e9c81611baf565b6000546001600160a01b031633146110625760405162461bcd60e51b815260040161091e906127f4565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110ae5760405162461bcd60e51b815260040161091e906127f4565b426005556006556024805460ff19166001179055565b6000546001600160a01b031633146110ee5760405162461bcd60e51b815260040161091e906127f4565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461113a5760405162461bcd60e51b815260040161091e906127f4565b600a55565b6000546001600160a01b031633146111695760405162461bcd60e51b815260040161091e906127f4565b60006111818261117b85818989611d4e565b90611d4e565b905060c88111156111ee5760405162461bcd60e51b815260206004820152603160248201527f53756d206f66206275792066656573206d757374206265206c657373207468616044820152706e206f7220657175616c20746f2032302560781b606482015260840161091e565b600f859055600b8490556011839055600d8290556010859055600c8490556012839055600e8290556040805186815260208101869052908101849052606081018390527f892b2caa2d791bf7b8d9a49c4db7a4513ff1ae2e0e068ed217f9d5ab4c1a28f0906080015b60405180910390a15050505050565b6000546001600160a01b031633146112905760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146112db5760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b0381166113405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091e565b610e9c81611dad565b6000546001600160a01b031633146113735760405162461bcd60e51b815260040161091e906127f4565b60006113858261117b85818989611d4e565b905060fa8111156113f25760405162461bcd60e51b815260206004820152603160248201527f53756d206f66206275792066656573206d757374206265206c657373207468616044820152706e206f7220657175616c20746f2032352560781b606482015260840161091e565b601785905560138490556019839055601582905560188590556014849055601a83905560168290556040805186815260208101869052908101849052606081018390527f439932620c72dddea29980c098bca1a482729646d1216b226d723c6d278a30d190608001611257565b6000546001600160a01b031633146114895760405162461bcd60e51b815260040161091e906127f4565b6001600160a01b03166000908152601c60205260409020805460ff19166001179055565b6001600160a01b03831661150f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091e565b6001600160a01b0382166115705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091e565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091e565b6001600160a01b0382166116975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091e565b600081116116f95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161091e565b600161170d6000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561173c57506000546001600160a01b03848116911614155b801561175157506001600160a01b0384163014155b801561176657506001600160a01b0383163014155b15611ad25760245460ff166117b55760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b604482015260640161091e565b6022546001600160a01b0385811691161480156117e057506021546001600160a01b03848116911614155b156118b4576006546005546117f491611d4e565b421161181e576001600160a01b0383166000908152601c60205260409020805460ff191660011790555b6007546118448361117b866001600160a01b031660009081526002602052604090205490565b11156118625760405162461bcd60e51b815260040161091e9061278d565b6009548211156118b45760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d6178696d756d20627579206c696d6974604482015260640161091e565b602454610100900460ff161580156118da57506022546001600160a01b03858116911614155b80156118f357506022546001600160a01b038481169116145b15611a5d576001600160a01b0384166000908152601c602052604090205460ff1615801561193a57506001600160a01b0383166000908152601c602052604090205460ff16155b61194357600080fd5b60085482111561199f5760405162461bcd60e51b815260206004820152602160248201527f416d6f756e742065786365656473206d6178696d756d2073656c6c206c696d696044820152601d60fa1b606482015260840161091e565b30600090815260026020526040902054600a548110611a5b578015611a495760006119e360135461117b60155461117b601954601754611d4e90919063ffffffff16565b1115611a49576000611a24611a1160135461117b60155461117b601954601754611d4e90919063ffffffff16565b601354611a1e9085611dfd565b90611b66565b90506000818310611a3c57611a398383611e7c565b90505b611a468282611ebe565b50505b478015611a5957611a5947611f31565b505b505b6022546001600160a01b03858116911614801590611a8957506022546001600160a01b03848116911614155b15611ad257600754611ab48361117b866001600160a01b031660009081526002602052604090205490565b1115611ad25760405162461bcd60e51b815260040161091e9061278d565b6001600160a01b03841660009081526004602052604090205460ff1680611b1157506001600160a01b03831660009081526004602052604090205460ff165b15611b1a575060005b611b2684848484612077565b50505050565b60008184841115611b505760405162461bcd60e51b815260040161091e919061273a565b506000611b5d8486612941565b95945050505050565b6000611ba883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612115565b9392505050565b6024805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c5557600080fd5b505afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d91906125cd565b81600181518110611cae57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602154611cd491309116846114ad565b60215460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d0d90859060009086903090429060040161287a565b600060405180830381600087803b158015611d2757600080fd5b505af1158015611d3b573d6000803e3d6000fd5b50506024805461ff001916905550505050565b600080611d5b83856128ea565b905083811015611ba85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082611e0c575060006108ee565b6000611e188385612922565b905082611e258583612902565b14611ba85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091e565b6000611ba883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b2c565b6024805461ff0019166101001790556000611eda836002611b66565b90506000611ee88483611e7c565b905047611efd611ef88585611d4e565b611baf565b6000611f094783611e7c565b90508215611d3b57611d3b83611f2c611f228888611d4e565b611a1e8589611dfd565b612143565b6000611f5060195461117b601554601754611d4e90919063ffffffff16565b90508015610e9a576000611f7382611a1e60175486611dfd90919063ffffffff16565b90506000611f9083611a1e60195487611dfd90919063ffffffff16565b90506000611fa882611fa28786611e7c565b90611e7c565b90508215611fec57601d546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015611fea573d6000803e3d6000fd5b505b811561202e57601e546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561202c573d6000803e3d6000fd5b505b801561207057601f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561206e573d6000803e3d6000fd5b505b5050505050565b806120d5576120d5600f8054601055600b8054600c5560118054601255600d8054600e5560009384905591839055829055819055601780546018556013805460145560198054601a5560158054601655928490559083905582905555565b6120e08484846121ff565b611b26601054600f55600c54600b55601254601155600e54600d55601854601755601454601355601a54601955601654601555565b600081836121365760405162461bcd60e51b815260040161091e919061273a565b506000611b5d8486612902565b60215461215b9030906001600160a01b0316846114ad565b60215460205460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b1580156121c657600080fd5b505af11580156121da573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207091906126dc565b6122316040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6022546001600160a01b03858116911614801561225c57506021546001600160a01b03848116911614155b156122d05761227c6103e8611a1e600f5485611dfd90919063ffffffff16565b6020820152600b54612297906103e890611a1e908590611dfd565b81526011546122af906103e890611a1e908590611dfd565b6040820152600d546122ca906103e890611a1e908590611dfd565b60608201525b6022546001600160a01b038581169116148015906122fb57506022546001600160a01b038481169116145b1561236f5761231b6103e8611a1e60175485611dfd90919063ffffffff16565b6020820152601354612336906103e890611a1e908590611dfd565b815260195461234e906103e890611a1e908590611dfd565b6040820152601554612369906103e890611a1e908590611dfd565b60608201525b6022546001600160a01b0385811691161480159061239b57506022546001600160a01b03848116911614155b15612455576123cc6064611a1e601b546123c66103e8611a1e60175489611dfd90919063ffffffff16565b90611dfd565b8160200181815250506123fb6064611a1e601b546123c66103e8611a1e60135489611dfd90919063ffffffff16565b8152601b5460195461242091606491611a1e91906123c6906103e89084908990611dfd565b81604001818152505061244f6064611a1e601b546123c66103e8611a1e60155489611dfd90919063ffffffff16565b60608201525b6124848160600151611fa28360400151611fa28560000151611fa2876020015189611e7c90919063ffffffff16565b60808201526001600160a01b0384166000908152600260205260409020546124ac9083611e7c565b6001600160a01b03808616600090815260026020526040808220939093556080840151918616815291909120546124e291611d4e565b60026000856001600160a01b03166001600160a01b031681526020019081526020016000208190555061254f612539826060015161117b846040015161117b86600001518760200151611d4e90919063ffffffff16565b3060009081526002602052604090205490611d4e565b3060009081526002602090815260409182902092909255608083015190519081526001600160a01b0385811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6000602082840312156125c2578081fd5b8135611ba88161296e565b6000602082840312156125de578081fd5b8151611ba88161296e565b600080604083850312156125fb578081fd5b82356126068161296e565b915060208301356126168161296e565b809150509250929050565b600080600060608486031215612635578081fd5b83356126408161296e565b925060208401356126508161296e565b929592945050506040919091013590565b60008060408385031215612673578182fd5b823561267e8161296e565b946020939093013593505050565b60006020828403121561269d578081fd5b81518015158114611ba8578182fd5b6000602082840312156126bd578081fd5b5035919050565b6000602082840312156126d5578081fd5b5051919050565b6000806000606084860312156126f0578283fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561271e578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127665785810183015185820160400152820161274a565b818111156127775783604083870101525b50601f01601f1916929092016040019392505050565b60208082526041908201527f77616c6c65742062616c616e6365206166746572207472616e73666572206d7560408201527f7374206265206c657373207468616e206d61782077616c6c657420616d6f756e6060820152601d60fa1b608082015260a00190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f63616e74206d616b6520746865206c696d6974206c6f776572207468616e20306040820152702e3125206f662074686520737570706c7960781b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128c95784516001600160a01b0316835293830193918301916001016128a4565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128fd576128fd612958565b500190565b60008261291d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561293c5761293c612958565b500290565b60008282101561295357612953612958565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610e9c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220afbd94d6d613a1f107d9d136d668c004e2764b1081b38856b579c1bbcf2debb964736f6c63430008040033
Deployed Bytecode Sourcemap
8153:19662:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8828:52;;;;;;;;;;;;;;;;;;;13068:25:1;;;13056:2;13041:18;8828:52:0;;;;;;;;12338:94;;;;;;;;;;-1:-1:-1;12419:5:0;;;;;;;;;;;;-1:-1:-1;;;12419:5:0;;;;12338:94;;;;;;;:::i;13320:163::-;;;;;;;;;;-1:-1:-1;13320:163:0;;;;;:::i;:::-;;:::i;:::-;;;4705:14:1;;4698:22;4680:41;;4668:2;4653:18;13320:163:0;4635:92:1;27434:122:0;;;;;;;;;;-1:-1:-1;27434:122:0;;;;;:::i;:::-;;:::i;:::-;;12648:97;;;;;;;;;;-1:-1:-1;8619:21:0;12648:97;;27280:142;;;;;;;;;;-1:-1:-1;27280:142:0;;;;;:::i;:::-;;:::i;13491:312::-;;;;;;;;;;-1:-1:-1;13491:312:0;;;;;:::i;:::-;;:::i;9557:36::-;;;;;;;;;;;;;;;;24784:327;;;;;;;;;;-1:-1:-1;24784:327:0;;;;;:::i;:::-;;:::i;9041:35::-;;;;;;;;;;;;;;;;21796:185;;;;;;;;;;-1:-1:-1;21796:185:0;;;;;:::i;:::-;;:::i;12546:94::-;;;;;;;;;;-1:-1:-1;12546:94:0;;8389:2;14630:36:1;;14618:2;14603:18;12546:94:0;14585:87:1;10813:27:0;;;;;;;;;;-1:-1:-1;10813:27:0;;;;;;;;;;;12880:98;;;;;;;;;;-1:-1:-1;12880:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;12957:13:0;12933:4;12957:13;;;:4;:13;;;;;;;;;12880:98;21094:145;;;;;;;;;;;;;:::i;24177:113::-;;;;;;;;;;-1:-1:-1;24177:113:0;;;;;:::i;:::-;;:::i;10669:28::-;;;;;;;;;;-1:-1:-1;10669:28:0;;;;-1:-1:-1;;;;;10669:28:0;;;;;;-1:-1:-1;;;;;3597:32:1;;;3579:51;;3567:2;3552:18;10669:28:0;3534:102:1;26923:195:0;;;;;;;;;;-1:-1:-1;26923:195:0;;;;;:::i;:::-;;:::i;24424:97::-;;;;;;;;;;-1:-1:-1;24424:97:0;;;;;:::i;:::-;;:::i;21247:87::-;;;;;;;;;;;;;:::i;8729:31::-;;;;;;;;;;;;;;;;21557:231;;;;;;;;;;;;;:::i;12753:119::-;;;;;;;;;;-1:-1:-1;12753:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12846:18:0;12819:7;12846:18;;;:9;:18;;;;;;;12753:119;3724:150;;;;;;;;;;;;;:::i;9932:46::-;;;;;;;;;;;;;;;;9427:36;;;;;;;;;;;;;;;;2799:79;;;;;;;;;;-1:-1:-1;2837:7:0;2864:6;-1:-1:-1;;;;;2864:6:0;2799:79;;21005:81;;;;;;;;;;;;;:::i;26711:200::-;;;;;;;;;;-1:-1:-1;26711:200:0;;;;;:::i;:::-;;:::i;12440:98::-;;;;;;;;;;-1:-1:-1;12523:7:0;;;;;;;;;;;;-1:-1:-1;;;12523:7:0;;;;12440:98;;24634:142;;;;;;;;;;-1:-1:-1;24634:142:0;;;;;:::i;:::-;;:::i;12990:169::-;;;;;;;;;;-1:-1:-1;12990:169:0;;;;;:::i;:::-;;:::i;21342:207::-;;;;;;;;;;;;;:::i;9295:30::-;;;;;;;;;;;;;;;;9168:35;;;;;;;;;;;;;;;;9687:36;;;;;;;;;;;;;;;;9817:31;;;;;;;;;;;;;;;;27565:122;;;;;;;;;;-1:-1:-1;27565:122:0;;;;;:::i;:::-;;:::i;20826:171::-;;;;;;;;;;-1:-1:-1;20826:171:0;;;;;:::i;:::-;;:::i;27126:142::-;;;;;;;;;;-1:-1:-1;27126:142:0;;;;;:::i;:::-;;:::i;8914:35::-;;;;;;;;;;;;;;;;13167:145;;;;;;;;;;-1:-1:-1;13167:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;13277:18:0;;;13250:7;13277:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13167:145;27695:117;;;;;;;;;;-1:-1:-1;27695:117:0;;;;;:::i;:::-;;:::i;25119:779::-;;;;;;;;;;-1:-1:-1;25119:779:0;;;;;:::i;:::-;;:::i;24298:114::-;;;;;;;;;;-1:-1:-1;24298:114:0;;;;;:::i;:::-;;:::i;3160:201::-;;;;;;;;;;-1:-1:-1;3160:201:0;;;;;:::i;:::-;;:::i;25906:793::-;;;;;;;;;;-1:-1:-1;25906:793:0;;;;;:::i;:::-;;:::i;10741:31::-;;;;;;;;;;-1:-1:-1;10741:31:0;;;;;;;;24529:93;;;;;;;;;;-1:-1:-1;24529:93:0;;;;;:::i;:::-;;:::i;13320:163::-;13397:4;13414:39;600:10;13437:7;13446:6;13414:8;:39::i;:::-;-1:-1:-1;13471:4:0;13320:163;;;;;:::o;27434:122::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;;;;;;;;;27522:12:::1;:26:::0;;-1:-1:-1;;;;;;27522:26:0::1;-1:-1:-1::0;;;;;27522:26:0;;;::::1;::::0;;;::::1;::::0;;27434:122::o;27280:142::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;27378:17:::1;:36:::0;;-1:-1:-1;;;;;;27378:36:0::1;-1:-1:-1::0;;;;;27378:36:0;;;::::1;::::0;;;::::1;::::0;;27280:142::o;13491:312::-;13591:4;13608:36;13618:6;13626:9;13637:6;13608:9;:36::i;:::-;13655:118;13664:6;600:10;13684:88;13722:6;13684:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13684:19:0;;;;;;:11;:19;;;;;;;;600:10;13684:33;;;;;;;;;;:37;:88::i;:::-;13655:8;:118::i;:::-;-1:-1:-1;13791:4:0;13491:312;;;;;:::o;24784:327::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;24896:17:::1;8619:21;24908:4;24896:11;:17::i;:::-;24877:15;:36;;24869:91;;;::::0;-1:-1:-1;;;24869:91:0;;9059:2:1;24869:91:0::1;::::0;::::1;9041:21:1::0;9098:2;9078:18;;;9071:30;9137:34;9117:18;;;9110:62;-1:-1:-1;;;9188:18:1;;;9181:40;9238:19;;24869:91:0::1;9031:232:1::0;24869:91:0::1;8619:21;24979:15;:26;;24971:87;;;::::0;-1:-1:-1;;;24971:87:0;;11535:2:1;24971:87:0::1;::::0;::::1;11517:21:1::0;11574:2;11554:18;;;11547:30;11613:34;11593:18;;;11586:62;-1:-1:-1;;;11664:18:1;;;11657:46;11720:19;;24971:87:0::1;11507:238:1::0;24971:87:0::1;25069:16;:34:::0;24784:327::o;21796:185::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21885:38:::1;::::0;-1:-1:-1;;;21885:38:0;;21917:4:::1;21885:38;::::0;::::1;3579:51:1::0;21868:14:0::1;::::0;-1:-1:-1;;;;;21885:23:0;::::1;::::0;::::1;::::0;3552:18:1;;21885:38:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21868:55;;21941:5;-1:-1:-1::0;;;;;21934:22:0::1;;21957:7;2837::::0;2864:6;-1:-1:-1;;;;;2864:6:0;;2799:79;21957:7:::1;21934:39;::::0;-1:-1:-1;;;;;;21934:39:0::1;::::0;;;;;;-1:-1:-1;;;;;3833:32:1;;;21934:39:0::1;::::0;::::1;3815:51:1::0;3882:18;;;3875:34;;;3788:18;;21934:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2996:1;21796:185:::0;:::o;21094:145::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21158:8:::1;::::0;;;::::1;;;21150:51;;;::::0;-1:-1:-1;;;21150:51:0;;5542:2:1;21150:51:0::1;::::0;::::1;5524:21:1::0;5581:2;5561:18;;;5554:30;5620:32;5600:18;;;5593:60;5670:18;;21150:51:0::1;5514:180:1::0;21150:51:0::1;21212:11;:19:::0;;-1:-1:-1;;21212:19:0::1;::::0;;21094:145::o;24177:113::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24248:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;24248:34:0::1;24278:4;24248:34;::::0;;24177:113::o;26923:195::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;27011:17:::1;8619:21;27023:4;27011:11;:17::i;:::-;27001:6;:27;;26993:90;;;;-1:-1:-1::0;;;26993:90:0::1;;;;;;;:::i;:::-;27094:7;:16:::0;26923:195::o;24424:97::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24492:13:0::1;24508:5;24492:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;24492:21:0::1;::::0;;24424:97::o;21247:87::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21310:8:::1;:16:::0;;-1:-1:-1;;21310:16:0::1;::::0;;21247:87::o;21557:231::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21640:21:::1;21676:22:::0;;21672:109:::1;;2837:7:::0;2864:6;;21715:54:::1;::::0;-1:-1:-1;;;;;2864:6:0;;;;21715:54;::::1;;;::::0;21750:18;;21715:54;2837:7;21715:54;21750:18;2864:6;21715:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21672:109;2996:1;21557:231::o:0;3724:150::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;3833:1:::1;3817:6:::0;;3796:40:::1;::::0;-1:-1:-1;;;;;3817:6:0;;::::1;::::0;3796:40:::1;::::0;3833:1;;3796:40:::1;3864:1;3847:19:::0;;-1:-1:-1;;;;;;3847:19:0::1;::::0;;3724:150::o;21005:81::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21060:11:::1;:18:::0;;-1:-1:-1;;21060:18:0::1;21074:4;21060:18;::::0;;21005:81::o;26711:200::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;26802:17:::1;8619:21;26814:4;26802:11;:17::i;:::-;26791:7;:28;;26783:91;;;;-1:-1:-1::0;;;26783:91:0::1;;;;;;;:::i;:::-;26885:8;:18:::0;26711:200::o;24634:142::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;24729:25:::1;:39:::0;24634:142::o;12990:169::-;13070:4;13087:42;600:10;13111:9;13122:6;13087:9;:42::i;21342:207::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;21440:4:::1;21396:23;12846:18:::0;;;:9;:18;;;;;;21461:19;;21457:85:::1;;21497:33;21514:15;21497:16;:33::i;27565:122::-:0;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;27653:12:::1;:26:::0;;-1:-1:-1;;;;;;27653:26:0::1;-1:-1:-1::0;;;;;27653:26:0;;;::::1;::::0;;;::::1;::::0;;27565:122::o;20826:171::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;20912:15:::1;20898:11;:29:::0;20938:10:::1;:22:::0;20971:11:::1;:18:::0;;-1:-1:-1;;20971:18:0::1;20985:4;20971:18;::::0;;20826:171::o;27126:142::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;27224:17:::1;:36:::0;;-1:-1:-1;;;;;;27224:36:0::1;-1:-1:-1::0;;;;;27224:36:0;;;::::1;::::0;;;::::1;::::0;;27126:142::o;27695:117::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;27777:15:::1;:27:::0;27695:117::o;25119:779::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;25255:16:::1;25274:61;25322:12:::0;25274:43:::1;25309:7:::0;25274:43;:12;25291;25274:16:::1;:30::i;:::-;:34:::0;::::1;:43::i;:61::-;25255:80;;25366:3;25354:8;:15;;25346:77;;;::::0;-1:-1:-1;;;25346:77:0;;6305:2:1;25346:77:0::1;::::0;::::1;6287:21:1::0;6344:2;6324:18;;;6317:30;6383:34;6363:18;;;6356:62;-1:-1:-1;;;6434:18:1;;;6427:47;6491:19;;25346:77:0::1;6277:239:1::0;25346:77:0::1;25436:16;:31:::0;;;25478:16:::1;:31:::0;;;25520:11:::1;:21:::0;;;25552:16:::1;:31:::0;;;25604:24:::1;:43:::0;;;25658:24:::1;:43:::0;;;25712:19:::1;:33:::0;;;25756:24:::1;:43:::0;;;25825:65:::1;::::0;;14323:25:1;;;14379:2;14364:18;;14357:34;;;14407:18;;;14400:34;;;14465:2;14450:18;;14443:34;;;25825:65:0::1;::::0;14310:3:1;14295:19;25825:65:0::1;;;;;;;;2996:1;25119:779:::0;;;;:::o;24298:114::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24369:27:0::1;24399:5;24369:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;24369:35:0::1;::::0;;24298:114::o;3160:201::-;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3249:22:0;::::1;3241:73;;;::::0;-1:-1:-1;;;3241:73:0;;7491:2:1;3241:73:0::1;::::0;::::1;7473:21:1::0;7530:2;7510:18;;;7503:30;7569:34;7549:18;;;7542:62;-1:-1:-1;;;7620:18:1;;;7613:36;7666:19;;3241:73:0::1;7463:228:1::0;3241:73:0::1;3325:28;3344:8;3325:18;:28::i;25906:793::-:0;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;26043:16:::1;26062:61;26110:12:::0;26062:43:::1;26097:7:::0;26062:43;:12;26079;26062:16:::1;:30::i;:61::-;26043:80;;26154:3;26142:8;:15;;26134:77;;;::::0;-1:-1:-1;;;26134:77:0;;6723:2:1;26134:77:0::1;::::0;::::1;6705:21:1::0;6762:2;6742:18;;;6735:30;6801:34;6781:18;;;6774:62;-1:-1:-1;;;6852:18:1;;;6845:47;6909:19;;26134:77:0::1;6695:239:1::0;26134:77:0::1;26224:17;:32:::0;;;26267:17:::1;:32:::0;;;26310:12:::1;:22:::0;;;26343:17:::1;:32:::0;;;26396:25:::1;:45:::0;;;26452:25:::1;:45:::0;;;26508:20:::1;:35:::0;;;26554:25:::1;:45:::0;;;26625:66:::1;::::0;;14323:25:1;;;14379:2;14364:18;;14357:34;;;14407:18;;;14400:34;;;14465:2;14450:18;;14443:34;;;26625:66:0::1;::::0;14310:3:1;14295:19;26625:66:0::1;14277:206:1::0;24529:93:0;2926:6;;-1:-1:-1;;;;;2926:6:0;600:10;2926:22;2918:67;;;;-1:-1:-1;;;2918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24594:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;24594:20:0::1;24610:4;24594:20;::::0;;24529:93::o;15018:335::-;-1:-1:-1;;;;;15111:19:0;;15103:68;;;;-1:-1:-1;;;15103:68:0;;12719:2:1;15103:68:0;;;12701:21:1;12758:2;12738:18;;;12731:30;12797:34;12777:18;;;12770:62;-1:-1:-1;;;12848:18:1;;;12841:34;12892:19;;15103:68:0;12691:226:1;15103:68:0;-1:-1:-1;;;;;15190:21:0;;15182:68;;;;-1:-1:-1;;;15182:68:0;;7898:2:1;15182:68:0;;;7880:21:1;7937:2;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;-1:-1:-1;;;8027:18:1;;;8020:32;8069:19;;15182:68:0;7870:224:1;15182:68:0;-1:-1:-1;;;;;15261:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15313:32;;13068:25:1;;;15313:32:0;;13041:18:1;15313:32:0;;;;;;;15018:335;;;:::o;15365:2751::-;-1:-1:-1;;;;;15453:18:0;;15445:68;;;;-1:-1:-1;;;15445:68:0;;12313:2:1;15445:68:0;;;12295:21:1;12352:2;12332:18;;;12325:30;12391:34;12371:18;;;12364:62;-1:-1:-1;;;12442:18:1;;;12435:35;12487:19;;15445:68:0;12285:227:1;15445:68:0;-1:-1:-1;;;;;15532:16:0;;15524:64;;;;-1:-1:-1;;;15524:64:0;;5901:2:1;15524:64:0;;;5883:21:1;5940:2;5920:18;;;5913:30;5979:34;5959:18;;;5952:62;-1:-1:-1;;;6030:18:1;;;6023:33;6073:19;;15524:64:0;5873:225:1;15524:64:0;15616:1;15607:6;:10;15599:64;;;;-1:-1:-1;;;15599:64:0;;10707:2:1;15599:64:0;;;10689:21:1;10746:2;10726:18;;;10719:30;10785:34;10765:18;;;10758:62;-1:-1:-1;;;10836:18:1;;;10829:39;10885:19;;15599:64:0;10679:231:1;15599:64:0;15691:4;15720:7;2837;2864:6;-1:-1:-1;;;;;2864:6:0;;2799:79;15720:7;-1:-1:-1;;;;;15712:15:0;:4;-1:-1:-1;;;;;15712:15:0;;;:32;;;;-1:-1:-1;2837:7:0;2864:6;-1:-1:-1;;;;;15731:13:0;;;2864:6;;15731:13;;15712:32;:57;;;;-1:-1:-1;;;;;;15748:21:0;;15764:4;15748:21;;15712:57;:80;;;;-1:-1:-1;;;;;;15773:19:0;;15787:4;15773:19;;15712:80;15708:2229;;;15817:11;;;;15809:45;;;;-1:-1:-1;;;15809:45:0;;7141:2:1;15809:45:0;;;7123:21:1;7180:2;7160:18;;;7153:30;-1:-1:-1;;;7199:18:1;;;7192:51;7260:18;;15809:45:0;7113:171:1;15809:45:0;15881:13;;-1:-1:-1;;;;;15873:21:0;;;15881:13;;15873:21;:55;;;;-1:-1:-1;15912:15:0;;-1:-1:-1;;;;;15898:30:0;;;15912:15;;15898:30;;15873:55;15869:436;;;15996:10;;15980:11;;:27;;:15;:27::i;:::-;15961:15;:46;15957:110;;-1:-1:-1;;;;;16032:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;16032:15:0;16043:4;16032:15;;;15957:110;16122:16;;16093:25;16111:6;16093:13;16103:2;-1:-1:-1;;;;;12846:18:0;12819:7;12846:18;;;:9;:18;;;;;;;12753:119;16093:25;:45;;16085:123;;;;-1:-1:-1;;;16085:123:0;;;;;;;:::i;:::-;16245:7;;16235:6;:17;;16227:62;;;;-1:-1:-1;;;16227:62:0;;11952:2:1;16227:62:0;;;11934:21:1;;;11971:18;;;11964:30;12030:34;12010:18;;;12003:62;12082:18;;16227:62:0;11924:182:1;16227:62:0;16338:6;;;;;;;16337:7;:32;;;;-1:-1:-1;16356:13:0;;-1:-1:-1;;;;;16348:21:0;;;16356:13;;16348:21;;16337:32;:55;;;;-1:-1:-1;16379:13:0;;-1:-1:-1;;;;;16373:19:0;;;16379:13;;16373:19;16337:55;16333:1338;;;-1:-1:-1;;;;;16430:10:0;;;;;;:4;:10;;;;;;;;16429:11;:24;;;;-1:-1:-1;;;;;;16445:8:0;;;;;;:4;:8;;;;;;;;16444:9;16429:24;16421:33;;;;;;16491:8;;16481:6;:18;;16473:64;;;;-1:-1:-1;;;16473:64:0;;8657:2:1;16473:64:0;;;8639:21:1;8696:2;8676:18;;;8669:30;8735:34;8715:18;;;8708:62;-1:-1:-1;;;8786:18:1;;;8779:31;8827:19;;16473:64:0;8629:223:1;16473:64:0;16623:4;16574:28;12846:18;;;:9;:18;;;;;;16678:15;;16654:39;;16650:984;;16722:24;;16718:688;;16863:1;16779:81;16842:17;;16779:58;16819:17;;16779:35;16801:12;;16779:17;;:21;;:35;;;;:::i;:81::-;:85;16775:608;;;16897:20;16920:130;16968:81;17031:17;;16968:58;17008:17;;16968:35;16990:12;;16968:17;;:21;;:35;;;;:::i;:81::-;16920:17;;:43;;16942:20;16920:21;:43::i;:::-;:47;;:130::i;:::-;16897:153;;17081:15;17159:12;17135:20;:36;17131:157;;17218:38;:20;17243:12;17218:24;:38::i;:::-;17208:48;;17131:157;17318:37;17333:12;17347:7;17318:14;:37::i;:::-;16775:608;;;17457:21;17505:22;;17501:114;;17556:35;17569:21;17556:12;:35::i;:::-;16650:984;;16333:1338;;17698:13;;-1:-1:-1;;;;;17690:21:0;;;17698:13;;17690:21;;;;:44;;-1:-1:-1;17721:13:0;;-1:-1:-1;;;;;17715:19:0;;;17721:13;;17715:19;;17690:44;17687:239;;;17822:16;;17793:25;17811:6;17793:13;17803:2;-1:-1:-1;;;;;12846:18:0;12819:7;12846:18;;;:9;:18;;;;;;;12753:119;17793:25;:45;;17785:123;;;;-1:-1:-1;;;17785:123:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17953:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;17981:22:0;;;;;;:18;:22;;;;;;;;17953:50;17949:98;;;-1:-1:-1;18030:5:0;17949:98;18067:41;18082:4;18088:2;18092:6;18100:7;18067:14;:41::i;:::-;15365:2751;;;;:::o;1657:190::-;1743:7;1779:12;1771:6;;;;1763:29;;;;-1:-1:-1;;;1763:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1803:9:0;1815:5;1819:1;1815;:5;:::i;:::-;1803:17;1657:190;-1:-1:-1;;;;;1657:190:0:o;2109:132::-;2167:7;2194:39;2198:1;2201;2194:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2187:46;2109:132;-1:-1:-1;;;2109:132:0:o;18127:407::-;11193:6;:13;;-1:-1:-1;;11193:13:0;;;;;18229:16:::1;::::0;;18243:1:::1;18229:16:::0;;;;;::::1;::::0;;-1:-1:-1;;18229:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18229:16:0::1;18205:40;;18274:4;18256;18261:1;18256:7;;;;;;-1:-1:-1::0;;;18256:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;18256:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18300:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;18300:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;18256:7;;18300:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18290:4;18295:1;18290:7;;;;;;-1:-1:-1::0;;;18290:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;18290:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;18365:15:::1;::::0;18333:62:::1;::::0;18350:4:::1;::::0;18365:15:::1;18383:11:::0;18333:8:::1;:62::i;:::-;18406:15;::::0;:120:::1;::::0;-1:-1:-1;;;18406:120:0;;-1:-1:-1;;;;;18406:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;18473:11;;18406:15:::1;::::0;18489:4;;18503::::1;::::0;18510:15:::1;::::0;18406:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11229:6:0;:14;;-1:-1:-1;;11229:14:0;;;-1:-1:-1;;;;18127:407:0:o;1326:179::-;1384:7;;1416:5;1420:1;1416;:5;:::i;:::-;1404:17;;1445:1;1440;:6;;1432:46;;;;-1:-1:-1;;;1432:46:0;;8301:2:1;1432:46:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:29;8359:18;;;8352:57;8426:18;;1432:46:0;8273:177:1;3521:191:0;3595:16;3614:6;;-1:-1:-1;;;;;3631:17:0;;;-1:-1:-1;;;;;;3631:17:0;;;;;;3664:40;;3614:6;;;;;;;3664:40;;3595:16;3664:40;3521:191;;:::o;1855:246::-;1913:7;1937:6;1933:47;;-1:-1:-1;1967:1:0;1960:8;;1933:47;1990:9;2002:5;2006:1;2002;:5;:::i;:::-;1990:17;-1:-1:-1;2035:1:0;2026:5;2030:1;1990:17;2026:5;:::i;:::-;:10;2018:56;;;;-1:-1:-1;;;2018:56:0;;9944:2:1;2018:56:0;;;9926:21:1;9983:2;9963:18;;;9956:30;10022:34;10002:18;;;9995:62;-1:-1:-1;;;10073:18:1;;;10066:31;10114:19;;2018:56:0;9916:223:1;1513:136:0;1571:7;1598:43;1602:1;1605;1598:43;;;;;;;;;;;;;;;;;:3;:43::i;19021:1031::-;11193:6;:13;;-1:-1:-1;;11193:13:0;;;;;;19190:15:::1;:8:::0;19203:1:::1;19190:12;:15::i;:::-;19175:30:::0;-1:-1:-1;19216:17:0::1;19236:18;:8:::0;19175:30;19236:12:::1;:18::i;:::-;19216:38:::0;-1:-1:-1;19557:21:0::1;19623:48;19640:30;:20:::0;19665:4;19640:24:::1;:30::i;:::-;19623:16;:48::i;:::-;19802:18;19823:41;:21;19849:14:::0;19823:25:::1;:41::i;:::-;19802:62:::0;-1:-1:-1;19922:13:0;;19918:127:::1;;19952:81;19965:9:::0;19976:56:::1;20001:30;:20:::0;20026:4;20001:24:::1;:30::i;:::-;19976:20;:10:::0;19991:4;19976:14:::1;:20::i;:56::-;19952:12;:81::i;20060:758::-:0;20117:17;20137:58;20182:12;;20137:40;20159:17;;20137;;:21;;:40;;;;:::i;:58::-;20117:78;-1:-1:-1;20210:14:0;;20206:605;;20241:24;20268:44;20302:9;20268:29;20279:17;;20268:6;:10;;:29;;;;:::i;:44::-;20241:71;;20327:19;20349:39;20378:9;20349:24;20360:12;;20349:6;:10;;:24;;;;:::i;:39::-;20327:61;-1:-1:-1;20403:18:0;20424:45;20327:61;20424:28;:6;20435:16;20424:10;:28::i;:::-;:32;;:45::i;:::-;20403:66;-1:-1:-1;20488:20:0;;20484:105;;20529:17;;:44;;-1:-1:-1;;;;;20529:17:0;;;;:44;;;;;20556:16;;20529:17;:44;:17;:44;20556:16;20529:17;:44;;;;;;;;;;;;;;;;;;;;;20484:105;20607:15;;20603:90;;20643:12;;:34;;-1:-1:-1;;;;;20643:12:0;;;;:34;;;;;20665:11;;20643:12;:34;:12;:34;20665:11;20643:12;:34;;;;;;;;;;;;;;;;;;;;;20603:90;20711:14;;20707:93;;20746:17;;:38;;-1:-1:-1;;;;;20746:17:0;;;;:38;;;;;20773:10;;20746:17;:38;:17;:38;20773:10;20746:17;:38;;;;;;;;;;;;;;;;;;;;;20707:93;20206:605;;;20060:758;;:::o;21989:256::-;22102:7;22097:60;;22131:14;13881:16;;;13854:24;:43;13935:16;;;13908:24;:43;13984:11;;;13962:19;:33;14033:16;;;14006:24;:43;-1:-1:-1;14070:20:0;;;;14101;;;;14132:15;;;14158:20;;;14219:17;;;14191:25;:45;14275:17;;;14247:25;:45;14326:12;;;14303:20;:35;14377:17;;;14349:25;:45;14415:21;;;;14447;;;;14479:16;;;14506:21;13811:724;22131:14;22167:44;22185:6;22193:9;22204:6;22167:17;:44::i;:::-;22222:15;14610:24;;14591:16;:43;14664:24;;14645:16;:43;14713:19;;14699:11;:33;14762:24;;14743:16;:43;14819:25;;14799:17;:45;14875:25;;14855:17;:45;14926:20;;14911:12;:35;14977:25;;14957:17;:45;14547:463;2249:189;2335:7;2370:12;2363:5;2355:28;;;;-1:-1:-1;;;2355:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2394:9:0;2406:5;2410:1;2406;:5;:::i;18546:465::-;18659:15;;18627:62;;18644:4;;-1:-1:-1;;;;;18659:15:0;18677:11;18627:8;:62::i;:::-;18732:15;;18946:12;;18732:271;;-1:-1:-1;;;18732:271:0;;18806:4;18732:271;;;4269:34:1;4319:18;;;4312:34;;;18732:15:0;4362:18:1;;;4355:34;;;4405:18;;;4398:34;-1:-1:-1;;;;;18946:12:0;;;4448:19:1;;;4441:44;18975:15:0;4501:19:1;;;4494:35;18732:15:0;;;:31;;18771:9;;4203:19:1;;18732:271:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22253:1875::-;22350:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22350:24:0;22399:13;;-1:-1:-1;;;;;22389:23:0;;;22399:13;;22389:23;:64;;;;-1:-1:-1;22437:15:0;;-1:-1:-1;;;;;22416:37:0;;;22437:15;;22416:37;;22389:64;22385:362;;;22494:38;22527:4;22494:28;22505:16;;22494:6;:10;;:28;;;;:::i;:38::-;22476:15;;;:56;22576:16;;22565:38;;22598:4;;22565:28;;:6;;:10;:28::i;:38::-;22547:56;;22642:11;;22631:33;;22659:4;;22631:23;;:6;;:10;:23::i;:33::-;22618:10;;;:46;22708:16;;22697:38;;22730:4;;22697:28;;:6;;:10;:28::i;:38::-;22679:15;;;:56;22385:362;22771:13;;-1:-1:-1;;;;;22761:23:0;;;22771:13;;22761:23;;;;:53;;-1:-1:-1;22801:13:0;;-1:-1:-1;;;;;22788:26:0;;;22801:13;;22788:26;22761:53;22757:356;;;22856:39;22890:4;22856:29;22867:17;;22856:6;:10;;:29;;;;:::i;:39::-;22838:15;;;:57;22939:17;;22928:39;;22962:4;;22928:29;;:6;;:10;:29::i;:39::-;22910:57;;23006:12;;22995:34;;23024:4;;22995:24;;:6;;:10;:24::i;:34::-;22982:10;;;:47;23073:17;;23062:39;;23096:4;;23062:29;;:6;;:10;:29::i;:39::-;23044:15;;;:57;22757:356;23137:13;;-1:-1:-1;;;;;23127:23:0;;;23137:13;;23127:23;;;;:53;;-1:-1:-1;23167:13:0;;-1:-1:-1;;;;;23154:26:0;;;23167:13;;23154:26;;23127:53;23123:527;;;23225:81;23302:3;23225:72;23271:25;;23226:39;23260:4;23226:29;23237:17;;23226:6;:10;;:29;;;;:::i;:39::-;23225:45;;:72::i;:81::-;23207:4;:15;;:99;;;;;23339:81;23416:3;23339:72;23385:25;;23340:39;23374:4;23340:29;23351:17;;23340:6;:10;;:29;;;;:::i;23339:81::-;23321:99;;23489:25;;23460:12;;23448:76;;23520:3;;23448:67;;23489:25;23449:34;;23478:4;;23448:67;;23449:6;;:10;:24::i;23448:76::-;23435:4;:10;;:89;;;;;23557:81;23634:3;23557:72;23603:25;;23558:39;23592:4;23558:29;23569:17;;23558:6;:10;;:29;;;;:::i;23557:81::-;23539:15;;;:99;23123:527;23685:85;23754:4;:15;;;23685:64;23738:4;:10;;;23685:48;23717:4;:15;;;23685:27;23696:4;:15;;;23685:6;:10;;:27;;;;:::i;:85::-;23670:12;;;:100;-1:-1:-1;;;;;23811:17:0;;;;;;:9;:17;;;;;;:29;;23833:6;23811:21;:29::i;:::-;-1:-1:-1;;;;;23791:17:0;;;;;;;:9;:17;;;;;;:49;;;;23899:12;;;;23874:20;;;;;;;;;;:38;;:24;:38::i;:::-;23851:9;:20;23861:9;-1:-1:-1;;;;;23851:20:0;-1:-1:-1;;;;;23851:20:0;;;;;;;;;;;;:61;;;;23950:103;23979:73;24036:4;:15;;;23979:52;24020:4;:10;;;23979:36;23999:4;:15;;;23979:4;:15;;;:19;;:36;;;;:::i;:73::-;23968:4;23950:24;;;;:9;:24;;;;;;;:28;:103::i;:::-;23941:4;23923:24;;;;:9;:24;;;;;;;;;:130;;;;24107:12;;;;24079:41;;13068:25:1;;;-1:-1:-1;;;;;24079:41:0;;;;;;;;;;13041:18:1;24079:41:0;;;;;;;22253:1875;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;812:398::-;880:6;888;941:2;929:9;920:7;916:23;912:32;909:2;;;962:6;954;947:22;909:2;1006:9;993:23;1025:31;1050:5;1025:31;:::i;:::-;1075:5;-1:-1:-1;1132:2:1;1117:18;;1104:32;1145:33;1104:32;1145:33;:::i;:::-;1197:7;1187:17;;;899:311;;;;;:::o;1215:466::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:2;;;1382:6;1374;1367:22;1329:2;1426:9;1413:23;1445:31;1470:5;1445:31;:::i;:::-;1495:5;-1:-1:-1;1552:2:1;1537:18;;1524:32;1565:33;1524:32;1565:33;:::i;:::-;1319:362;;1617:7;;-1:-1:-1;;;1671:2:1;1656:18;;;;1643:32;;1319:362::o;1686:325::-;1754:6;1762;1815:2;1803:9;1794:7;1790:23;1786:32;1783:2;;;1836:6;1828;1821:22;1783:2;1880:9;1867:23;1899:31;1924:5;1899:31;:::i;:::-;1949:5;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1773:238:1:o;2016:297::-;2083:6;2136:2;2124:9;2115:7;2111:23;2107:32;2104:2;;;2157:6;2149;2142:22;2104:2;2194:9;2188:16;2247:5;2240:13;2233:21;2226:5;2223:32;2213:2;;2274:6;2266;2259:22;2318:190;2377:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:2;;;2451:6;2443;2436:22;2398:2;-1:-1:-1;2479:23:1;;2388:120;-1:-1:-1;2388:120:1:o;2513:194::-;2583:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:2;;;2657:6;2649;2642:22;2604:2;-1:-1:-1;2685:16:1;;2594:113;-1:-1:-1;2594:113:1:o;2712:316::-;2800:6;2808;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:2;;;2890:6;2882;2875:22;2837:2;2924:9;2918:16;2908:26;;2974:2;2963:9;2959:18;2953:25;2943:35;;3018:2;3007:9;3003:18;2997:25;2987:35;;2827:201;;;;;:::o;3033:395::-;3119:6;3127;3135;3143;3196:3;3184:9;3175:7;3171:23;3167:33;3164:2;;;3218:6;3210;3203:22;3164:2;-1:-1:-1;;3246:23:1;;;3316:2;3301:18;;3288:32;;-1:-1:-1;3367:2:1;3352:18;;3339:32;;3418:2;3403:18;3390:32;;-1:-1:-1;3154:274:1;-1:-1:-1;3154:274:1:o;4732:603::-;4844:4;4873:2;4902;4891:9;4884:21;4934:6;4928:13;4977:6;4972:2;4961:9;4957:18;4950:34;5002:4;5015:140;5029:6;5026:1;5023:13;5015:140;;;5124:14;;;5120:23;;5114:30;5090:17;;;5109:2;5086:26;5079:66;5044:10;;5015:140;;;5173:6;5170:1;5167:13;5164:2;;;5243:4;5238:2;5229:6;5218:9;5214:22;5210:31;5203:45;5164:2;-1:-1:-1;5319:2:1;5298:15;-1:-1:-1;;5294:29:1;5279:45;;;;5326:2;5275:54;;4853:482;-1:-1:-1;;;4853:482:1:o;9268:469::-;9470:2;9452:21;;;9509:2;9489:18;;;9482:30;9548:34;9543:2;9528:18;;9521:62;9619:34;9614:2;9599:18;;9592:62;-1:-1:-1;;;9685:3:1;9670:19;;9663:32;9727:3;9712:19;;9442:295::o;10144:356::-;10346:2;10328:21;;;10365:18;;;10358:30;10424:34;10419:2;10404:18;;10397:62;10491:2;10476:18;;10318:182::o;10915:413::-;11117:2;11099:21;;;11156:2;11136:18;;;11129:30;11195:34;11190:2;11175:18;;11168:62;-1:-1:-1;;;11261:2:1;11246:18;;11239:47;11318:3;11303:19;;11089:239::o;13104:983::-;13366:4;13414:3;13403:9;13399:19;13445:6;13434:9;13427:25;13471:2;13509:6;13504:2;13493:9;13489:18;13482:34;13552:3;13547:2;13536:9;13532:18;13525:31;13576:6;13611;13605:13;13642:6;13634;13627:22;13680:3;13669:9;13665:19;13658:26;;13719:2;13711:6;13707:15;13693:29;;13740:4;13753:195;13767:6;13764:1;13761:13;13753:195;;;13832:13;;-1:-1:-1;;;;;13828:39:1;13816:52;;13923:15;;;;13888:12;;;;13864:1;13782:9;13753:195;;;-1:-1:-1;;;;;;;14004:32:1;;;;13999:2;13984:18;;13977:60;-1:-1:-1;;;14068:3:1;14053:19;14046:35;13965:3;13375:712;-1:-1:-1;;;13375:712:1:o;14677:128::-;14717:3;14748:1;14744:6;14741:1;14738:13;14735:2;;;14754:18;;:::i;:::-;-1:-1:-1;14790:9:1;;14725:80::o;14810:217::-;14850:1;14876;14866:2;;-1:-1:-1;;;14901:31:1;;14955:4;14952:1;14945:15;14983:4;14908:1;14973:15;14866:2;-1:-1:-1;15012:9:1;;14856:171::o;15032:168::-;15072:7;15138:1;15134;15130:6;15126:14;15123:1;15120:21;15115:1;15108:9;15101:17;15097:45;15094:2;;;15145:18;;:::i;:::-;-1:-1:-1;15185:9:1;;15084:116::o;15205:125::-;15245:4;15273:1;15270;15267:8;15264:2;;;15278:18;;:::i;:::-;-1:-1:-1;15315:9:1;;15254:76::o;15335:127::-;15396:10;15391:3;15387:20;15384:1;15377:31;15427:4;15424:1;15417:15;15451:4;15448:1;15441:15;15467:131;-1:-1:-1;;;;;15542:31:1;;15532:42;;15522:2;;15588:1;15585;15578:12
Swarm Source
ipfs://afbd94d6d613a1f107d9d136d668c004e2764b1081b38856b579c1bbcf2debb9
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.