Overview
ETH Balance
1 wei
Eth Value
Less Than $0.01 (@ $2,705.96/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,131 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Max Wallet A... | 20089340 | 237 days ago | IN | 0 ETH | 0.00020515 | ||||
Set Max Txn | 20089338 | 237 days ago | IN | 0 ETH | 0.000201 | ||||
Set Max Wallet A... | 20089323 | 237 days ago | IN | 0 ETH | 0.0002253 | ||||
Approve | 19708976 | 290 days ago | IN | 0 ETH | 0.00034077 | ||||
Approve | 18547259 | 453 days ago | IN | 0 ETH | 0.00049234 | ||||
Transfer | 17251550 | 635 days ago | IN | 0 ETH | 0.00883249 | ||||
Approve | 17011747 | 669 days ago | IN | 0 ETH | 0.00063212 | ||||
Approve | 16933254 | 680 days ago | IN | 0 ETH | 0.00071488 | ||||
Approve | 16894132 | 685 days ago | IN | 0 ETH | 0.00063825 | ||||
Approve | 16879207 | 687 days ago | IN | 0 ETH | 0.00054083 | ||||
Approve | 16416044 | 752 days ago | IN | 0 ETH | 0.00046939 | ||||
Approve | 16193762 | 783 days ago | IN | 0 ETH | 0.00034322 | ||||
Approve | 15656732 | 858 days ago | IN | 0 ETH | 0.00009737 | ||||
Approve | 15654648 | 859 days ago | IN | 0 ETH | 0.00097916 | ||||
Approve | 15626058 | 862 days ago | IN | 0 ETH | 0.00105568 | ||||
Approve | 15572492 | 870 days ago | IN | 0 ETH | 0.00040532 | ||||
Approve | 15558481 | 872 days ago | IN | 0 ETH | 0.00014841 | ||||
Approve | 15558480 | 872 days ago | IN | 0 ETH | 0.00015268 | ||||
Approve | 15558154 | 872 days ago | IN | 0 ETH | 0.0001865 | ||||
Approve | 15542238 | 874 days ago | IN | 0 ETH | 0.00039038 | ||||
Approve | 15497584 | 882 days ago | IN | 0 ETH | 0.00085042 | ||||
Approve | 15491964 | 882 days ago | IN | 0 ETH | 0.00176098 | ||||
Approve | 15487484 | 883 days ago | IN | 0 ETH | 0.00061002 | ||||
Approve | 15483276 | 884 days ago | IN | 0 ETH | 0.00066187 | ||||
Approve | 15437312 | 891 days ago | IN | 0 ETH | 0.0006279 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15415715 | 895 days ago | 0.02846014 ETH | ||||
15386672 | 899 days ago | 7.74195978 ETH | ||||
15386672 | 899 days ago | 7.74195978 ETH | ||||
15386665 | 899 days ago | 15.48391957 ETH | ||||
15386324 | 899 days ago | 0.03529954 ETH | ||||
15386324 | 899 days ago | 0.03529954 ETH | ||||
15386285 | 899 days ago | 0.00823706 ETH | ||||
15384213 | 900 days ago | 0.00338377 ETH | ||||
15384213 | 900 days ago | 0.00338377 ETH | ||||
15384213 | 900 days ago | 0.0106347 ETH | ||||
15384213 | 900 days ago | 0.00292454 ETH | ||||
15384213 | 900 days ago | 0.03216999 ETH | ||||
15382214 | 900 days ago | 0.00175431 ETH | ||||
15382214 | 900 days ago | 0.00175431 ETH | ||||
15382214 | 900 days ago | 0.00551355 ETH | ||||
15382214 | 900 days ago | 0.00151622 ETH | ||||
15382214 | 900 days ago | 0.01667849 ETH | ||||
15379990 | 900 days ago | 0.00062225 ETH | ||||
15379990 | 900 days ago | 0.00062225 ETH | ||||
15379990 | 900 days ago | 0.00195565 ETH | ||||
15379990 | 900 days ago | 0.0005378 ETH | ||||
15379990 | 900 days ago | 0.00591585 ETH | ||||
15379147 | 900 days ago | 0.01177569 ETH | ||||
15379147 | 900 days ago | 0.01177569 ETH | ||||
15379147 | 900 days ago | 0.03700931 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
RingOfPyro
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-18 */ /* https://t.me/RINGofPYRO ringofpyro.com https://twitter.com/ringofpyro $RING Ring of Pyro The ⭕️ Burn: Contract X. 1% BURN OF $RING 1% AUTO LP 2% BURN $PYRO 2% BURN "CONTRACT X" 2% MKTG At launch 1% max wallet 0.5% max txn "CONTRACT X" to be variable to be called at anytime, subject to community votes, we burn the token we want and/or subject to fees. */ // 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } 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"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; 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); } contract RingOfPyro is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private constant _name = "Ring Of Pyro"; string private constant _symbol = "RING"; uint8 private constant _decimals = 9; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 public _tTotal = 1000 * 1e2 * 1e9; //100,000 uint256 public _maxWalletAmount; uint256 public j_maxtxn; uint256 public swapAmount = 70 * 1e9; //.07% uint256 private buyPyroUpperLimit = 25 * 1e17; // 0.25 ETH uint256 private buyContractXUpperLimit = 25 * 1e17; // 0.25 ETH // fees uint256 public j_liqBuy = 1; uint256 public j_burnBuy = 1; uint256 public j_pyroBuy = 0; //turns on after launch is stable uint256 public j_jeetBuy = 6; //marketing & dev tax with jeet name for simplicity uint256 public j_contractXBuy = 0; //turns on after contract launch uint256 public j_liqSell = 1; uint256 public j_burnSell = 1; uint256 public j_pyroSell = 0; uint256 public j_jeetSell = 23; uint256 public j_contractXSell = 0; uint256 private j_previousLiqFee = j_liqFee; uint256 private j_previousBurnFee = j_burnFee; uint256 private j_previousPyroFee = j_pyroFee; uint256 private j_previousJeetTax = j_jeetTax; uint256 private j_previousContractXTax = j_contractXTax; uint256 private j_liqFee; uint256 private j_burnFee; uint256 private j_pyroFee; uint256 private j_jeetTax; uint256 private j_contractXTax; uint256 public _totalBurned; uint256 public _totalPyroBurned; uint256 public _totalContractXBurned; struct FeeBreakdown { uint256 tLiq; uint256 tBurn; uint256 tPyro; uint256 tJeet; uint256 tContractX; uint256 tAmount; } mapping(address => bool) private bots; address payable private RING = payable(0x858Ff8811Bf1355047f817D09f3e0D800E7054aa); //0x858Ff8811Bf1355047f817D09f3e0D800E7054aa address payable private mktg = payable(0x9C3543BF2d6f46bFdd3a0789628bba6a2B5DA7de); //0x9C3543BF2d6f46bFdd3a0789628bba6a2B5DA7de address public contractXaddress; address payable public contractXdead = payable(0x000000000000000000000000000000000000dEaD); address payable public dead = payable(0x000000000000000000000000000000000000dEaD); address PYRO = 0x89568569DA9C83CB35E59F92f5Df2F6CA829EEeE; //0x89568569DA9C83CB35E59F92f5Df2F6CA829EEeE IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private swapping = false; bool public burnMode = true; bool public pyroMode = false; bool public contractXMode = false; bool public tradingLive = false; event ExcludeFromFee(address excludedAddress); event IncludeInFee(address includedAddress); modifier lockSwap { swapping = true; _; swapping = false; } constructor() { _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[RING] = true; _isExcludedFromFee[mktg] = true; _isExcludedFromFee[dead] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), address(this), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 totalBurned() public view returns (uint256) { return _totalBurned; } function burning(address _account, uint _amount) private { require( _amount <= balanceOf(_account)); _balances[_account] = _balances[_account].sub(_amount); _tTotal = _tTotal.sub(_amount); _totalBurned = _totalBurned.add(_amount); emit Transfer(_account, address(0), _amount); } function removeAllFee() private { if (j_contractXTax == 0 && j_burnFee == 0 && j_liqFee == 0 && j_pyroFee == 0 && j_jeetTax == 0) return; j_previousBurnFee = j_burnFee; j_previousLiqFee = j_liqFee; j_previousPyroFee = j_pyroFee; j_previousJeetTax = j_jeetTax; j_previousContractXTax = j_contractXTax; j_burnFee = 0; j_liqFee = 0; j_pyroFee = 0; j_jeetTax = 0; j_contractXTax = 0; } function restoreAllFee() private { j_liqFee = j_previousLiqFee; j_burnFee = j_previousBurnFee; j_pyroFee = j_previousPyroFee; j_jeetTax = j_previousJeetTax; j_contractXTax = j_previousContractXTax; } function changeBuyTax(uint256 burn, uint256 liq, uint256 pyro, uint256 jeet, uint256 contractX) external { require(_msgSender() == RING); j_burnBuy = burn; j_liqBuy = liq; j_pyroBuy = pyro; j_jeetBuy = jeet; require (jeet >= 10); j_contractXBuy = contractX; } function changeSellTax(uint256 burn, uint256 liq, uint256 pyro, uint256 jeet, uint256 contractX) external { require(_msgSender() == RING); j_burnSell = burn; j_liqSell = liq; j_pyroSell = pyro; j_jeetSell = jeet; require (jeet >= 10); j_contractXSell = contractX; } 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 startTheRing() external onlyOwner { require(!tradingLive,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); _maxWalletAmount = 10 * 1e2 * 1e9; //1% j_maxtxn = 5 * 1e2 * 1e9; //0.5% tradingLive = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } 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"); require(!bots[from] && !bots[to]); if(!tradingLive){ require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active yet."); } bool takeFee = true; if (from != owner() && to != owner() && from != address(this) && to != address(this)) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) { require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet."); require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction"); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) { j_liqFee = j_liqBuy; j_burnFee = j_burnBuy; j_pyroFee = j_pyroBuy; j_jeetTax = j_jeetBuy; j_contractXTax = j_contractXBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) { j_liqFee = j_liqSell; j_burnFee = j_burnSell; j_pyroFee = j_pyroSell; j_jeetTax = j_jeetSell; j_contractXTax = j_contractXSell; } if (!swapping && from != uniswapV2Pair) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > swapAmount) { swapAndLiquify(contractTokenBalance); } } } if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _transferAgain(from, to, amount, takeFee); restoreAllFee(); } function setMaxTxn(uint256 maxTransaction) external { require(maxTransaction >= 5 * 1e2 * 1e9,"negative ghost rider"); require(_msgSender() == RING); j_maxtxn = maxTransaction; } function swapTokensForEth(uint256 tokenAmount) private lockSwap { 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 swapETHforPyroTokens(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(PYRO); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, // accept any amount of Tokens path, dead, // Burn address block.timestamp ); } function swapETHforContractXTokens(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(contractXaddress); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, // accept any amount of Tokens path, contractXdead, // Burn address 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 RING, block.timestamp ); } function swapAndLiquify(uint256 contractTokenBalance) private lockSwap { uint256 totalFees = (j_burnFee.add(j_pyroFee).add(j_jeetTax).add(j_liqFee).add(j_contractXTax)); uint256 amountForLiq = j_liqFee.mul(contractTokenBalance).div(totalFees); uint256 tokensForMktg = j_jeetTax.mul(contractTokenBalance).div(totalFees); uint256 tokensForLiq = amountForLiq.div(2); uint256 tokensForETH = contractTokenBalance.sub(tokensForLiq); uint256 initialBalance = address(this).balance; swapTokensForEth(tokensForETH); uint256 ethForLiq = ((address(this).balance.sub(initialBalance)).mul(tokensForLiq)).div(tokensForETH); addLiquidity(tokensForLiq, ethForLiq); uint256 tokensForPyro = j_pyroFee.mul(contractTokenBalance).div(totalFees); uint256 ethForPyro = ((address(this).balance.sub(initialBalance)).mul(tokensForPyro)).div(tokensForETH); if(pyroMode && ethForPyro > 0) { buyPyro(ethForPyro); } uint256 tokensForContractX = j_contractXTax.mul(contractTokenBalance).div(totalFees); uint256 ethForContractX = ((address(this).balance.sub(initialBalance)).mul(tokensForContractX)).div(tokensForETH); if(contractXMode && ethForContractX > 0) { buyContractX(ethForContractX); } uint256 ethForMktg = ((address(this).balance.sub(initialBalance)).mul(tokensForMktg)).div(tokensForETH); sendETHToFee(ethForMktg); } function sendETHToFee(uint256 amount) private { RING.transfer((amount).div(2)); mktg.transfer((amount).div(2)); } function manualSwap() external { require(_msgSender() == RING); uint256 contractBalance = balanceOf(address(this)); if (contractBalance > 0) { swapTokensForEth(contractBalance); } } function manualSend() external { require(_msgSender() == RING); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(contractETHBalance); } } function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee) { removeAllFee(); } FeeBreakdown memory fees; fees.tBurn = amount.mul(j_burnFee).div(100); fees.tLiq = amount.mul(j_liqFee).div(100); fees.tPyro = amount.mul(j_pyroFee).div(100); fees.tJeet = amount.mul(j_jeetTax).div(100); fees.tContractX = amount.mul(j_contractXTax).div(100); fees.tAmount = amount.sub(fees.tPyro).sub(fees.tJeet).sub(fees.tBurn).sub(fees.tLiq).sub(fees.tContractX); uint256 amountPreBurn = amount.sub(fees.tBurn); burning(sender, fees.tBurn); _balances[sender] = _balances[sender].sub(amountPreBurn); _balances[recipient] = _balances[recipient].add(fees.tAmount); _balances[address(this)] = _balances[address(this)].add(fees.tPyro).add(fees.tJeet).add(fees.tBurn).add(fees.tLiq).add(fees.tContractX); if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) { burning(uniswapV2Pair, fees.tBurn); } emit Transfer(sender, recipient, fees.tAmount); restoreAllFee(); } receive() external payable {} function setMaxWalletAmount(uint256 maxWalletAmount) external { require(_msgSender() == RING); require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply"); _maxWalletAmount = maxWalletAmount; } function setSwapAmount(uint256 _swapAmount) external { require(_msgSender() == RING); swapAmount = _swapAmount; } function endJeet() external { require(_msgSender() == RING); j_pyroBuy = 2; j_pyroSell = 2; j_jeetSell = 10; j_jeetBuy = 2; j_contractXBuy = 2; j_contractXSell = 2; contractXaddress = (0x8901ceAC9DD796a98DAa32e2fc55dC68fEcDA01A); //0x8901ceAC9DD796a98DAa32e2fc55dC68fEcDA01A contractXdead = dead; contractXMode = true; pyroMode = true; } function lastJeet() external { require(_msgSender() == RING); j_jeetSell = 2; } function changeContractX(uint256 buyContractXTax, uint256 sellContractXTax, address payable j_dead, address addressOfContractX) external { require(_msgSender() == RING); require(buyContractXTax + sellContractXTax <= 6); contractXaddress = addressOfContractX; j_contractXBuy = buyContractXTax; j_contractXSell = sellContractXTax; contractXdead = j_dead; } function buyPyro(uint256 amount) private { if (amount > 0) { swapETHforPyroTokens(amount); _totalPyroBurned = _totalPyroBurned.add(amount); } } function buyContractX(uint256 amount) private { if (amount > 0) { swapETHforContractXTokens(amount); _totalContractXBurned = _totalContractXBurned.add(amount); } } function setBuyPyroRate(uint256 buyPyroToken) external { require(_msgSender() == RING); buyPyroUpperLimit = buyPyroToken; } function setBuyContractXRate(uint256 buyContractXToken) external { require(_msgSender() == RING); buyContractXUpperLimit = buyContractXToken; } function setMktg(address payable _address) external { require(_msgSender() == RING || _msgSender() == mktg); mktg = _address; } function setContractXdead(address payable walletAddress) external { require(_msgSender() == RING); contractXdead = walletAddress; } function setContractXaddress(address payable walletAddress) external { require(_msgSender() == RING); contractXaddress = walletAddress; } function excludeFromFee(address account) external { require(_msgSender() == RING); _isExcludedFromFee[account] = true; emit ExcludeFromFee(account); } function includeInFee(address account) external { require(_msgSender() == RING); _isExcludedFromFee[account] = false; emit IncludeInFee(account); } function isExcludedFromFee(address account) external view returns (bool) { return _isExcludedFromFee[account]; } }
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":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalContractXBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalPyroBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liq","type":"uint256"},{"internalType":"uint256","name":"pyro","type":"uint256"},{"internalType":"uint256","name":"jeet","type":"uint256"},{"internalType":"uint256","name":"contractX","type":"uint256"}],"name":"changeBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyContractXTax","type":"uint256"},{"internalType":"uint256","name":"sellContractXTax","type":"uint256"},{"internalType":"address payable","name":"j_dead","type":"address"},{"internalType":"address","name":"addressOfContractX","type":"address"}],"name":"changeContractX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liq","type":"uint256"},{"internalType":"uint256","name":"pyro","type":"uint256"},{"internalType":"uint256","name":"jeet","type":"uint256"},{"internalType":"uint256","name":"contractX","type":"uint256"}],"name":"changeSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractXMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractXaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractXdead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"endJeet","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_contractXBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_contractXSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_pyroBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_pyroSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastJeet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pyroMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyContractXToken","type":"uint256"}],"name":"setBuyContractXRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyPyroToken","type":"uint256"}],"name":"setBuyPyroRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletAddress","type":"address"}],"name":"setContractXaddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletAddress","type":"address"}],"name":"setContractXdead","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setMktg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTheRing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingLive","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":[{"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":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052655af3107a400060055564104c533c006008556722b1c8c1227a00006009819055600a556001600b819055600c8190556000600d8190556006600e55600f8190556010829055601191909155601281905560176013819055601491909155601a54601555601b54601655601c549055601d54601855601e54601955602380546001600160a01b031990811673858ff8811bf1355047f817d09f3e0d800e7054aa17909155602480548216739c3543bf2d6f46bfdd3a0789628bba6a2b5da7de17905560268054821661dead9081179091556027805483169091179055602880549091167389568569da9c83cb35e59f92f5df2f6ca829eeee179055602a805464ffffffffff60a01b1916600160a81b17905534801561012257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580543060008181526002602090815260408083209490945581546001600160a01b039081168352600482528483208054600160ff19918216811790925560235483168552868520805482168317905560245483168552868520805482168317905560275490921684528584208054831682179055848452858420805490921617905593549251928352909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3612d708061022d6000396000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063d3e6cee011610102578063e7dfb411116100a0578063f42938901161006f578063f429389014610a0e578063f655467b14610a23578063fc588c0414610a38578063fd01bd4c14610a5857600080fd5b8063e7dfb4111461098e578063ea2f0b37146109ae578063f2fde38b146109ce578063f3e7bb93146109ee57600080fd5b8063dc903ba1116100dc578063dc903ba1146108fd578063dd62ed3e14610913578063e207148914610959578063e632313c1461096e57600080fd5b8063d3e6cee0146108bc578063d89135cd146108d2578063d9f7e4df146108e757600080fd5b8063a9059cbb1161016f578063b596c0bf11610149578063b596c0bf14610850578063bac1240114610870578063bbc8ac8b14610886578063cef58a6c1461089c57600080fd5b8063a9059cbb14610804578063abb876b014610824578063af465a271461083a57600080fd5b8063992ce157116101ab578063992ce15714610798578063a0565bdb146107ae578063a555f26a146107ce578063a8c4a13f146107e457600080fd5b80638da5cb5b1461072c5780638ea781531461074a57806395d89b411461076b57600080fd5b806337cfc8de116102ab578063643311801161024957806370a082311161022357806370a082311461069f57806378de776f146106d557806381486bf1146106f657806387b2fdfa1461070c57600080fd5b806364331180146106545780636c0a24eb146106695780636deb5b091461067f57600080fd5b806349bd5a5e1161028557806349bd5a5e146105d057806351bc3c85146105f05780635342acb41461060557806363a640ff1461063e57600080fd5b806337cfc8de1461056f5780633987764f1461058f578063437823ec146105b057600080fd5b8063233296f01161031857806327a14fc2116102f257806327a14fc2146104fd5780632e8fa8211461051d578063313ce5671461053357806336cf7c871461054f57600080fd5b8063233296f0146104b157806323b872dd146104c757806323bbf9e7146104e757600080fd5b806311704f521161035457806311704f52146104215780631694505e1461044257806318160ddd1461047a5780631884ed451461048f57600080fd5b806306fdde0314610386578063095ea7b3146103cd5780630cdf2187146103fd57600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5060408051808201909152600c81526b52696e67204f66205079726f60a01b60208201525b6040516103c4919061295e565b60405180910390f35b3480156103d957600080fd5b506103ed6103e83660046129c1565b610a6e565b60405190151581526020016103c4565b34801561040957600080fd5b5061041360105481565b6040519081526020016103c4565b34801561042d57600080fd5b50602a546103ed90600160c01b900460ff1681565b34801561044e57600080fd5b50602954610462906001600160a01b031681565b6040516001600160a01b0390911681526020016103c4565b34801561048657600080fd5b50600554610413565b34801561049b57600080fd5b506104af6104aa3660046129ed565b610a85565b005b3480156104bd57600080fd5b5061041360075481565b3480156104d357600080fd5b506103ed6104e2366004612a0a565b610ae5565b3480156104f357600080fd5b50610413600b5481565b34801561050957600080fd5b506104af610518366004612a4b565b610b4e565b34801561052957600080fd5b5061041360085481565b34801561053f57600080fd5b50604051600981526020016103c4565b34801561055b57600080fd5b50602754610462906001600160a01b031681565b34801561057b57600080fd5b506104af61058a366004612a64565b610be7565b34801561059b57600080fd5b50602a546103ed90600160b01b900460ff1681565b3480156105bc57600080fd5b506104af6105cb3660046129ed565b610c32565b3480156105dc57600080fd5b50602a54610462906001600160a01b031681565b3480156105fc57600080fd5b506104af610cad565b34801561061157600080fd5b506103ed6106203660046129ed565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064a57600080fd5b50610413600e5481565b34801561066057600080fd5b506104af610cef565b34801561067557600080fd5b5061041360065481565b34801561068b57600080fd5b506104af61069a366004612a4b565b610d86565b3480156106ab57600080fd5b506104136106ba3660046129ed565b6001600160a01b031660009081526002602052604090205490565b3480156106e157600080fd5b50602a546103ed90600160b81b900460ff1681565b34801561070257600080fd5b5061041360205481565b34801561071857600080fd5b506104af610727366004612a9f565b610dab565b34801561073857600080fd5b506000546001600160a01b0316610462565b34801561075657600080fd5b50602a546103ed90600160a81b900460ff1681565b34801561077757600080fd5b5060408051808201909152600481526352494e4760e01b60208201526103b7565b3480156107a457600080fd5b5061041360215481565b3480156107ba57600080fd5b506104af6107c9366004612a64565b610e1b565b3480156107da57600080fd5b5061041360145481565b3480156107f057600080fd5b50602554610462906001600160a01b031681565b34801561081057600080fd5b506103ed61081f3660046129c1565b610e66565b34801561083057600080fd5b50610413600d5481565b34801561084657600080fd5b5061041360055481565b34801561085c57600080fd5b506104af61086b3660046129ed565b610e73565b34801561087c57600080fd5b50610413600f5481565b34801561089257600080fd5b5061041360125481565b3480156108a857600080fd5b506104af6108b7366004612a4b565b610eb5565b3480156108c857600080fd5b5061041360135481565b3480156108de57600080fd5b50601f54610413565b3480156108f357600080fd5b5061041360115481565b34801561090957600080fd5b50610413600c5481565b34801561091f57600080fd5b5061041361092e366004612ae9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096557600080fd5b506104af610eda565b34801561097a57600080fd5b506104af610989366004612a4b565b610f01565b34801561099a57600080fd5b50602654610462906001600160a01b031681565b3480156109ba57600080fd5b506104af6109c93660046129ed565b610f26565b3480156109da57600080fd5b506104af6109e93660046129ed565b610f97565b3480156109fa57600080fd5b506104af610a093660046129ed565b61105f565b348015610a1a57600080fd5b506104af6110a1565b348015610a2f57600080fd5b506104af6110d1565b348015610a4457600080fd5b506104af610a53366004612a4b565b611469565b348015610a6457600080fd5b50610413601f5481565b6000610a7b3384846114da565b5060015b92915050565b6023546001600160a01b0316336001600160a01b03161480610aba57506024546001600160a01b0316336001600160a01b0316145b610ac357600080fd5b602480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610af28484846115fe565b610b448433610b3f85604051806060016040528060288152602001612d13602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611bed565b6114da565b5060019392505050565b6023546001600160a01b0316336001600160a01b031614610b6e57600080fd5b600554610b7c9060c8611c27565b8111610be25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b600655565b6023546001600160a01b0316336001600160a01b031614610c0757600080fd5b6011859055601084905560128390556013829055600a821015610c2957600080fd5b60145550505050565b6023546001600160a01b0316336001600160a01b031614610c5257600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6291015b60405180910390a150565b6023546001600160a01b0316336001600160a01b031614610ccd57600080fd5b306000908152600260205260409020548015610cec57610cec81611c70565b50565b6023546001600160a01b0316336001600160a01b031614610d0f57600080fd5b6002600d8190556012819055600a601355600e819055600f81905560145560258054738901ceac9dd796a98daa32e2fc55dc68fecda01a6001600160a01b031991821617909155602754602680546001600160a01b0390921691909216179055602a805461ffff60b01b191661010160b01b179055565b6023546001600160a01b0316336001600160a01b031614610da657600080fd5b600a55565b6023546001600160a01b0316336001600160a01b031614610dcb57600080fd5b6006610dd78486612b38565b1115610de257600080fd5b602580546001600160a01b03199081166001600160a01b0393841617909155600f94909455601492909255602680549093169116179055565b6023546001600160a01b0316336001600160a01b031614610e3b57600080fd5b600c859055600b849055600d839055600e829055600a821015610e5d57600080fd5b600f5550505050565b6000610a7b3384846115fe565b6023546001600160a01b0316336001600160a01b031614610e9357600080fd5b602580546001600160a01b0319166001600160a01b0392909216919091179055565b6023546001600160a01b0316336001600160a01b031614610ed557600080fd5b600955565b6023546001600160a01b0316336001600160a01b031614610efa57600080fd5b6002601355565b6023546001600160a01b0316336001600160a01b031614610f2157600080fd5b600855565b6023546001600160a01b0316336001600160a01b031614610f4657600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610ca2565b6000546001600160a01b03163314610ff15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bd9565b6001600160a01b0381166110565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd9565b610cec81611dea565b6023546001600160a01b0316336001600160a01b03161461107f57600080fd5b602680546001600160a01b0319166001600160a01b0392909216919091179055565b6023546001600160a01b0316336001600160a01b0316146110c157600080fd5b478015610cec57610cec81611e3a565b6000546001600160a01b0316331461112b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bd9565b602a54600160c01b900460ff16156111855760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610bd9565b602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556005546111be90309083906114da565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190612b4b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612b4b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113029190612b4b565b602a80546001600160a01b039283166001600160a01b03199091161790556029541663f305d719473061134a816001600160a01b031660009081526002602052604090205490565b60008061135f6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161138196959493929190612b68565b60606040518083038185885af115801561139f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113c49190612ba3565b505064e8d4a510006006555064746a528800600755602a8054600160c01b60ff60c01b1982161790915560295460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190612bd1565b5050565b64746a5288008110156114b55760405162461bcd60e51b81526020600482015260146024820152733732b3b0ba34bb329033b437b9ba103934b232b960611b6044820152606401610bd9565b6023546001600160a01b0316336001600160a01b0316146114d557600080fd5b600755565b6001600160a01b03831661153c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bd9565b6001600160a01b03821661159d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bd9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bd9565b6001600160a01b0382166116c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bd9565b600081116117265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bd9565b6001600160a01b03831660009081526022602052604090205460ff1615801561176857506001600160a01b03821660009081526022602052604090205460ff16155b61177157600080fd5b602a54600160c01b900460ff1661180d576001600160a01b03831660009081526004602052604090205460ff16806117c157506001600160a01b03821660009081526004602052604090205460ff165b61180d5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420616374697665207965742e0000000000006044820152606401610bd9565b60016118216000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561185057506000546001600160a01b03848116911614155b801561186557506001600160a01b0384163014155b801561187a57506001600160a01b0383163014155b15611b7057602a546001600160a01b0385811691161480156118aa57506029546001600160a01b03848116911614155b80156118f257506001600160a01b03841660009081526004602052604090205460ff1615806118f257506001600160a01b03831660009081526004602052604090205460ff16155b156119ec576006546119238361191d866001600160a01b031660009081526002602052604090205490565b90611ebf565b11156119855760405162461bcd60e51b815260206004820152602b60248201527f596f7520617265206265696e67206772656564792e20457863656564696e672060448201526a26b0bc102bb0b63632ba1760a91b6064820152608401610bd9565b6007548211156119ec5760405162461bcd60e51b815260206004820152602c60248201527f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860448201526b103a3930b739b0b1ba34b7b760a11b6064820152608401610bd9565b602a546001600160a01b038581169116148015611a1757506029546001600160a01b03848116911614155b8015611a3c57506001600160a01b03831660009081526022602052604090205460ff16155b8015611a6157506001600160a01b03841660009081526022602052604090205460ff16155b15611a8557600b54601a55600c54601b55600d54601c55600e54601d55600f54601e555b602a546001600160a01b038481169116148015611ab057506029546001600160a01b03858116911614155b8015611ad557506001600160a01b03831660009081526022602052604090205460ff16155b8015611afa57506001600160a01b03841660009081526022602052604090205460ff16155b15611b1e57601054601a55601154601b55601254601c55601354601d55601454601e555b602a54600160a01b900460ff16158015611b465750602a546001600160a01b03858116911614155b15611b705730600090815260026020526040902054600854811115611b6e57611b6e81611f1e565b505b6001600160a01b03841660009081526004602052604090205460ff1680611baf57506001600160a01b03831660009081526004602052604090205460ff165b15611bb8575060005b611bc4848484846120d9565b611be7601554601a55601654601b55601754601c55601854601d55601954601e55565b50505050565b60008184841115611c115760405162461bcd60e51b8152600401610bd9919061295e565b506000611c1e8486612bf3565b95945050505050565b6000611c6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123dc565b9392505050565b602a805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb857611cb8612c06565b6001600160a01b03928316602091820292909201810191909152602954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d359190612b4b565b81600181518110611d4857611d48612c06565b6001600160a01b039283166020918202929092010152602954611d6e91309116846114da565b60295460405163791ac94760e01b81526001600160a01b039091169063791ac94790611da7908590600090869030904290600401612c60565b600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b5050602a805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6023546001600160a01b03166108fc611e54836002611c27565b6040518115909202916000818181858888f19350505050158015611e7c573d6000803e3d6000fd5b506024546001600160a01b03166108fc611e97836002611c27565b6040518115909202916000818181858888f19350505050158015611465573d6000803e3d6000fd5b600080611ecc8385612b38565b905083811015611c695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bd9565b602a805460ff60a01b1916600160a01b179055601e54601a54601d54601c54601b54600094611f5994909361191d9391928492839190611ebf565b90506000611f7c82611f7685601a5461240a90919063ffffffff16565b90611c27565b90506000611f9983611f7686601d5461240a90919063ffffffff16565b90506000611fa8836002611c27565b90506000611fb6868361248c565b905047611fc282611c70565b6000611fdc83611f7686611fd6478761248c565b9061240a565b9050611fe884826124ce565b600061200388611f768b601c5461240a90919063ffffffff16565b9050600061201985611f7684611fd6478961248c565b602a54909150600160b01b900460ff1680156120355750600081115b156120435761204381612570565b600061205e8a611f768d601e5461240a90919063ffffffff16565b9050600061207487611f7684611fd6478b61248c565b602a54909150600160b81b900460ff1680156120905750600081115b1561209e5761209e81612592565b60006120b288611f768c611fd6478c61248c565b90506120bd81611e3a565b5050602a805460ff60a01b191690555050505050505050505050565b806120e6576120e66125b4565b61211f6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6121396064611f76601b548661240a90919063ffffffff16565b6020820152601a5461215390606490611f7690869061240a565b8152601c5461216a90606490611f7690869061240a565b6040820152601d5461218490606490611f7690869061240a565b6060820152601e5461219e90606490611f7690869061240a565b6080820181905281516020830151606084015160408501516121d594936121cf939092849283919082908c9061248c565b9061248c565b60a082015260208101516000906121ed90859061248c565b90506121fd868360200151612626565b6001600160a01b038616600090815260026020526040902054612220908261248c565b6001600160a01b038088166000908152600260205260408082209390935560a08501519188168152919091205461225691611ebf565b6001600160a01b038616600090815260026020908152604080832093909355608085015185519186015160608701518786015130865295909420546122aa95929461191d9493859392849291839190611ebf565b30600090815260026020526040902055602a54600160a81b900460ff1680156122e15750602a546001600160a01b03878116911614155b80156122f657506001600160a01b0386163014155b801561231057506029546001600160a01b03878116911614155b801561234057506029546001600160a01b03868116911614806123405750602a546001600160a01b038681169116145b1561236057602a546020830151612360916001600160a01b031690612626565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460a001516040516123a991815260200190565b60405180910390a36123d4601554601a55601654601b55601754601c55601854601d55601954601e55565b505050505050565b600081836123fd5760405162461bcd60e51b8152600401610bd9919061295e565b506000611c1e8486612c9c565b60008260000361241c57506000610a7f565b60006124288385612cbe565b9050826124358583612c9c565b14611c695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bd9565b6000611c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bed565b6029546124e69030906001600160a01b0316846114da565b60295460235460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926125269230928992600092839216904290600401612b68565b60606040518083038185885af1158015612544573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125699190612ba3565b5050505050565b8015610cec5761257f816126ec565b60205461258c9082611ebf565b60205550565b8015610cec576125a181612840565b6021546125ae9082611ebf565b60215550565b601e541580156125c45750601b54155b80156125d05750601a54155b80156125dc5750601c54155b80156125e85750601d54155b156125ef57565b601b8054601655601a8054601555601c8054601755601d8054601855601e8054601955600094859055928490559083905582905555565b6001600160a01b03821660009081526002602052604090205481111561264b57600080fd5b6001600160a01b03821660009081526002602052604090205461266e908261248c565b6001600160a01b038316600090815260026020526040902055600554612694908261248c565b600555601f546126a49082611ebf565b601f556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6040805160028082526060820183526000926020830190803683375050602954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277a9190612b4b565b8160008151811061278d5761278d612c06565b6001600160a01b0392831660209182029290920101526028548251911690829060019081106127be576127be612c06565b6001600160a01b03928316602091820292909201015260295460275460405163b6f9de9560e01b81529183169263b6f9de9592869261280a926000928892909116904290600401612cdd565b6000604051808303818588803b15801561282357600080fd5b505af1158015612837573d6000803e3d6000fd5b50505050505050565b6040805160028082526060820183526000926020830190803683375050602954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156128aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ce9190612b4b565b816000815181106128e1576128e1612c06565b6001600160a01b03928316602091820292909201015260255482519116908290600190811061291257612912612c06565b6001600160a01b03928316602091820292909201015260295460265460405163b6f9de9560e01b81529183169263b6f9de9592869261280a926000928892909116904290600401612cdd565b600060208083528351808285015260005b8181101561298b5785810183015185820160400152820161296f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cec57600080fd5b600080604083850312156129d457600080fd5b82356129df816129ac565b946020939093013593505050565b6000602082840312156129ff57600080fd5b8135611c69816129ac565b600080600060608486031215612a1f57600080fd5b8335612a2a816129ac565b92506020840135612a3a816129ac565b929592945050506040919091013590565b600060208284031215612a5d57600080fd5b5035919050565b600080600080600060a08688031215612a7c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060008060808587031215612ab557600080fd5b84359350602085013592506040850135612ace816129ac565b91506060850135612ade816129ac565b939692955090935050565b60008060408385031215612afc57600080fd5b8235612b07816129ac565b91506020830135612b17816129ac565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7f57610a7f612b22565b600060208284031215612b5d57600080fd5b8151611c69816129ac565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612bb857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612be357600080fd5b81518015158114611c6957600080fd5b81810381811115610a7f57610a7f612b22565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612c555781516001600160a01b031687529582019590820190600101612c30565b509495945050505050565b85815284602082015260a060408201526000612c7f60a0830186612c1c565b6001600160a01b0394909416606083015250608001529392505050565b600082612cb957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612cd857612cd8612b22565b500290565b848152608060208201526000612cf66080830186612c1c565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209088fbdd84f78ca9d6d5ed5a6dae47f4d2f97efe09e74a9a03c1cce68cd4e9db64736f6c63430008100033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063d3e6cee011610102578063e7dfb411116100a0578063f42938901161006f578063f429389014610a0e578063f655467b14610a23578063fc588c0414610a38578063fd01bd4c14610a5857600080fd5b8063e7dfb4111461098e578063ea2f0b37146109ae578063f2fde38b146109ce578063f3e7bb93146109ee57600080fd5b8063dc903ba1116100dc578063dc903ba1146108fd578063dd62ed3e14610913578063e207148914610959578063e632313c1461096e57600080fd5b8063d3e6cee0146108bc578063d89135cd146108d2578063d9f7e4df146108e757600080fd5b8063a9059cbb1161016f578063b596c0bf11610149578063b596c0bf14610850578063bac1240114610870578063bbc8ac8b14610886578063cef58a6c1461089c57600080fd5b8063a9059cbb14610804578063abb876b014610824578063af465a271461083a57600080fd5b8063992ce157116101ab578063992ce15714610798578063a0565bdb146107ae578063a555f26a146107ce578063a8c4a13f146107e457600080fd5b80638da5cb5b1461072c5780638ea781531461074a57806395d89b411461076b57600080fd5b806337cfc8de116102ab578063643311801161024957806370a082311161022357806370a082311461069f57806378de776f146106d557806381486bf1146106f657806387b2fdfa1461070c57600080fd5b806364331180146106545780636c0a24eb146106695780636deb5b091461067f57600080fd5b806349bd5a5e1161028557806349bd5a5e146105d057806351bc3c85146105f05780635342acb41461060557806363a640ff1461063e57600080fd5b806337cfc8de1461056f5780633987764f1461058f578063437823ec146105b057600080fd5b8063233296f01161031857806327a14fc2116102f257806327a14fc2146104fd5780632e8fa8211461051d578063313ce5671461053357806336cf7c871461054f57600080fd5b8063233296f0146104b157806323b872dd146104c757806323bbf9e7146104e757600080fd5b806311704f521161035457806311704f52146104215780631694505e1461044257806318160ddd1461047a5780631884ed451461048f57600080fd5b806306fdde0314610386578063095ea7b3146103cd5780630cdf2187146103fd57600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5060408051808201909152600c81526b52696e67204f66205079726f60a01b60208201525b6040516103c4919061295e565b60405180910390f35b3480156103d957600080fd5b506103ed6103e83660046129c1565b610a6e565b60405190151581526020016103c4565b34801561040957600080fd5b5061041360105481565b6040519081526020016103c4565b34801561042d57600080fd5b50602a546103ed90600160c01b900460ff1681565b34801561044e57600080fd5b50602954610462906001600160a01b031681565b6040516001600160a01b0390911681526020016103c4565b34801561048657600080fd5b50600554610413565b34801561049b57600080fd5b506104af6104aa3660046129ed565b610a85565b005b3480156104bd57600080fd5b5061041360075481565b3480156104d357600080fd5b506103ed6104e2366004612a0a565b610ae5565b3480156104f357600080fd5b50610413600b5481565b34801561050957600080fd5b506104af610518366004612a4b565b610b4e565b34801561052957600080fd5b5061041360085481565b34801561053f57600080fd5b50604051600981526020016103c4565b34801561055b57600080fd5b50602754610462906001600160a01b031681565b34801561057b57600080fd5b506104af61058a366004612a64565b610be7565b34801561059b57600080fd5b50602a546103ed90600160b01b900460ff1681565b3480156105bc57600080fd5b506104af6105cb3660046129ed565b610c32565b3480156105dc57600080fd5b50602a54610462906001600160a01b031681565b3480156105fc57600080fd5b506104af610cad565b34801561061157600080fd5b506103ed6106203660046129ed565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064a57600080fd5b50610413600e5481565b34801561066057600080fd5b506104af610cef565b34801561067557600080fd5b5061041360065481565b34801561068b57600080fd5b506104af61069a366004612a4b565b610d86565b3480156106ab57600080fd5b506104136106ba3660046129ed565b6001600160a01b031660009081526002602052604090205490565b3480156106e157600080fd5b50602a546103ed90600160b81b900460ff1681565b34801561070257600080fd5b5061041360205481565b34801561071857600080fd5b506104af610727366004612a9f565b610dab565b34801561073857600080fd5b506000546001600160a01b0316610462565b34801561075657600080fd5b50602a546103ed90600160a81b900460ff1681565b34801561077757600080fd5b5060408051808201909152600481526352494e4760e01b60208201526103b7565b3480156107a457600080fd5b5061041360215481565b3480156107ba57600080fd5b506104af6107c9366004612a64565b610e1b565b3480156107da57600080fd5b5061041360145481565b3480156107f057600080fd5b50602554610462906001600160a01b031681565b34801561081057600080fd5b506103ed61081f3660046129c1565b610e66565b34801561083057600080fd5b50610413600d5481565b34801561084657600080fd5b5061041360055481565b34801561085c57600080fd5b506104af61086b3660046129ed565b610e73565b34801561087c57600080fd5b50610413600f5481565b34801561089257600080fd5b5061041360125481565b3480156108a857600080fd5b506104af6108b7366004612a4b565b610eb5565b3480156108c857600080fd5b5061041360135481565b3480156108de57600080fd5b50601f54610413565b3480156108f357600080fd5b5061041360115481565b34801561090957600080fd5b50610413600c5481565b34801561091f57600080fd5b5061041361092e366004612ae9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096557600080fd5b506104af610eda565b34801561097a57600080fd5b506104af610989366004612a4b565b610f01565b34801561099a57600080fd5b50602654610462906001600160a01b031681565b3480156109ba57600080fd5b506104af6109c93660046129ed565b610f26565b3480156109da57600080fd5b506104af6109e93660046129ed565b610f97565b3480156109fa57600080fd5b506104af610a093660046129ed565b61105f565b348015610a1a57600080fd5b506104af6110a1565b348015610a2f57600080fd5b506104af6110d1565b348015610a4457600080fd5b506104af610a53366004612a4b565b611469565b348015610a6457600080fd5b50610413601f5481565b6000610a7b3384846114da565b5060015b92915050565b6023546001600160a01b0316336001600160a01b03161480610aba57506024546001600160a01b0316336001600160a01b0316145b610ac357600080fd5b602480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610af28484846115fe565b610b448433610b3f85604051806060016040528060288152602001612d13602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611bed565b6114da565b5060019392505050565b6023546001600160a01b0316336001600160a01b031614610b6e57600080fd5b600554610b7c9060c8611c27565b8111610be25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b600655565b6023546001600160a01b0316336001600160a01b031614610c0757600080fd5b6011859055601084905560128390556013829055600a821015610c2957600080fd5b60145550505050565b6023546001600160a01b0316336001600160a01b031614610c5257600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6291015b60405180910390a150565b6023546001600160a01b0316336001600160a01b031614610ccd57600080fd5b306000908152600260205260409020548015610cec57610cec81611c70565b50565b6023546001600160a01b0316336001600160a01b031614610d0f57600080fd5b6002600d8190556012819055600a601355600e819055600f81905560145560258054738901ceac9dd796a98daa32e2fc55dc68fecda01a6001600160a01b031991821617909155602754602680546001600160a01b0390921691909216179055602a805461ffff60b01b191661010160b01b179055565b6023546001600160a01b0316336001600160a01b031614610da657600080fd5b600a55565b6023546001600160a01b0316336001600160a01b031614610dcb57600080fd5b6006610dd78486612b38565b1115610de257600080fd5b602580546001600160a01b03199081166001600160a01b0393841617909155600f94909455601492909255602680549093169116179055565b6023546001600160a01b0316336001600160a01b031614610e3b57600080fd5b600c859055600b849055600d839055600e829055600a821015610e5d57600080fd5b600f5550505050565b6000610a7b3384846115fe565b6023546001600160a01b0316336001600160a01b031614610e9357600080fd5b602580546001600160a01b0319166001600160a01b0392909216919091179055565b6023546001600160a01b0316336001600160a01b031614610ed557600080fd5b600955565b6023546001600160a01b0316336001600160a01b031614610efa57600080fd5b6002601355565b6023546001600160a01b0316336001600160a01b031614610f2157600080fd5b600855565b6023546001600160a01b0316336001600160a01b031614610f4657600080fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610ca2565b6000546001600160a01b03163314610ff15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bd9565b6001600160a01b0381166110565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd9565b610cec81611dea565b6023546001600160a01b0316336001600160a01b03161461107f57600080fd5b602680546001600160a01b0319166001600160a01b0392909216919091179055565b6023546001600160a01b0316336001600160a01b0316146110c157600080fd5b478015610cec57610cec81611e3a565b6000546001600160a01b0316331461112b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bd9565b602a54600160c01b900460ff16156111855760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610bd9565b602980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556005546111be90309083906114da565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190612b4b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612b4b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113029190612b4b565b602a80546001600160a01b039283166001600160a01b03199091161790556029541663f305d719473061134a816001600160a01b031660009081526002602052604090205490565b60008061135f6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161138196959493929190612b68565b60606040518083038185885af115801561139f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113c49190612ba3565b505064e8d4a510006006555064746a528800600755602a8054600160c01b60ff60c01b1982161790915560295460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190612bd1565b5050565b64746a5288008110156114b55760405162461bcd60e51b81526020600482015260146024820152733732b3b0ba34bb329033b437b9ba103934b232b960611b6044820152606401610bd9565b6023546001600160a01b0316336001600160a01b0316146114d557600080fd5b600755565b6001600160a01b03831661153c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bd9565b6001600160a01b03821661159d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bd9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bd9565b6001600160a01b0382166116c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bd9565b600081116117265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bd9565b6001600160a01b03831660009081526022602052604090205460ff1615801561176857506001600160a01b03821660009081526022602052604090205460ff16155b61177157600080fd5b602a54600160c01b900460ff1661180d576001600160a01b03831660009081526004602052604090205460ff16806117c157506001600160a01b03821660009081526004602052604090205460ff165b61180d5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420616374697665207965742e0000000000006044820152606401610bd9565b60016118216000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561185057506000546001600160a01b03848116911614155b801561186557506001600160a01b0384163014155b801561187a57506001600160a01b0383163014155b15611b7057602a546001600160a01b0385811691161480156118aa57506029546001600160a01b03848116911614155b80156118f257506001600160a01b03841660009081526004602052604090205460ff1615806118f257506001600160a01b03831660009081526004602052604090205460ff16155b156119ec576006546119238361191d866001600160a01b031660009081526002602052604090205490565b90611ebf565b11156119855760405162461bcd60e51b815260206004820152602b60248201527f596f7520617265206265696e67206772656564792e20457863656564696e672060448201526a26b0bc102bb0b63632ba1760a91b6064820152608401610bd9565b6007548211156119ec5760405162461bcd60e51b815260206004820152602c60248201527f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860448201526b103a3930b739b0b1ba34b7b760a11b6064820152608401610bd9565b602a546001600160a01b038581169116148015611a1757506029546001600160a01b03848116911614155b8015611a3c57506001600160a01b03831660009081526022602052604090205460ff16155b8015611a6157506001600160a01b03841660009081526022602052604090205460ff16155b15611a8557600b54601a55600c54601b55600d54601c55600e54601d55600f54601e555b602a546001600160a01b038481169116148015611ab057506029546001600160a01b03858116911614155b8015611ad557506001600160a01b03831660009081526022602052604090205460ff16155b8015611afa57506001600160a01b03841660009081526022602052604090205460ff16155b15611b1e57601054601a55601154601b55601254601c55601354601d55601454601e555b602a54600160a01b900460ff16158015611b465750602a546001600160a01b03858116911614155b15611b705730600090815260026020526040902054600854811115611b6e57611b6e81611f1e565b505b6001600160a01b03841660009081526004602052604090205460ff1680611baf57506001600160a01b03831660009081526004602052604090205460ff165b15611bb8575060005b611bc4848484846120d9565b611be7601554601a55601654601b55601754601c55601854601d55601954601e55565b50505050565b60008184841115611c115760405162461bcd60e51b8152600401610bd9919061295e565b506000611c1e8486612bf3565b95945050505050565b6000611c6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123dc565b9392505050565b602a805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611cb857611cb8612c06565b6001600160a01b03928316602091820292909201810191909152602954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d359190612b4b565b81600181518110611d4857611d48612c06565b6001600160a01b039283166020918202929092010152602954611d6e91309116846114da565b60295460405163791ac94760e01b81526001600160a01b039091169063791ac94790611da7908590600090869030904290600401612c60565b600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b5050602a805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6023546001600160a01b03166108fc611e54836002611c27565b6040518115909202916000818181858888f19350505050158015611e7c573d6000803e3d6000fd5b506024546001600160a01b03166108fc611e97836002611c27565b6040518115909202916000818181858888f19350505050158015611465573d6000803e3d6000fd5b600080611ecc8385612b38565b905083811015611c695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bd9565b602a805460ff60a01b1916600160a01b179055601e54601a54601d54601c54601b54600094611f5994909361191d9391928492839190611ebf565b90506000611f7c82611f7685601a5461240a90919063ffffffff16565b90611c27565b90506000611f9983611f7686601d5461240a90919063ffffffff16565b90506000611fa8836002611c27565b90506000611fb6868361248c565b905047611fc282611c70565b6000611fdc83611f7686611fd6478761248c565b9061240a565b9050611fe884826124ce565b600061200388611f768b601c5461240a90919063ffffffff16565b9050600061201985611f7684611fd6478961248c565b602a54909150600160b01b900460ff1680156120355750600081115b156120435761204381612570565b600061205e8a611f768d601e5461240a90919063ffffffff16565b9050600061207487611f7684611fd6478b61248c565b602a54909150600160b81b900460ff1680156120905750600081115b1561209e5761209e81612592565b60006120b288611f768c611fd6478c61248c565b90506120bd81611e3a565b5050602a805460ff60a01b191690555050505050505050505050565b806120e6576120e66125b4565b61211f6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6121396064611f76601b548661240a90919063ffffffff16565b6020820152601a5461215390606490611f7690869061240a565b8152601c5461216a90606490611f7690869061240a565b6040820152601d5461218490606490611f7690869061240a565b6060820152601e5461219e90606490611f7690869061240a565b6080820181905281516020830151606084015160408501516121d594936121cf939092849283919082908c9061248c565b9061248c565b60a082015260208101516000906121ed90859061248c565b90506121fd868360200151612626565b6001600160a01b038616600090815260026020526040902054612220908261248c565b6001600160a01b038088166000908152600260205260408082209390935560a08501519188168152919091205461225691611ebf565b6001600160a01b038616600090815260026020908152604080832093909355608085015185519186015160608701518786015130865295909420546122aa95929461191d9493859392849291839190611ebf565b30600090815260026020526040902055602a54600160a81b900460ff1680156122e15750602a546001600160a01b03878116911614155b80156122f657506001600160a01b0386163014155b801561231057506029546001600160a01b03878116911614155b801561234057506029546001600160a01b03868116911614806123405750602a546001600160a01b038681169116145b1561236057602a546020830151612360916001600160a01b031690612626565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460a001516040516123a991815260200190565b60405180910390a36123d4601554601a55601654601b55601754601c55601854601d55601954601e55565b505050505050565b600081836123fd5760405162461bcd60e51b8152600401610bd9919061295e565b506000611c1e8486612c9c565b60008260000361241c57506000610a7f565b60006124288385612cbe565b9050826124358583612c9c565b14611c695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bd9565b6000611c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bed565b6029546124e69030906001600160a01b0316846114da565b60295460235460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926125269230928992600092839216904290600401612b68565b60606040518083038185885af1158015612544573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125699190612ba3565b5050505050565b8015610cec5761257f816126ec565b60205461258c9082611ebf565b60205550565b8015610cec576125a181612840565b6021546125ae9082611ebf565b60215550565b601e541580156125c45750601b54155b80156125d05750601a54155b80156125dc5750601c54155b80156125e85750601d54155b156125ef57565b601b8054601655601a8054601555601c8054601755601d8054601855601e8054601955600094859055928490559083905582905555565b6001600160a01b03821660009081526002602052604090205481111561264b57600080fd5b6001600160a01b03821660009081526002602052604090205461266e908261248c565b6001600160a01b038316600090815260026020526040902055600554612694908261248c565b600555601f546126a49082611ebf565b601f556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6040805160028082526060820183526000926020830190803683375050602954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277a9190612b4b565b8160008151811061278d5761278d612c06565b6001600160a01b0392831660209182029290920101526028548251911690829060019081106127be576127be612c06565b6001600160a01b03928316602091820292909201015260295460275460405163b6f9de9560e01b81529183169263b6f9de9592869261280a926000928892909116904290600401612cdd565b6000604051808303818588803b15801561282357600080fd5b505af1158015612837573d6000803e3d6000fd5b50505050505050565b6040805160028082526060820183526000926020830190803683375050602954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156128aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ce9190612b4b565b816000815181106128e1576128e1612c06565b6001600160a01b03928316602091820292909201015260255482519116908290600190811061291257612912612c06565b6001600160a01b03928316602091820292909201015260295460265460405163b6f9de9560e01b81529183169263b6f9de9592869261280a926000928892909116904290600401612cdd565b600060208083528351808285015260005b8181101561298b5785810183015185820160400152820161296f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cec57600080fd5b600080604083850312156129d457600080fd5b82356129df816129ac565b946020939093013593505050565b6000602082840312156129ff57600080fd5b8135611c69816129ac565b600080600060608486031215612a1f57600080fd5b8335612a2a816129ac565b92506020840135612a3a816129ac565b929592945050506040919091013590565b600060208284031215612a5d57600080fd5b5035919050565b600080600080600060a08688031215612a7c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060008060808587031215612ab557600080fd5b84359350602085013592506040850135612ace816129ac565b91506060850135612ade816129ac565b939692955090935050565b60008060408385031215612afc57600080fd5b8235612b07816129ac565b91506020830135612b17816129ac565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7f57610a7f612b22565b600060208284031215612b5d57600080fd5b8151611c69816129ac565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612bb857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612be357600080fd5b81518015158114611c6957600080fd5b81810381811115610a7f57610a7f612b22565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612c555781516001600160a01b031687529582019590820190600101612c30565b509495945050505050565b85815284602082015260a060408201526000612c7f60a0830186612c1c565b6001600160a01b0394909416606083015250608001529392505050565b600082612cb957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612cd857612cd8612b22565b500290565b848152608060208201526000612cf66080830186612c1c565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209088fbdd84f78ca9d6d5ed5a6dae47f4d2f97efe09e74a9a03c1cce68cd4e9db64736f6c63430008100033
Deployed Bytecode Sourcemap
11394:18883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14882:83;;;;;;;;;;-1:-1:-1;14952:5:0;;;;;;;;;;;;-1:-1:-1;;;14952:5:0;;;;14882:83;;;;;;;:::i;:::-;;;;;;;;15723:163;;;;;;;;;;-1:-1:-1;15723:163:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;15723:163:0;1023:187:1;12470:28:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;12470:28:0;1215:177:1;14275:31:0;;;;;;;;;;-1:-1:-1;14275:31:0;;;;-1:-1:-1;;;14275:31:0;;;;;;14045:41;;;;;;;;;;-1:-1:-1;14045:41:0;;;;-1:-1:-1;;;;;14045:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;14045:41:0;1397:229:1;15159:95:0;;;;;;;;;;-1:-1:-1;15239:7:0;;15159:95;;29279:150;;;;;;;;;;-1:-1:-1;29279:150:0;;;;;:::i;:::-;;:::i;:::-;;11943:23;;;;;;;;;;;;;;;;15894:312;;;;;;;;;;-1:-1:-1;15894:312:0;;;;;:::i;:::-;;:::i;12169:27::-;;;;;;;;;;;;;;;;27162:255;;;;;;;;;;-1:-1:-1;27162:255:0;;;;;:::i;:::-;;:::i;11973:36::-;;;;;;;;;;;;;;;;15068:83;;;;;;;;;;-1:-1:-1;15068:83:0;;11651:1;2679:36:1;;2667:2;2652:18;15068:83:0;2537:184:1;13846:81:0;;;;;;;;;;-1:-1:-1;13846:81:0;;;;-1:-1:-1;;;;;13846:81:0;;;17744:333;;;;;;;;;;-1:-1:-1;17744:333:0;;;;;:::i;:::-;;:::i;14200:28::-;;;;;;;;;;-1:-1:-1;14200:28:0;;;;-1:-1:-1;;;14200:28:0;;;;;;29769:182;;;;;;;;;;-1:-1:-1;29769:182:0;;;;;:::i;:::-;;:::i;14093:28::-;;;;;;;;;;-1:-1:-1;14093:28:0;;;;-1:-1:-1;;;;;14093:28:0;;;25273:235;;;;;;;;;;;;;:::i;30146:126::-;;;;;;;;;;-1:-1:-1;30146:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;30237:27:0;30213:4;30237:27;;;:18;:27;;;;;;;;;30146:126;12308:28;;;;;;;;;;;;;;;;27569:441;;;;;;;;;;;;;:::i;11905:31::-;;;;;;;;;;;;;;;;29105:166;;;;;;;;;;-1:-1:-1;29105:166:0;;;;;:::i;:::-;;:::i;15262:119::-;;;;;;;;;;-1:-1:-1;15262:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15355:18:0;15328:7;15355:18;;;:9;:18;;;;;;;15262:119;14235:33;;;;;;;;;;-1:-1:-1;14235:33:0;;;;-1:-1:-1;;;14235:33:0;;;;;;13128:31;;;;;;;;;;;;;;;;28128:413;;;;;;;;;;-1:-1:-1;28128:413:0;;;;;:::i;:::-;;:::i;5386:79::-;;;;;;;;;;-1:-1:-1;5424:7:0;5451:6;-1:-1:-1;;;;;5451:6:0;5386:79;;14166:27;;;;;;;;;;-1:-1:-1;14166:27:0;;;;-1:-1:-1;;;14166:27:0;;;;;;14973:87;;;;;;;;;;-1:-1:-1;15045:7:0;;;;;;;;;;;;-1:-1:-1;;;15045:7:0;;;;14973:87;;13166:36;;;;;;;;;;;;;;;;17409:327;;;;;;;;;;-1:-1:-1;17409:327:0;;;;;:::i;:::-;;:::i;12615:34::-;;;;;;;;;;;;;;;;13709:31;;;;;;;;;;-1:-1:-1;13709:31:0;;;;-1:-1:-1;;;;;13709:31:0;;;15393:169;;;;;;;;;;-1:-1:-1;15393:169:0;;;;;:::i;:::-;;:::i;12239:28::-;;;;;;;;;;;;;;;;11845:41;;;;;;;;;;;;;;;;29601:160;;;;;;;;;;-1:-1:-1;29601:160:0;;;;;:::i;:::-;;:::i;12395:33::-;;;;;;;;;;;;;;;;12542:29;;;;;;;;;;;;;;;;28951:146;;;;;;;;;;-1:-1:-1;28951:146:0;;;;;:::i;:::-;;:::i;12578:30::-;;;;;;;;;;;;;;;;16214:91;;;;;;;;;;-1:-1:-1;16285:12:0;;16214:91;;12506:29;;;;;;;;;;;;;;;;12204:28;;;;;;;;;;;;;;;;15570:145;;;;;;;;;;-1:-1:-1;15570:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;15680:18:0;;;15653:7;15680:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15570:145;28018:102;;;;;;;;;;;;;:::i;27425:136::-;;;;;;;;;;-1:-1:-1;27425:136:0;;;;;:::i;:::-;;:::i;13749:90::-;;;;;;;;;;-1:-1:-1;13749:90:0;;;;-1:-1:-1;;;;;13749:90:0;;;29959:179;;;;;;;;;;-1:-1:-1;29959:179:0;;;;;:::i;:::-;;:::i;5604:201::-;;;;;;;;;;-1:-1:-1;5604:201:0;;;;;:::i;:::-;;:::i;29437:156::-;;;;;;;;;;-1:-1:-1;29437:156:0;;;;;:::i;:::-;;:::i;25516:237::-;;;;;;;;;;;;;:::i;18428:803::-;;;;;;;;;;;;;:::i;21454:210::-;;;;;;;;;;-1:-1:-1;21454:210:0;;;;;:::i;:::-;;:::i;13094:27::-;;;;;;;;;;;;;;;;15723:163;15800:4;15817:39;568:10;15840:7;15849:6;15817:8;:39::i;:::-;-1:-1:-1;15874:4:0;15723:163;;;;;:::o;29279:150::-;29366:4;;-1:-1:-1;;;;;29366:4:0;568:10;-1:-1:-1;;;;;29350:20:0;;:44;;;-1:-1:-1;29390:4:0;;-1:-1:-1;;;;;29390:4:0;568:10;-1:-1:-1;;;;;29374:20:0;;29350:44;29342:53;;;;;;29406:4;:15;;-1:-1:-1;;;;;;29406:15:0;-1:-1:-1;;;;;29406:15:0;;;;;;;;;;29279:150::o;15894:312::-;15994:4;16011:36;16021:6;16029:9;16040:6;16011:9;:36::i;:::-;16058:118;16067:6;568:10;16087:88;16125:6;16087:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16087:19:0;;;;;;:11;:19;;;;;;;;568:10;16087:33;;;;;;;;;;:37;:88::i;:::-;16058:8;:118::i;:::-;-1:-1:-1;16194:4:0;15894:312;;;;;:::o;27162:255::-;27259:4;;-1:-1:-1;;;;;27259:4:0;568:10;-1:-1:-1;;;;;27243:20:0;;27235:29;;;;;;27301:7;;:16;;27313:3;27301:11;:16::i;:::-;27283:15;:34;27275:89;;;;-1:-1:-1;;;27275:89:0;;5002:2:1;27275:89:0;;;4984:21:1;5041:2;5021:18;;;5014:30;5080:34;5060:18;;;5053:62;-1:-1:-1;;;5131:18:1;;;5124:40;5181:19;;27275:89:0;;;;;;;;;27375:16;:34;27162:255::o;17744:333::-;17885:4;;-1:-1:-1;;;;;17885:4:0;568:10;-1:-1:-1;;;;;17869:20:0;;17861:29;;;;;;17901:10;:17;;;17929:9;:15;;;17955:10;:17;;;17983:10;:17;;;18028:2;18020:10;;;18011:20;;;;;;18042:15;:27;-1:-1:-1;;;;17744:333:0:o;29769:182::-;29854:4;;-1:-1:-1;;;;;29854:4:0;568:10;-1:-1:-1;;;;;29838:20:0;;29830:29;;;;;;-1:-1:-1;;;;;29870:27:0;;;;;;:18;:27;;;;;;;;;:34;;-1:-1:-1;;29870:34:0;29900:4;29870:34;;;29920:23;;1569:51:1;;;29920:23:0;;1542:18:1;29920:23:0;;;;;;;;29769:182;:::o;25273:235::-;25339:4;;-1:-1:-1;;;;;25339:4:0;568:10;-1:-1:-1;;;;;25323:20:0;;25315:29;;;;;;25399:4;25355:23;15355:18;;;:9;:18;;;;;;25420:19;;25416:85;;25456:33;25473:15;25456:16;:33::i;:::-;25304:204;25273:235::o;27569:441::-;27632:4;;-1:-1:-1;;;;;27632:4:0;568:10;-1:-1:-1;;;;;27616:20:0;;27608:29;;;;;;27660:1;27648:9;:13;;;27672:10;:14;;;27710:2;27697:10;:15;27723:9;:13;;;27747:14;:18;;;27776:15;:19;27806:16;:63;;27826:42;-1:-1:-1;;;;;;27806:63:0;;;;;;;27941:4;;27925:13;:20;;-1:-1:-1;;;;;27941:4:0;;;27925:20;;;;;;;27956:13;:20;;-1:-1:-1;;;;27987:15:0;-1:-1:-1;;;27987:15:0;;;27569:441::o;29105:166::-;29205:4;;-1:-1:-1;;;;;29205:4:0;568:10;-1:-1:-1;;;;;29189:20:0;;29181:29;;;;;;29221:22;:42;29105:166::o;28128:413::-;28300:4;;-1:-1:-1;;;;;28300:4:0;568:10;-1:-1:-1;;;;;28284:20:0;;28276:29;;;;;;28362:1;28324:34;28342:16;28324:15;:34;:::i;:::-;:39;;28316:48;;;;;;28375:16;:37;;-1:-1:-1;;;;;;28375:37:0;;;-1:-1:-1;;;;;28375:37:0;;;;;;;28423:14;:32;;;;28466:15;:34;;;;28511:13;:22;;;;;;;;;;28128:413::o;17409:327::-;17549:4;;-1:-1:-1;;;;;17549:4:0;568:10;-1:-1:-1;;;;;17533:20:0;;17525:29;;;;;;17565:9;:16;;;17592:8;:14;;;17617:9;:16;;;17644:9;:16;;;17688:2;17680:10;;;17671:20;;;;;;17702:14;:26;-1:-1:-1;;;;17409:327:0:o;15393:169::-;15473:4;15490:42;568:10;15514:9;15525:6;15490:9;:42::i;29601:160::-;29705:4;;-1:-1:-1;;;;;29705:4:0;568:10;-1:-1:-1;;;;;29689:20:0;;29681:29;;;;;;29721:16;:32;;-1:-1:-1;;;;;;29721:32:0;-1:-1:-1;;;;;29721:32:0;;;;;;;;;;29601:160::o;28951:146::-;29041:4;;-1:-1:-1;;;;;29041:4:0;568:10;-1:-1:-1;;;;;29025:20:0;;29017:29;;;;;;29057:17;:32;28951:146::o;28018:102::-;28082:4;;-1:-1:-1;;;;;28082:4:0;568:10;-1:-1:-1;;;;;28066:20:0;;28058:29;;;;;;28111:1;28098:10;:14;28018:102::o;27425:136::-;27513:4;;-1:-1:-1;;;;;27513:4:0;568:10;-1:-1:-1;;;;;27497:20:0;;27489:29;;;;;;27529:10;:24;27425:136::o;29959:179::-;30042:4;;-1:-1:-1;;;;;30042:4:0;568:10;-1:-1:-1;;;;;30026:20:0;;30018:29;;;;;;-1:-1:-1;;;;;30058:27:0;;30088:5;30058:27;;;:18;:27;;;;;;;;;:35;;-1:-1:-1;;30058:35:0;;;30109:21;;1569:51:1;;;30109:21:0;;1542:18:1;30109:21:0;1397:229:1;5604:201:0;5513:6;;-1:-1:-1;;;;;5513:6:0;568:10;5513:22;5505:67;;;;-1:-1:-1;;;5505:67:0;;5675:2:1;5505:67:0;;;5657:21:1;;;5694:18;;;5687:30;5753:34;5733:18;;;5726:62;5805:18;;5505:67:0;5473:356:1;5505:67:0;-1:-1:-1;;;;;5693:22:0;::::1;5685:73;;;::::0;-1:-1:-1;;;5685:73:0;;6036:2:1;5685:73:0::1;::::0;::::1;6018:21:1::0;6075:2;6055:18;;;6048:30;6114:34;6094:18;;;6087:62;-1:-1:-1;;;6165:18:1;;;6158:36;6211:19;;5685:73:0::1;5834:402:1::0;5685:73:0::1;5769:28;5788:8;5769:18;:28::i;29437:156::-:0;29538:4;;-1:-1:-1;;;;;29538:4:0;568:10;-1:-1:-1;;;;;29522:20:0;;29514:29;;;;;;29556:13;:29;;-1:-1:-1;;;;;;29556:29:0;-1:-1:-1;;;;;29556:29:0;;;;;;;;;;29437:156::o;25516:237::-;25582:4;;-1:-1:-1;;;;;25582:4:0;568:10;-1:-1:-1;;;;;25566:20:0;;25558:29;;;;;;25627:21;25663:22;;25659:87;;25702:32;25715:18;25702:12;:32::i;18428:803::-;5513:6;;-1:-1:-1;;;;;5513:6:0;568:10;5513:22;5505:67;;;;-1:-1:-1;;;5505:67:0;;5675:2:1;5505:67:0;;;5657:21:1;;;5694:18;;;5687:30;5753:34;5733:18;;;5726:62;5805:18;;5505:67:0;5473:356:1;5505:67:0;18493:11:::1;::::0;-1:-1:-1;;;18493:11:0;::::1;;;18492:12;18484:47;;;::::0;-1:-1:-1;;;18484:47:0;;6443:2:1;18484:47:0::1;::::0;::::1;6425:21:1::0;6482:2;6462:18;;;6455:30;6521:25;6501:18;;;6494:53;6564:18;;18484:47:0::1;6241:347:1::0;18484:47:0::1;18653:15;:34:::0;;-1:-1:-1;;;;;;18653:34:0::1;18599:42;18653:34:::0;;::::1;::::0;;;18748:7:::1;::::0;18698:58:::1;::::0;18715:4:::1;::::0;18599:42;;18698:8:::1;:58::i;:::-;18801:16;-1:-1:-1::0;;;;;18801:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18783:56:0::1;;18848:4;18855:16;-1:-1:-1::0;;;;;18855:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18783:96;::::0;-1:-1:-1;;;;;;18783:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7079:15:1;;;18783:96:0::1;::::0;::::1;7061:34:1::0;7131:15;;7111:18;;;7104:43;6996:18;;18783:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18767:13;:112:::0;;-1:-1:-1;;;;;18767:112:0;;::::1;-1:-1:-1::0;;;;;;18767:112:0;;::::1;;::::0;;18890:15:::1;::::0;::::1;:31;18929:21;18960:4;18966:24;18960:4:::0;-1:-1:-1;;;;;15355:18:0;15328:7;15355:18;;;:9;:18;;;;;;;15262:119;18966:24:::1;18991:1;18993::::0;18995:7:::1;5424::::0;5451:6;-1:-1:-1;;;;;5451:6:0;;5386:79;18995:7:::1;19003:15;18890:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19049:14:0::1;19030:16;:33:::0;-1:-1:-1;19090:13:0::1;19079:8;:24:::0;19123:11:::1;:18:::0;;-1:-1:-1;;;;;;;19123:18:0;::::1;;::::0;;;19190:15:::1;::::0;19152:71:::1;::::0;-1:-1:-1;;;19152:71:0;;-1:-1:-1;;;;;19190:15:0;;::::1;19152:71;::::0;::::1;8255:51:1::0;-1:-1:-1;;8322:18:1;;;8315:34;19159:13:0;;;19152:29:::1;::::0;8228:18:1;;19152:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18471:760;18428:803::o:0;21454:210::-;21543:13;21525:14;:31;;21517:63;;;;-1:-1:-1;;;21517:63:0;;8844:2:1;21517:63:0;;;8826:21:1;8883:2;8863:18;;;8856:30;-1:-1:-1;;;8902:18:1;;;8895:50;8962:18;;21517:63:0;8642:344:1;21517:63:0;21615:4;;-1:-1:-1;;;;;21615:4:0;568:10;-1:-1:-1;;;;;21599:20:0;;21591:29;;;;;;21631:8;:25;21454:210::o;18085:335::-;-1:-1:-1;;;;;18178:19:0;;18170:68;;;;-1:-1:-1;;;18170:68:0;;9193:2:1;18170:68:0;;;9175:21:1;9232:2;9212:18;;;9205:30;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:18:1;;;9315:34;9366:19;;18170:68:0;8991:400:1;18170:68:0;-1:-1:-1;;;;;18257:21:0;;18249:68;;;;-1:-1:-1;;;18249:68:0;;9598:2:1;18249:68:0;;;9580:21:1;9637:2;9617:18;;;9610:30;9676:34;9656:18;;;9649:62;-1:-1:-1;;;9727:18:1;;;9720:32;9769:19;;18249:68:0;9396:398:1;18249:68:0;-1:-1:-1;;;;;18328:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18380:32;;1361:25:1;;;18380:32:0;;1334:18:1;18380:32:0;;;;;;;18085:335;;;:::o;19245:2201::-;-1:-1:-1;;;;;19333:18:0;;19325:68;;;;-1:-1:-1;;;19325:68:0;;10001:2:1;19325:68:0;;;9983:21:1;10040:2;10020:18;;;10013:30;10079:34;10059:18;;;10052:62;-1:-1:-1;;;10130:18:1;;;10123:35;10175:19;;19325:68:0;9799:401:1;19325:68:0;-1:-1:-1;;;;;19412:16:0;;19404:64;;;;-1:-1:-1;;;19404:64:0;;10407:2:1;19404:64:0;;;10389:21:1;10446:2;10426:18;;;10419:30;10485:34;10465:18;;;10458:62;-1:-1:-1;;;10536:18:1;;;10529:33;10579:19;;19404:64:0;10205:399:1;19404:64:0;19496:1;19487:6;:10;19479:64;;;;-1:-1:-1;;;19479:64:0;;10811:2:1;19479:64:0;;;10793:21:1;10850:2;10830:18;;;10823:30;10889:34;10869:18;;;10862:62;-1:-1:-1;;;10940:18:1;;;10933:39;10989:19;;19479:64:0;10609:405:1;19479:64:0;-1:-1:-1;;;;;19563:10:0;;;;;;:4;:10;;;;;;;;19562:11;:24;;;;-1:-1:-1;;;;;;19578:8:0;;;;;;:4;:8;;;;;;;;19577:9;19562:24;19554:33;;;;;;19602:11;;-1:-1:-1;;;19602:11:0;;;;19598:132;;-1:-1:-1;;;;;19637:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;19665:22:0;;;;;;:18;:22;;;;;;;;19637:50;19629:89;;;;-1:-1:-1;;;19629:89:0;;11221:2:1;19629:89:0;;;11203:21:1;11260:2;11240:18;;;11233:30;11299:28;11279:18;;;11272:56;11345:18;;19629:89:0;11019:350:1;19629:89:0;19755:4;19784:7;5424;5451:6;-1:-1:-1;;;;;5451:6:0;;5386:79;19784:7;-1:-1:-1;;;;;19776:15:0;:4;-1:-1:-1;;;;;19776:15:0;;;:32;;;;-1:-1:-1;5424:7:0;5451:6;-1:-1:-1;;;;;19795:13:0;;;5451:6;;19795:13;;19776:32;:57;;;;-1:-1:-1;;;;;;19812:21:0;;19828:4;19812:21;;19776:57;:80;;;;-1:-1:-1;;;;;;19837:19:0;;19851:4;19837:19;;19776:80;19772:1469;;;19887:13;;-1:-1:-1;;;;;19879:21:0;;;19887:13;;19879:21;:55;;;;-1:-1:-1;19918:15:0;;-1:-1:-1;;;;;19904:30:0;;;19918:15;;19904:30;;19879:55;:115;;;;-1:-1:-1;;;;;;19941:24:0;;;;;;:18;:24;;;;;;;;19940:25;;:52;;-1:-1:-1;;;;;;19970:22:0;;;;;;:18;:22;;;;;;;;19969:23;19940:52;19875:351;;;20052:16;;20023:25;20041:6;20023:13;20033:2;-1:-1:-1;;;;;15355:18:0;15328:7;15355:18;;;:9;:18;;;;;;;15262:119;20023:13;:17;;:25::i;:::-;:45;;20015:101;;;;-1:-1:-1;;;20015:101:0;;11576:2:1;20015:101:0;;;11558:21:1;11615:2;11595:18;;;11588:30;11654:34;11634:18;;;11627:62;-1:-1:-1;;;11705:18:1;;;11698:41;11756:19;;20015:101:0;11374:407:1;20015:101:0;20153:8;;20143:6;:18;;20135:75;;;;-1:-1:-1;;;20135:75:0;;11988:2:1;20135:75:0;;;11970:21:1;12027:2;12007:18;;;12000:30;12066:34;12046:18;;;12039:62;-1:-1:-1;;;12117:18:1;;;12110:42;12169:19;;20135:75:0;11786:408:1;20135:75:0;20266:13;;-1:-1:-1;;;;;20258:21:0;;;20266:13;;20258:21;:55;;;;-1:-1:-1;20297:15:0;;-1:-1:-1;;;;;20283:30:0;;;20297:15;;20283:30;;20258:55;:68;;;;-1:-1:-1;;;;;;20318:8:0;;;;;;:4;:8;;;;;;;;20317:9;20258:68;:83;;;;-1:-1:-1;;;;;;20331:10:0;;;;;;:4;:10;;;;;;;;20330:11;20258:83;20254:313;;;20373:8;;20362;:19;20412:9;;20400;:21;20452:9;;20440;:21;20492:9;;20480;:21;20537:14;;20520;:31;20254:313;20609:13;;-1:-1:-1;;;;;20603:19:0;;;20609:13;;20603:19;:55;;;;-1:-1:-1;20642:15:0;;-1:-1:-1;;;;;20626:32:0;;;20642:15;;20626:32;;20603:55;:68;;;;-1:-1:-1;;;;;;20663:8:0;;;;;;:4;:8;;;;;;;;20662:9;20603:68;:83;;;;-1:-1:-1;;;;;;20676:10:0;;;;;;:4;:10;;;;;;;;20675:11;20603:83;20599:318;;;20718:9;;20707:8;:20;20758:10;;20746:9;:22;20799:10;;20787:9;:22;20840:10;;20828:9;:22;20886:15;;20869:14;:32;20599:318;20949:8;;-1:-1:-1;;;20949:8:0;;;;20948:9;:34;;;;-1:-1:-1;20969:13:0;;-1:-1:-1;;;;;20961:21:0;;;20969:13;;20961:21;;20948:34;20944:286;;;21054:4;21005:28;15355:18;;;:9;:18;;;;;;21108:10;;21085:33;;21081:118;;;21143:36;21158:20;21143:14;:36::i;:::-;20984:246;20944:286;-1:-1:-1;;;;;21257:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;21285:22:0;;;;;;:18;:22;;;;;;;;21257:50;21253:98;;;-1:-1:-1;21334:5:0;21253:98;21371:41;21386:4;21392:2;21396:6;21404:7;21371:14;:41::i;:::-;21423:15;17207:16;;17196:8;:27;17246:17;;17234:9;:29;17286:17;;17274:9;:29;17326:17;;17314:9;:29;17371:22;;17354:14;:39;17152:249;21423:15;19314:2132;19245:2201;;;:::o;1625:190::-;1711:7;1747:12;1739:6;;;;1731:29;;;;-1:-1:-1;;;1731:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1771:9:0;1783:5;1787:1;1783;:5;:::i;:::-;1771:17;1625:190;-1:-1:-1;;;;;1625:190:0:o;2077:132::-;2135:7;2162:39;2166:1;2169;2162:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2155:46;2077:132;-1:-1:-1;;;2077:132:0:o;21672:404::-;14455:8;:15;;-1:-1:-1;;;;14455:15:0;-1:-1:-1;;;14455:15:0;;;21771:16:::1;::::0;;21785:1:::1;21771:16:::0;;;;;::::1;::::0;;-1:-1:-1;;21771:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21771:16:0::1;21747:40;;21816:4;21798;21803:1;21798:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21798:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21842:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;21842:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;21798:7;;21842:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21832:4;21837:1;21832:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21832:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;21907:15:::1;::::0;21875:62:::1;::::0;21892:4:::1;::::0;21907:15:::1;21925:11:::0;21875:8:::1;:62::i;:::-;21948:15;::::0;:120:::1;::::0;-1:-1:-1;;;21948:120:0;;-1:-1:-1;;;;;21948:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;22015:11;;21948:15:::1;::::0;22031:4;;22045::::1;::::0;22052:15:::1;::::0;21948:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14493:8:0;:16;;-1:-1:-1;;;;14493:16:0;;;-1:-1:-1;;;;21672:404:0:o;5813:191::-;5887:16;5906:6;;-1:-1:-1;;;;;5923:17:0;;;-1:-1:-1;;;;;;5923:17:0;;;;;;5956:40;;5906:6;;;;;;;5956:40;;5887:16;5956:40;5876:128;5813:191;:::o;25129:136::-;25186:4;;-1:-1:-1;;;;;25186:4:0;:30;25200:15;25201:6;25213:1;25200:12;:15::i;:::-;25186:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25227:4:0;;-1:-1:-1;;;;;25227:4:0;:30;25241:15;25242:6;25254:1;25241:12;:15::i;:::-;25227:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1294:179;1352:7;;1384:5;1388:1;1384;:5;:::i;:::-;1372:17;;1413:1;1408;:6;;1400:46;;;;-1:-1:-1;;;1400:46:0;;13851:2:1;1400:46:0;;;13833:21:1;13890:2;13870:18;;;13863:30;13929:29;13909:18;;;13902:57;13976:18;;1400:46:0;13649:351:1;23615:1506:0;14455:8;:15;;-1:-1:-1;;;;14455:15:0;-1:-1:-1;;;14455:15:0;;;23776:14:::1;::::0;23762:8:::1;::::0;23747:9:::1;::::0;23732::::1;::::0;23718::::1;::::0;14455:15;;23718:73:::1;::::0;23776:14;;23718:53:::1;::::0;23762:8;;23718:53;;;;:9;:13:::1;:24::i;:73::-;23697:95;;23803:20;23826:49;23865:9;23826:34;23839:20;23826:8;;:12;;:34;;;;:::i;:::-;:38:::0;::::1;:49::i;:::-;23803:72;;23886:21;23910:50;23950:9;23910:35;23924:20;23910:9;;:13;;:35;;;;:::i;:50::-;23886:74:::0;-1:-1:-1;23973:20:0::1;23997:19;:12:::0;24014:1:::1;23997:16;:19::i;:::-;23973:43:::0;-1:-1:-1;24027:20:0::1;24050:38;:20:::0;23973:43;24050:24:::1;:38::i;:::-;24027:61:::0;-1:-1:-1;24124:21:0::1;24156:30;24027:61:::0;24156:16:::1;:30::i;:::-;24197:17;24217:81;24285:12:::0;24218:61:::1;24266:12:::0;24219:41:::1;:21;24245:14:::0;24219:25:::1;:41::i;:::-;24218:47:::0;::::1;:61::i;24217:81::-;24197:101;;24309:37;24322:12;24336:9;24309:12;:37::i;:::-;24359:21;24383:50;24423:9;24383:35;24397:20;24383:9;;:13;;:35;;;;:::i;:50::-;24359:74:::0;-1:-1:-1;24444:18:0::1;24465:82;24534:12:::0;24466:62:::1;24359:74:::0;24467:41:::1;:21;24493:14:::0;24467:25:::1;:41::i;24465:82::-;24561:8;::::0;24444:103;;-1:-1:-1;;;;24561:8:0;::::1;;;:26:::0;::::1;;;;24586:1;24573:10;:14;24561:26;24558:77;;;24604:19;24612:10;24604:7;:19::i;:::-;24647:26;24676:55;24721:9;24676:40;24695:20;24676:14;;:18;;:40;;;;:::i;:55::-;24647:84:::0;-1:-1:-1;24742:23:0::1;24768:87;24842:12:::0;24769:67:::1;24647:84:::0;24770:41:::1;:21;24796:14:::0;24770:25:::1;:41::i;24768:87::-;24869:13;::::0;24742:113;;-1:-1:-1;;;;24869:13:0;::::1;;;:36:::0;::::1;;;;24904:1;24886:15;:19;24869:36;24866:97;;;24922:29;24935:15;24922:12;:29::i;:::-;24975:18;24996:82;25065:12:::0;24997:62:::1;25045:13:::0;24998:41:::1;:21;25024:14:::0;24998:25:::1;:41::i;24996:82::-;24975:103;;25089:24;25102:10;25089:12;:24::i;:::-;-1:-1:-1::0;;14493:8:0;:16;;-1:-1:-1;;;;14493:16:0;;;-1:-1:-1;;;;;;;;;;;23615:1506:0:o;25761:1352::-;25874:7;25869:60;;25903:14;:12;:14::i;:::-;25949:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25949:24:0;25997:30;26023:3;25997:21;26008:9;;25997:6;:10;;:21;;;;:::i;:30::-;25984:10;;;:43;26061:8;;26050:29;;26075:3;;26050:20;;:6;;:10;:20::i;:29::-;26038:41;;26114:9;;26103:30;;26129:3;;26103:21;;:6;;:10;:21::i;:30::-;26090:10;;;:43;26168:9;;26157:30;;26183:3;;26157:21;;:6;;:10;:21::i;:30::-;26144:10;;;:43;26227:14;;26216:35;;26247:3;;26216:26;;:6;;:10;:26::i;:35::-;26198:15;;;:53;;;26346:9;;26330:10;;;;26314;;;;26298;;;;26287:90;;26198:53;26287:69;;26346:9;;26287:69;;;;26314:10;26287:69;;:6;;:10;:22::i;:::-;:26;;:38::i;:90::-;26272:12;;;:105;26425:10;;;;26390:21;;26414:22;;:6;;:10;:22::i;:::-;26390:46;;26447:27;26455:6;26463:4;:10;;;26447:7;:27::i;:::-;-1:-1:-1;;;;;26507:17:0;;;;;;:9;:17;;;;;;:36;;26529:13;26507:21;:36::i;:::-;-1:-1:-1;;;;;26487:17:0;;;;;;;:9;:17;;;;;;:56;;;;26602:12;;;;26577:20;;;;;;;;;;:38;;:24;:38::i;:::-;-1:-1:-1;;;;;26554:20:0;;;;;;:9;:20;;;;;;;;:61;;;;26745:15;;;;26730:9;;26714:10;;;;26698;;;;26682;;;;26671:4;26653:24;;;;;;;:108;;26745:15;;26653:87;;26730:9;26653:87;;26714:10;26653:87;;26698:10;26653:87;;:24;:28;:40::i;:108::-;26644:4;26626:24;;;;:9;:24;;;;;:135;26785:8;;-1:-1:-1;;;26785:8:0;;;;:35;;;;-1:-1:-1;26807:13:0;;-1:-1:-1;;;;;26797:23:0;;;26807:13;;26797:23;;26785:35;:62;;;;-1:-1:-1;;;;;;26824:23:0;;26842:4;26824:23;;26785:62;:100;;;;-1:-1:-1;26869:15:0;;-1:-1:-1;;;;;26851:34:0;;;26869:15;;26851:34;;26785:100;:173;;;;-1:-1:-1;26911:15:0;;-1:-1:-1;;;;;26890:37:0;;;26911:15;;26890:37;;:67;;-1:-1:-1;26944:13:0;;-1:-1:-1;;;;;26931:26:0;;;26944:13;;26931:26;26890:67;26782:239;;;26983:13;;26998:10;;;;26975:34;;-1:-1:-1;;;;;26983:13:0;;26975:7;:34::i;:::-;27055:9;-1:-1:-1;;;;;27038:41:0;27047:6;-1:-1:-1;;;;;27038:41:0;;27066:4;:12;;;27038:41;;;;1361:25:1;;1349:2;1334:18;;1215:177;27038:41:0;;;;;;;;27090:15;17207:16;;17196:8;:27;17246:17;;17234:9;:29;17286:17;;17274:9;:29;17326:17;;17314:9;:29;17371:22;;17354:14;:39;17152:249;27090:15;25858:1255;;25761:1352;;;;:::o;2217:189::-;2303:7;2338:12;2331:5;2323:28;;;;-1:-1:-1;;;2323:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2362:9:0;2374:5;2378:1;2374;:5;:::i;1823:246::-;1881:7;1905:1;1910;1905:6;1901:47;;-1:-1:-1;1935:1:0;1928:8;;1901:47;1958:9;1970:5;1974:1;1970;:5;:::i;:::-;1958:17;-1:-1:-1;2003:1:0;1994:5;1998:1;1958:17;1994:5;:::i;:::-;:10;1986:56;;;;-1:-1:-1;;;1986:56:0;;14602:2:1;1986:56:0;;;14584:21:1;14641:2;14621:18;;;14614:30;14680:34;14660:18;;;14653:62;-1:-1:-1;;;14731:18:1;;;14724:31;14772:19;;1986:56:0;14400:397:1;1481:136:0;1539:7;1566:43;1570:1;1573;1566:43;;;;;;;;;;;;;;;;;:3;:43::i;23162:445::-;23275:15;;23243:62;;23260:4;;-1:-1:-1;;;;;23275:15:0;23293:11;23243:8;:62::i;:::-;23348:15;;23552:4;;23348:251;;-1:-1:-1;;;23348:251:0;;-1:-1:-1;;;;;23348:15:0;;;;:31;;23387:9;;23348:251;;23420:4;;23440:11;;23348:15;;;;23552:4;;23571:15;;23348:251;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23162:445;;:::o;28549:183::-;28602:10;;28598:127;;28626:28;28647:6;28626:20;:28::i;:::-;28688:16;;:28;;28709:6;28688:20;:28::i;:::-;28669:16;:47;28549:183;:::o;28740:203::-;28798:10;;28794:142;;28822:33;28848:6;28822:25;:33::i;:::-;28894:21;;:33;;28920:6;28894:25;:33::i;:::-;28870:21;:57;28740:203;:::o;16651:489::-;16698:14;;:19;:37;;;;-1:-1:-1;16721:9:0;;:14;16698:37;:54;;;;-1:-1:-1;16739:8:0;;:13;16698:54;:72;;;;-1:-1:-1;16756:9:0;;:14;16698:72;:90;;;;-1:-1:-1;16774:9:0;;:14;16698:90;16694:103;;;16651:489::o;16694:103::-;16827:9;;;16807:17;:29;16866:8;;;16847:16;:27;16905:9;;;16885:17;:29;16945:9;;;16925:17;:29;16990:14;;;16965:22;:39;-1:-1:-1;17017:13:0;;;;17041:12;;;;17064:13;;;;17088;;;17112:18;16651:489::o;16313:330::-;-1:-1:-1;;;;;15355:18:0;;15328:7;15355:18;;;:9;:18;;;;;;16392:7;:30;;16383:40;;;;;;-1:-1:-1;;;;;16456:19:0;;;;;;:9;:19;;;;;;:32;;16480:7;16456:23;:32::i;:::-;-1:-1:-1;;;;;16434:19:0;;;;;;:9;:19;;;;;:54;16509:7;;:20;;16521:7;16509:11;:20::i;:::-;16499:7;:30;16555:12;;:25;;16572:7;16555:16;:25::i;:::-;16540:12;:40;16596:39;;1361:25:1;;;16623:1:0;;-1:-1:-1;;;;;16596:39:0;;;;;1349:2:1;1334:18;16596:39:0;;;;;;;16313:330;;:::o;22084:518::-;22233:16;;;22247:1;22233:16;;;;;;;;22209:21;;22233:16;;;;;;;;-1:-1:-1;;22270:15:0;;:22;;;-1:-1:-1;;;22270:22:0;;;;22209:40;;-1:-1:-1;;;;;;22270:15:0;;;;:20;;-1:-1:-1;22270:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22260:4;22265:1;22260:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22260:32:0;;;:7;;;;;;;;;:32;22321:4;;22303:7;;22321:4;;;22303;;22321;;22303:7;;;;;;:::i;:::-;-1:-1:-1;;;;;22303:23:0;;;:7;;;;;;;;;:23;22363:15;;22525:4;;22363:223;;-1:-1:-1;;;22363:223:0;;:15;;;;:66;;22437:6;;22363:223;;:15;;22506:4;;22525;;;;22560:15;;22363:223;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22138:464;22084:518;:::o;22610:544::-;22764:16;;;22778:1;22764:16;;;;;;;;22740:21;;22764:16;;;;;;;;-1:-1:-1;;22801:15:0;;:22;;;-1:-1:-1;;;22801:22:0;;;;22740:40;;-1:-1:-1;;;;;;22801:15:0;;;;:20;;-1:-1:-1;22801:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22791:4;22796:1;22791:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22791:32:0;;;:7;;;;;;;;;:32;22852:16;;22834:7;;22852:16;;;22834:4;;22852:16;;22834:7;;;;;;:::i;:::-;-1:-1:-1;;;;;22834:35:0;;;:7;;;;;;;;;:35;22906:15;;23068:13;;22906:232;;-1:-1:-1;;;22906:232:0;;:15;;;;:66;;22980:6;;22906:232;;:15;;23049:4;;23068:13;;;;23112:15;;22906:232;;;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:255::-;1698:6;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;1891:456::-;1968:6;1976;1984;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2111:31;2136:5;2111:31;:::i;:::-;2161:5;-1:-1:-1;2218:2:1;2203:18;;2190:32;2231:33;2190:32;2231:33;:::i;:::-;1891:456;;2283:7;;-1:-1:-1;;;2337:2:1;2322:18;;;;2309:32;;1891:456::o;2352:180::-;2411:6;2464:2;2452:9;2443:7;2439:23;2435:32;2432:52;;;2480:1;2477;2470:12;2432:52;-1:-1:-1;2503:23:1;;2352:180;-1:-1:-1;2352:180:1:o;2950:454::-;3045:6;3053;3061;3069;3077;3130:3;3118:9;3109:7;3105:23;3101:33;3098:53;;;3147:1;3144;3137:12;3098:53;-1:-1:-1;;3170:23:1;;;3240:2;3225:18;;3212:32;;-1:-1:-1;3291:2:1;3276:18;;3263:32;;3342:2;3327:18;;3314:32;;-1:-1:-1;3393:3:1;3378:19;3365:33;;-1:-1:-1;2950:454:1;-1:-1:-1;2950:454:1:o;3869:533::-;3963:6;3971;3979;3987;4040:3;4028:9;4019:7;4015:23;4011:33;4008:53;;;4057:1;4054;4047:12;4008:53;4093:9;4080:23;4070:33;;4150:2;4139:9;4135:18;4122:32;4112:42;;4204:2;4193:9;4189:18;4176:32;4217:31;4242:5;4217:31;:::i;:::-;4267:5;-1:-1:-1;4324:2:1;4309:18;;4296:32;4337:33;4296:32;4337:33;:::i;:::-;3869:533;;;;-1:-1:-1;3869:533:1;;-1:-1:-1;;3869:533:1:o;4407:388::-;4475:6;4483;4536:2;4524:9;4515:7;4511:23;4507:32;4504:52;;;4552:1;4549;4542:12;4504:52;4591:9;4578:23;4610:31;4635:5;4610:31;:::i;:::-;4660:5;-1:-1:-1;4717:2:1;4702:18;;4689:32;4730:33;4689:32;4730:33;:::i;:::-;4782:7;4772:17;;;4407:388;;;;;:::o;5211:127::-;5272:10;5267:3;5263:20;5260:1;5253:31;5303:4;5300:1;5293:15;5327:4;5324:1;5317:15;5343:125;5408:9;;;5429:10;;;5426:36;;;5442:18;;:::i;6593:251::-;6663:6;6716:2;6704:9;6695:7;6691:23;6687:32;6684:52;;;6732:1;6729;6722:12;6684:52;6764:9;6758:16;6783:31;6808:5;6783:31;:::i;7158:607::-;-1:-1:-1;;;;;7517:15:1;;;7499:34;;7564:2;7549:18;;7542:34;;;;7607:2;7592:18;;7585:34;;;;7650:2;7635:18;;7628:34;;;;7699:15;;;7693:3;7678:19;;7671:44;7479:3;7731:19;;7724:35;;;;7448:3;7433:19;;7158:607::o;7770:306::-;7858:6;7866;7874;7927:2;7915:9;7906:7;7902:23;7898:32;7895:52;;;7943:1;7940;7933:12;7895:52;7972:9;7966:16;7956:26;;8022:2;8011:9;8007:18;8001:25;7991:35;;8066:2;8055:9;8051:18;8045:25;8035:35;;7770:306;;;;;:::o;8360:277::-;8427:6;8480:2;8468:9;8459:7;8455:23;8451:32;8448:52;;;8496:1;8493;8486:12;8448:52;8528:9;8522:16;8581:5;8574:13;8567:21;8560:5;8557:32;8547:60;;8603:1;8600;8593:12;12199:128;12266:9;;;12287:11;;;12284:37;;;12301:18;;:::i;12464:127::-;12525:10;12520:3;12516:20;12513:1;12506:31;12556:4;12553:1;12546:15;12580:4;12577:1;12570:15;12596:461;12649:3;12687:5;12681:12;12714:6;12709:3;12702:19;12740:4;12769:2;12764:3;12760:12;12753:19;;12806:2;12799:5;12795:14;12827:1;12837:195;12851:6;12848:1;12845:13;12837:195;;;12916:13;;-1:-1:-1;;;;;12912:39:1;12900:52;;12972:12;;;;13007:15;;;;12948:1;12866:9;12837:195;;;-1:-1:-1;13048:3:1;;12596:461;-1:-1:-1;;;;;12596:461:1:o;13062:582::-;13361:6;13350:9;13343:25;13404:6;13399:2;13388:9;13384:18;13377:34;13447:3;13442:2;13431:9;13427:18;13420:31;13324:4;13468:57;13520:3;13509:9;13505:19;13497:6;13468:57;:::i;:::-;-1:-1:-1;;;;;13561:32:1;;;;13556:2;13541:18;;13534:60;-1:-1:-1;13625:3:1;13610:19;13603:35;13460:65;13062:582;-1:-1:-1;;;13062:582:1:o;14005:217::-;14045:1;14071;14061:132;;14115:10;14110:3;14106:20;14103:1;14096:31;14150:4;14147:1;14140:15;14178:4;14175:1;14168:15;14061:132;-1:-1:-1;14207:9:1;;14005:217::o;14227:168::-;14267:7;14333:1;14329;14325:6;14321:14;14318:1;14315:21;14310:1;14303:9;14296:17;14292:45;14289:71;;;14340:18;;:::i;:::-;-1:-1:-1;14380:9:1;;14227:168::o;15422:518::-;15701:6;15690:9;15683:25;15744:3;15739:2;15728:9;15724:18;15717:31;15664:4;15765:57;15817:3;15806:9;15802:19;15794:6;15765:57;:::i;:::-;-1:-1:-1;;;;;15858:32:1;;;;15853:2;15838:18;;15831:60;-1:-1:-1;15922:2:1;15907:18;15900:34;15757:65;15422:518;-1:-1:-1;;15422:518:1:o
Swarm Source
ipfs://9088fbdd84f78ca9d6d5ed5a6dae47f4d2f97efe09e74a9a03c1cce68cd4e9db
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,705.96 | 0.000000000000000001 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.